[ARM] More MVE compare vector splat combines for ANDs
[llvm-complete.git] / test / CodeGen / ARM / twoaddrinstr.ll
blobe8c52e1b58df011c13c47e99609296e23303c8ca
1 ; Tests for the two-address instruction pass.
2 ; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 -arm-atomic-cfg-tidy=0 %s -o - | FileCheck %s
4 define void @PR13378() nounwind {
5 ; This was orriginally a crasher trying to schedule the instructions.
6 ; CHECK-LABEL:      PR13378:
7 ; CHECK:        vmov.i32
8 ; CHECK-NEXT:   vld1.32
9 ; CHECK-NEXT:   vst1.32
10 ; CHECK-NEXT:   vst1.32
11 ; CHECK-NEXT:   vmov.f32
12 ; CHECK-NEXT:   vmov.f32
13 ; CHECK-NEXT:   vst1.32
15 entry:
16   %0 = load <4 x float>, <4 x float>* undef, align 4
17   store <4 x float> zeroinitializer, <4 x float>* undef, align 4
18   store <4 x float> %0, <4 x float>* undef, align 4
19   %1 = insertelement <4 x float> %0, float 1.000000e+00, i32 3
20   store <4 x float> %1, <4 x float>* undef, align 4
21   unreachable