60 lines
1.8 KiB
LLVM
60 lines
1.8 KiB
LLVM
|
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||
|
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-- -mcpu=pwr8 < %s | \
|
||
|
; RUN: FileCheck %s
|
||
|
|
||
|
%0 = type <{ %1, ptr, i32, [4 x i8] }>
|
||
|
%1 = type { %2 }
|
||
|
%2 = type { %3 }
|
||
|
%3 = type { ptr, ptr, ptr }
|
||
|
|
||
|
$testfunc = comdat any
|
||
|
|
||
|
declare void @_ZdlPv() local_unnamed_addr #0
|
||
|
|
||
|
define void @testfunc(i64 %arg) local_unnamed_addr #0 comdat {
|
||
|
; CHECK-LABEL: testfunc:
|
||
|
; CHECK: # %bb.0: # %bb
|
||
|
; CHECK-NEXT: mflr 0
|
||
|
; CHECK-NEXT: stdu 1, -80(1)
|
||
|
; CHECK-NEXT: std 0, 96(1)
|
||
|
; CHECK-NEXT: .cfi_def_cfa_offset 80
|
||
|
; CHECK-NEXT: .cfi_offset lr, 16
|
||
|
; CHECK-NEXT: .cfi_offset v30, -32
|
||
|
; CHECK-NEXT: .cfi_offset v31, -16
|
||
|
; CHECK-NEXT: li 4, 48
|
||
|
; CHECK-NEXT: addi 3, 3, 24
|
||
|
; CHECK-NEXT: stvx 30, 1, 4 # 16-byte Folded Spill
|
||
|
; CHECK-NEXT: li 4, 64
|
||
|
; CHECK-NEXT: stvx 31, 1, 4 # 16-byte Folded Spill
|
||
|
; CHECK-NEXT: lxvd2x 63, 0, 3
|
||
|
; CHECK-NEXT: xxswapd 62, 63
|
||
|
; CHECK-NEXT: bc 12, 20, .LBB0_2
|
||
|
; CHECK-NEXT: # %bb.1: # %bb37
|
||
|
; CHECK-NEXT: bl _ZdlPv
|
||
|
; CHECK-NEXT: nop
|
||
|
; CHECK-NEXT: .LBB0_2: # %bb38
|
||
|
; CHECK-NEXT: stxsiwx 62, 0, 3
|
||
|
; CHECK-NEXT: stxsdx 63, 0, 3
|
||
|
; CHECK-NEXT: li 3, 64
|
||
|
; CHECK-NEXT: lvx 31, 1, 3 # 16-byte Folded Reload
|
||
|
; CHECK-NEXT: li 3, 48
|
||
|
; CHECK-NEXT: lvx 30, 1, 3 # 16-byte Folded Reload
|
||
|
; CHECK-NEXT: addi 1, 1, 80
|
||
|
; CHECK-NEXT: ld 0, 16(1)
|
||
|
; CHECK-NEXT: mtlr 0
|
||
|
; CHECK-NEXT: blr
|
||
|
bb:
|
||
|
%i = inttoptr i64 %arg to ptr
|
||
|
%i6 = getelementptr inbounds %0, ptr %i, i64 0, i32 1
|
||
|
%i7 = load <12 x i8>, ptr %i6, align 8
|
||
|
br i1 poison, label %bb38, label %bb37
|
||
|
|
||
|
bb37: ; preds = %bb
|
||
|
tail call void @_ZdlPv() #1
|
||
|
br label %bb38
|
||
|
|
||
|
bb38: ; preds = %bb37, %bb
|
||
|
store <12 x i8> %i7, ptr poison, align 8
|
||
|
ret void
|
||
|
}
|