1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 3
2 # RUN: llc --run-pass=machine-sink --aarch64-enable-sink-fold=true %s -o - | FileCheck %s
4 source_filename = "../llvm/test/CodeGen/AArch64/GlobalISel/sink-and-fold-illegal-shift.ll"
5 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
6 target triple = "aarch64-linux"
8 define void @f(ptr %p, i64 %i) #0 {
10 %a = getelementptr i8, ptr %p, i64 %d
11 store i8 0, ptr %a, align 1
15 attributes #0 = { optsize }
21 exposesReturnsTwice: false
26 tracksRegLiveness: true
29 callsUnwindInit: false
35 failsVerification: false
36 tracksDebugUserValues: false
38 - { id: 0, class: gpr64, preferred-register: '' }
39 - { id: 1, class: gpr64, preferred-register: '' }
40 - { id: 2, class: gpr, preferred-register: '' }
41 - { id: 3, class: gpr, preferred-register: '' }
42 - { id: 4, class: gpr64common, preferred-register: '' }
43 - { id: 5, class: _, preferred-register: '' }
44 - { id: 6, class: gpr, preferred-register: '' }
45 - { id: 7, class: gpr64, preferred-register: '' }
47 - { reg: '$x0', virtual-reg: '' }
48 - { reg: '$x1', virtual-reg: '' }
50 isFrameAddressTaken: false
51 isReturnAddressTaken: false
62 cvBytesOfCalleeSavedRegisters: 0
63 hasOpaqueSPAdjustment: false
65 hasMustTailInVarArgFunc: false
74 debugValueSubstitutions: []
76 machineFunctionInfo: {}
81 ; CHECK-LABEL: name: f
82 ; CHECK: liveins: $x0, $x1
84 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
85 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
86 ; CHECK-NEXT: [[ADDXrs:%[0-9]+]]:gpr64common = ADDXrs [[COPY]], [[COPY1]], 160
87 ; CHECK-NEXT: STRBBui $wzr, [[ADDXrs]], 0 :: (store (s8) into %ir.a)
88 ; CHECK-NEXT: RET_ReallyLR
91 %4:gpr64common = ADDXrs %0, %1, 160
92 STRBBui $wzr, %4, 0 :: (store (s8) into %ir.a)