xref: /aosp_15_r20/external/llvm/test/CodeGen/ARM/twoaddrinstr.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; Tests for the two-address instruction pass.
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 -arm-atomic-cfg-tidy=0 %s -o - | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine void @PR13378() nounwind {
5*9880d681SAndroid Build Coastguard Worker; This was orriginally a crasher trying to schedule the instructions.
6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL:      PR13378:
7*9880d681SAndroid Build Coastguard Worker; CHECK:        vld1.32
8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:   vst1.32
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:   vst1.32
10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:   vmov.f32
11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:   vmov.f32
12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:   vst1.32
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerentry:
15*9880d681SAndroid Build Coastguard Worker  %0 = load <4 x float>, <4 x float>* undef, align 4
16*9880d681SAndroid Build Coastguard Worker  store <4 x float> zeroinitializer, <4 x float>* undef, align 4
17*9880d681SAndroid Build Coastguard Worker  store <4 x float> %0, <4 x float>* undef, align 4
18*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> %0, float 1.000000e+00, i32 3
19*9880d681SAndroid Build Coastguard Worker  store <4 x float> %1, <4 x float>* undef, align 4
20*9880d681SAndroid Build Coastguard Worker  unreachable
21*9880d681SAndroid Build Coastguard Worker}
22