1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=arm64 -mcpu=generic -aarch64-neon-syntax=apple < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine void @test0f(float* nocapture %x, float %a) #0 { 4*9880d681SAndroid Build Coastguard Workerentry: 5*9880d681SAndroid Build Coastguard Worker %0 = insertelement <4 x float> <float undef, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00>, float %a, i32 0 6*9880d681SAndroid Build Coastguard Worker %1 = bitcast float* %x to <4 x float>* 7*9880d681SAndroid Build Coastguard Worker store <4 x float> %0, <4 x float>* %1, align 16 8*9880d681SAndroid Build Coastguard Worker ret void 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker ; CHECK-LABEL: test0f 11*9880d681SAndroid Build Coastguard Worker ; CHECK: movi.2d v[[TEMP:[0-9]+]], #0000000000000000 12*9880d681SAndroid Build Coastguard Worker ; CHECK: ins.s v[[TEMP]][0], v{{[0-9]+}}[0] 13*9880d681SAndroid Build Coastguard Worker ; CHECK: str q[[TEMP]], [x0] 14*9880d681SAndroid Build Coastguard Worker ; CHECK: ret 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdefine void @test1f(float* nocapture %x, float %a) #0 { 21*9880d681SAndroid Build Coastguard Workerentry: 22*9880d681SAndroid Build Coastguard Worker %0 = insertelement <4 x float> <float undef, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, float %a, i32 0 23*9880d681SAndroid Build Coastguard Worker %1 = bitcast float* %x to <4 x float>* 24*9880d681SAndroid Build Coastguard Worker store <4 x float> %0, <4 x float>* %1, align 16 25*9880d681SAndroid Build Coastguard Worker ret void 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker ; CHECK-LABEL: test1f 28*9880d681SAndroid Build Coastguard Worker ; CHECK: fmov s[[TEMP:[0-9]+]], #1.0000000 29*9880d681SAndroid Build Coastguard Worker ; CHECK: dup.4s v[[TEMP2:[0-9]+]], v[[TEMP]][0] 30*9880d681SAndroid Build Coastguard Worker ; CHECK: ins.s v[[TEMP2]][0], v0[0] 31*9880d681SAndroid Build Coastguard Worker ; CHECK: str q[[TEMP2]], [x0] 32*9880d681SAndroid Build Coastguard Worker ; CHECK: ret 33*9880d681SAndroid Build Coastguard Worker} 34