1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=arm64 -aarch64-neon-syntax=apple -verify-machineinstrs | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_16b(<16 x i8> %A, i8* %D) { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_16b 5*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b 6*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <16 x i8> %A, i32 1 7*9880d681SAndroid Build Coastguard Worker store i8 %tmp, i8* %D 8*9880d681SAndroid Build Coastguard Worker ret void 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_16b(<16 x i8> %A, i8* %D, i64 %offset) { 12*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_16b 13*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 14*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b { v0 }[1], [x[[XREG]]] 15*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i8, i8* %D, i64 %offset 16*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <16 x i8> %A, i32 1 17*9880d681SAndroid Build Coastguard Worker store i8 %tmp, i8* %ptr 18*9880d681SAndroid Build Coastguard Worker ret void 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_16b(<16 x i8> %A, i8* %D, i64 %offset) { 22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_16b 23*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 24*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b { v0 }[0], [x[[XREG]]] 25*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i8, i8* %D, i64 %offset 26*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <16 x i8> %A, i32 0 27*9880d681SAndroid Build Coastguard Worker store i8 %tmp, i8* %ptr 28*9880d681SAndroid Build Coastguard Worker ret void 29*9880d681SAndroid Build Coastguard Worker} 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_8h(<8 x i16> %A, i16* %D) { 32*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_8h 33*9880d681SAndroid Build Coastguard Worker; CHECK: st1.h 34*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <8 x i16> %A, i32 1 35*9880d681SAndroid Build Coastguard Worker store i16 %tmp, i16* %D 36*9880d681SAndroid Build Coastguard Worker ret void 37*9880d681SAndroid Build Coastguard Worker} 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_8h(<8 x i16> %A, i16* %D, i64 %offset) { 40*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_8h 41*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 42*9880d681SAndroid Build Coastguard Worker; CHECK: st1.h { v0 }[1], [x[[XREG]]] 43*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i16, i16* %D, i64 %offset 44*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <8 x i16> %A, i32 1 45*9880d681SAndroid Build Coastguard Worker store i16 %tmp, i16* %ptr 46*9880d681SAndroid Build Coastguard Worker ret void 47*9880d681SAndroid Build Coastguard Worker} 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_8h(<8 x i16> %A, i16* %D, i64 %offset) { 50*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_8h 51*9880d681SAndroid Build Coastguard Worker; CHECK: str h0, [x0, x1, lsl #1] 52*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i16, i16* %D, i64 %offset 53*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <8 x i16> %A, i32 0 54*9880d681SAndroid Build Coastguard Worker store i16 %tmp, i16* %ptr 55*9880d681SAndroid Build Coastguard Worker ret void 56*9880d681SAndroid Build Coastguard Worker} 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_4s(<4 x i32> %A, i32* %D) { 59*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_4s 60*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s 61*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <4 x i32> %A, i32 1 62*9880d681SAndroid Build Coastguard Worker store i32 %tmp, i32* %D 63*9880d681SAndroid Build Coastguard Worker ret void 64*9880d681SAndroid Build Coastguard Worker} 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_4s(<4 x i32> %A, i32* %D, i64 %offset) { 67*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_4s 68*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 69*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s { v0 }[1], [x[[XREG]]] 70*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i32, i32* %D, i64 %offset 71*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <4 x i32> %A, i32 1 72*9880d681SAndroid Build Coastguard Worker store i32 %tmp, i32* %ptr 73*9880d681SAndroid Build Coastguard Worker ret void 74*9880d681SAndroid Build Coastguard Worker} 75*9880d681SAndroid Build Coastguard Worker 76*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_4s(<4 x i32> %A, i32* %D, i64 %offset) { 77*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_4s 78*9880d681SAndroid Build Coastguard Worker; CHECK: str s0, [x0, x1, lsl #2] 79*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i32, i32* %D, i64 %offset 80*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <4 x i32> %A, i32 0 81*9880d681SAndroid Build Coastguard Worker store i32 %tmp, i32* %ptr 82*9880d681SAndroid Build Coastguard Worker ret void 83*9880d681SAndroid Build Coastguard Worker} 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_4s_float(<4 x float> %A, float* %D) { 86*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_4s_float 87*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s 88*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <4 x float> %A, i32 1 89*9880d681SAndroid Build Coastguard Worker store float %tmp, float* %D 90*9880d681SAndroid Build Coastguard Worker ret void 91*9880d681SAndroid Build Coastguard Worker} 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_4s_float(<4 x float> %A, float* %D, i64 %offset) { 94*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_4s_float 95*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 96*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s { v0 }[1], [x[[XREG]]] 97*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr float, float* %D, i64 %offset 98*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <4 x float> %A, i32 1 99*9880d681SAndroid Build Coastguard Worker store float %tmp, float* %ptr 100*9880d681SAndroid Build Coastguard Worker ret void 101*9880d681SAndroid Build Coastguard Worker} 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_4s_float(<4 x float> %A, float* %D, i64 %offset) { 104*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_4s_float 105*9880d681SAndroid Build Coastguard Worker; CHECK: str s0, [x0, x1, lsl #2] 106*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr float, float* %D, i64 %offset 107*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <4 x float> %A, i32 0 108*9880d681SAndroid Build Coastguard Worker store float %tmp, float* %ptr 109*9880d681SAndroid Build Coastguard Worker ret void 110*9880d681SAndroid Build Coastguard Worker} 111*9880d681SAndroid Build Coastguard Worker 112*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_2d(<2 x i64> %A, i64* %D) { 113*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_2d 114*9880d681SAndroid Build Coastguard Worker; CHECK: st1.d 115*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x i64> %A, i32 1 116*9880d681SAndroid Build Coastguard Worker store i64 %tmp, i64* %D 117*9880d681SAndroid Build Coastguard Worker ret void 118*9880d681SAndroid Build Coastguard Worker} 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_2d(<2 x i64> %A, i64* %D, i64 %offset) { 121*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_2d 122*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 123*9880d681SAndroid Build Coastguard Worker; CHECK: st1.d { v0 }[1], [x[[XREG]]] 124*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i64, i64* %D, i64 %offset 125*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x i64> %A, i32 1 126*9880d681SAndroid Build Coastguard Worker store i64 %tmp, i64* %ptr 127*9880d681SAndroid Build Coastguard Worker ret void 128*9880d681SAndroid Build Coastguard Worker} 129*9880d681SAndroid Build Coastguard Worker 130*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_2d(<2 x i64> %A, i64* %D, i64 %offset) { 131*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_2d 132*9880d681SAndroid Build Coastguard Worker; CHECK: str d0, [x0, x1, lsl #3] 133*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i64, i64* %D, i64 %offset 134*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x i64> %A, i32 0 135*9880d681SAndroid Build Coastguard Worker store i64 %tmp, i64* %ptr 136*9880d681SAndroid Build Coastguard Worker ret void 137*9880d681SAndroid Build Coastguard Worker} 138*9880d681SAndroid Build Coastguard Worker 139*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_2d_double(<2 x double> %A, double* %D) { 140*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_2d_double 141*9880d681SAndroid Build Coastguard Worker; CHECK: st1.d 142*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x double> %A, i32 1 143*9880d681SAndroid Build Coastguard Worker store double %tmp, double* %D 144*9880d681SAndroid Build Coastguard Worker ret void 145*9880d681SAndroid Build Coastguard Worker} 146*9880d681SAndroid Build Coastguard Worker 147*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_2d_double(<2 x double> %A, double* %D, i64 %offset) { 148*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_2d_double 149*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 150*9880d681SAndroid Build Coastguard Worker; CHECK: st1.d { v0 }[1], [x[[XREG]]] 151*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr double, double* %D, i64 %offset 152*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x double> %A, i32 1 153*9880d681SAndroid Build Coastguard Worker store double %tmp, double* %ptr 154*9880d681SAndroid Build Coastguard Worker ret void 155*9880d681SAndroid Build Coastguard Worker} 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_2d_double(<2 x double> %A, double* %D, i64 %offset) { 158*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_2d_double 159*9880d681SAndroid Build Coastguard Worker; CHECK: str d0, [x0, x1, lsl #3] 160*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr double, double* %D, i64 %offset 161*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x double> %A, i32 0 162*9880d681SAndroid Build Coastguard Worker store double %tmp, double* %ptr 163*9880d681SAndroid Build Coastguard Worker ret void 164*9880d681SAndroid Build Coastguard Worker} 165*9880d681SAndroid Build Coastguard Worker 166*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_8b(<8 x i8> %A, i8* %D) { 167*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_8b 168*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b 169*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <8 x i8> %A, i32 1 170*9880d681SAndroid Build Coastguard Worker store i8 %tmp, i8* %D 171*9880d681SAndroid Build Coastguard Worker ret void 172*9880d681SAndroid Build Coastguard Worker} 173*9880d681SAndroid Build Coastguard Worker 174*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_8b(<8 x i8> %A, i8* %D, i64 %offset) { 175*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_8b 176*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 177*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b { v0 }[1], [x[[XREG]]] 178*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i8, i8* %D, i64 %offset 179*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <8 x i8> %A, i32 1 180*9880d681SAndroid Build Coastguard Worker store i8 %tmp, i8* %ptr 181*9880d681SAndroid Build Coastguard Worker ret void 182*9880d681SAndroid Build Coastguard Worker} 183*9880d681SAndroid Build Coastguard Worker 184*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_8b(<8 x i8> %A, i8* %D, i64 %offset) { 185*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_8b 186*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 187*9880d681SAndroid Build Coastguard Worker; CHECK: st1.b { v0 }[0], [x[[XREG]]] 188*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i8, i8* %D, i64 %offset 189*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <8 x i8> %A, i32 0 190*9880d681SAndroid Build Coastguard Worker store i8 %tmp, i8* %ptr 191*9880d681SAndroid Build Coastguard Worker ret void 192*9880d681SAndroid Build Coastguard Worker} 193*9880d681SAndroid Build Coastguard Worker 194*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_4h(<4 x i16> %A, i16* %D) { 195*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_4h 196*9880d681SAndroid Build Coastguard Worker; CHECK: st1.h 197*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <4 x i16> %A, i32 1 198*9880d681SAndroid Build Coastguard Worker store i16 %tmp, i16* %D 199*9880d681SAndroid Build Coastguard Worker ret void 200*9880d681SAndroid Build Coastguard Worker} 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_4h(<4 x i16> %A, i16* %D, i64 %offset) { 203*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_4h 204*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 205*9880d681SAndroid Build Coastguard Worker; CHECK: st1.h { v0 }[1], [x[[XREG]]] 206*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i16, i16* %D, i64 %offset 207*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <4 x i16> %A, i32 1 208*9880d681SAndroid Build Coastguard Worker store i16 %tmp, i16* %ptr 209*9880d681SAndroid Build Coastguard Worker ret void 210*9880d681SAndroid Build Coastguard Worker} 211*9880d681SAndroid Build Coastguard Worker 212*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_4h(<4 x i16> %A, i16* %D, i64 %offset) { 213*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_4h 214*9880d681SAndroid Build Coastguard Worker; CHECK: str h0, [x0, x1, lsl #1] 215*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i16, i16* %D, i64 %offset 216*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <4 x i16> %A, i32 0 217*9880d681SAndroid Build Coastguard Worker store i16 %tmp, i16* %ptr 218*9880d681SAndroid Build Coastguard Worker ret void 219*9880d681SAndroid Build Coastguard Worker} 220*9880d681SAndroid Build Coastguard Worker 221*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_2s(<2 x i32> %A, i32* %D) { 222*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_2s 223*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s 224*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x i32> %A, i32 1 225*9880d681SAndroid Build Coastguard Worker store i32 %tmp, i32* %D 226*9880d681SAndroid Build Coastguard Worker ret void 227*9880d681SAndroid Build Coastguard Worker} 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_2s(<2 x i32> %A, i32* %D, i64 %offset) { 230*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_2s 231*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 232*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s { v0 }[1], [x[[XREG]]] 233*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i32, i32* %D, i64 %offset 234*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x i32> %A, i32 1 235*9880d681SAndroid Build Coastguard Worker store i32 %tmp, i32* %ptr 236*9880d681SAndroid Build Coastguard Worker ret void 237*9880d681SAndroid Build Coastguard Worker} 238*9880d681SAndroid Build Coastguard Worker 239*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_2s(<2 x i32> %A, i32* %D, i64 %offset) { 240*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_2s 241*9880d681SAndroid Build Coastguard Worker; CHECK: str s0, [x0, x1, lsl #2] 242*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i32, i32* %D, i64 %offset 243*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x i32> %A, i32 0 244*9880d681SAndroid Build Coastguard Worker store i32 %tmp, i32* %ptr 245*9880d681SAndroid Build Coastguard Worker ret void 246*9880d681SAndroid Build Coastguard Worker} 247*9880d681SAndroid Build Coastguard Worker 248*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_2s_float(<2 x float> %A, float* %D) { 249*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_2s_float 250*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s 251*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x float> %A, i32 1 252*9880d681SAndroid Build Coastguard Worker store float %tmp, float* %D 253*9880d681SAndroid Build Coastguard Worker ret void 254*9880d681SAndroid Build Coastguard Worker} 255*9880d681SAndroid Build Coastguard Worker 256*9880d681SAndroid Build Coastguard Workerdefine void @st1lane_ro_2s_float(<2 x float> %A, float* %D, i64 %offset) { 257*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane_ro_2s_float 258*9880d681SAndroid Build Coastguard Worker; CHECK: add x[[XREG:[0-9]+]], x0, x1 259*9880d681SAndroid Build Coastguard Worker; CHECK: st1.s { v0 }[1], [x[[XREG]]] 260*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr float, float* %D, i64 %offset 261*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x float> %A, i32 1 262*9880d681SAndroid Build Coastguard Worker store float %tmp, float* %ptr 263*9880d681SAndroid Build Coastguard Worker ret void 264*9880d681SAndroid Build Coastguard Worker} 265*9880d681SAndroid Build Coastguard Worker 266*9880d681SAndroid Build Coastguard Workerdefine void @st1lane0_ro_2s_float(<2 x float> %A, float* %D, i64 %offset) { 267*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1lane0_ro_2s_float 268*9880d681SAndroid Build Coastguard Worker; CHECK: str s0, [x0, x1, lsl #2] 269*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr float, float* %D, i64 %offset 270*9880d681SAndroid Build Coastguard Worker %tmp = extractelement <2 x float> %A, i32 0 271*9880d681SAndroid Build Coastguard Worker store float %tmp, float* %ptr 272*9880d681SAndroid Build Coastguard Worker ret void 273*9880d681SAndroid Build Coastguard Worker} 274*9880d681SAndroid Build Coastguard Worker 275*9880d681SAndroid Build Coastguard Workerdefine void @st2lane_16b(<16 x i8> %A, <16 x i8> %B, i8* %D) { 276*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2lane_16b 277*9880d681SAndroid Build Coastguard Worker; CHECK: st2.b 278*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2lane.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, i64 1, i8* %D) 279*9880d681SAndroid Build Coastguard Worker ret void 280*9880d681SAndroid Build Coastguard Worker} 281*9880d681SAndroid Build Coastguard Worker 282*9880d681SAndroid Build Coastguard Workerdefine void @st2lane_8h(<8 x i16> %A, <8 x i16> %B, i16* %D) { 283*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2lane_8h 284*9880d681SAndroid Build Coastguard Worker; CHECK: st2.h 285*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2lane.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, i64 1, i16* %D) 286*9880d681SAndroid Build Coastguard Worker ret void 287*9880d681SAndroid Build Coastguard Worker} 288*9880d681SAndroid Build Coastguard Worker 289*9880d681SAndroid Build Coastguard Workerdefine void @st2lane_4s(<4 x i32> %A, <4 x i32> %B, i32* %D) { 290*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2lane_4s 291*9880d681SAndroid Build Coastguard Worker; CHECK: st2.s 292*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2lane.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, i64 1, i32* %D) 293*9880d681SAndroid Build Coastguard Worker ret void 294*9880d681SAndroid Build Coastguard Worker} 295*9880d681SAndroid Build Coastguard Worker 296*9880d681SAndroid Build Coastguard Workerdefine void @st2lane_2d(<2 x i64> %A, <2 x i64> %B, i64* %D) { 297*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2lane_2d 298*9880d681SAndroid Build Coastguard Worker; CHECK: st2.d 299*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2lane.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, i64 1, i64* %D) 300*9880d681SAndroid Build Coastguard Worker ret void 301*9880d681SAndroid Build Coastguard Worker} 302*9880d681SAndroid Build Coastguard Worker 303*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2lane.v16i8.p0i8(<16 x i8>, <16 x i8>, i64, i8*) nounwind readnone 304*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2lane.v8i16.p0i16(<8 x i16>, <8 x i16>, i64, i16*) nounwind readnone 305*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2lane.v4i32.p0i32(<4 x i32>, <4 x i32>, i64, i32*) nounwind readnone 306*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2lane.v2i64.p0i64(<2 x i64>, <2 x i64>, i64, i64*) nounwind readnone 307*9880d681SAndroid Build Coastguard Worker 308*9880d681SAndroid Build Coastguard Workerdefine void @st3lane_16b(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %D) { 309*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3lane_16b 310*9880d681SAndroid Build Coastguard Worker; CHECK: st3.b 311*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3lane.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i64 1, i8* %D) 312*9880d681SAndroid Build Coastguard Worker ret void 313*9880d681SAndroid Build Coastguard Worker} 314*9880d681SAndroid Build Coastguard Worker 315*9880d681SAndroid Build Coastguard Workerdefine void @st3lane_8h(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %D) { 316*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3lane_8h 317*9880d681SAndroid Build Coastguard Worker; CHECK: st3.h 318*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3lane.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i64 1, i16* %D) 319*9880d681SAndroid Build Coastguard Worker ret void 320*9880d681SAndroid Build Coastguard Worker} 321*9880d681SAndroid Build Coastguard Worker 322*9880d681SAndroid Build Coastguard Workerdefine void @st3lane_4s(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %D) { 323*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3lane_4s 324*9880d681SAndroid Build Coastguard Worker; CHECK: st3.s 325*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3lane.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i64 1, i32* %D) 326*9880d681SAndroid Build Coastguard Worker ret void 327*9880d681SAndroid Build Coastguard Worker} 328*9880d681SAndroid Build Coastguard Worker 329*9880d681SAndroid Build Coastguard Workerdefine void @st3lane_2d(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %D) { 330*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3lane_2d 331*9880d681SAndroid Build Coastguard Worker; CHECK: st3.d 332*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3lane.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64 1, i64* %D) 333*9880d681SAndroid Build Coastguard Worker ret void 334*9880d681SAndroid Build Coastguard Worker} 335*9880d681SAndroid Build Coastguard Worker 336*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3lane.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, i64, i8*) nounwind readnone 337*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3lane.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, i64, i16*) nounwind readnone 338*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3lane.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, i64, i32*) nounwind readnone 339*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3lane.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, i64, i64*) nounwind readnone 340*9880d681SAndroid Build Coastguard Worker 341*9880d681SAndroid Build Coastguard Workerdefine void @st4lane_16b(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %E) { 342*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4lane_16b 343*9880d681SAndroid Build Coastguard Worker; CHECK: st4.b 344*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4lane.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i64 1, i8* %E) 345*9880d681SAndroid Build Coastguard Worker ret void 346*9880d681SAndroid Build Coastguard Worker} 347*9880d681SAndroid Build Coastguard Worker 348*9880d681SAndroid Build Coastguard Workerdefine void @st4lane_8h(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %E) { 349*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4lane_8h 350*9880d681SAndroid Build Coastguard Worker; CHECK: st4.h 351*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4lane.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i64 1, i16* %E) 352*9880d681SAndroid Build Coastguard Worker ret void 353*9880d681SAndroid Build Coastguard Worker} 354*9880d681SAndroid Build Coastguard Worker 355*9880d681SAndroid Build Coastguard Workerdefine void @st4lane_4s(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %E) { 356*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4lane_4s 357*9880d681SAndroid Build Coastguard Worker; CHECK: st4.s 358*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4lane.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i64 1, i32* %E) 359*9880d681SAndroid Build Coastguard Worker ret void 360*9880d681SAndroid Build Coastguard Worker} 361*9880d681SAndroid Build Coastguard Worker 362*9880d681SAndroid Build Coastguard Workerdefine void @st4lane_2d(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %E) { 363*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4lane_2d 364*9880d681SAndroid Build Coastguard Worker; CHECK: st4.d 365*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4lane.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64 1, i64* %E) 366*9880d681SAndroid Build Coastguard Worker ret void 367*9880d681SAndroid Build Coastguard Worker} 368*9880d681SAndroid Build Coastguard Worker 369*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4lane.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, <16 x i8>, i64, i8*) nounwind readnone 370*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4lane.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, <8 x i16>, i64, i16*) nounwind readnone 371*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4lane.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>, i64, i32*) nounwind readnone 372*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4lane.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, i64, i64*) nounwind readnone 373*9880d681SAndroid Build Coastguard Worker 374*9880d681SAndroid Build Coastguard Worker 375*9880d681SAndroid Build Coastguard Workerdefine void @st2_8b(<8 x i8> %A, <8 x i8> %B, i8* %P) nounwind { 376*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_8b 377*9880d681SAndroid Build Coastguard Worker; CHECK: st2.8b 378*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, i8* %P) 379*9880d681SAndroid Build Coastguard Worker ret void 380*9880d681SAndroid Build Coastguard Worker} 381*9880d681SAndroid Build Coastguard Worker 382*9880d681SAndroid Build Coastguard Workerdefine void @st3_8b(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, i8* %P) nounwind { 383*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_8b 384*9880d681SAndroid Build Coastguard Worker; CHECK: st3.8b 385*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, i8* %P) 386*9880d681SAndroid Build Coastguard Worker ret void 387*9880d681SAndroid Build Coastguard Worker} 388*9880d681SAndroid Build Coastguard Worker 389*9880d681SAndroid Build Coastguard Workerdefine void @st4_8b(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, <8 x i8> %D, i8* %P) nounwind { 390*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_8b 391*9880d681SAndroid Build Coastguard Worker; CHECK: st4.8b 392*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, <8 x i8> %D, i8* %P) 393*9880d681SAndroid Build Coastguard Worker ret void 394*9880d681SAndroid Build Coastguard Worker} 395*9880d681SAndroid Build Coastguard Worker 396*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v8i8.p0i8(<8 x i8>, <8 x i8>, i8*) nounwind readonly 397*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v8i8.p0i8(<8 x i8>, <8 x i8>, <8 x i8>, i8*) nounwind readonly 398*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v8i8.p0i8(<8 x i8>, <8 x i8>, <8 x i8>, <8 x i8>, i8*) nounwind readonly 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Workerdefine void @st2_16b(<16 x i8> %A, <16 x i8> %B, i8* %P) nounwind { 401*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_16b 402*9880d681SAndroid Build Coastguard Worker; CHECK: st2.16b 403*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, i8* %P) 404*9880d681SAndroid Build Coastguard Worker ret void 405*9880d681SAndroid Build Coastguard Worker} 406*9880d681SAndroid Build Coastguard Worker 407*9880d681SAndroid Build Coastguard Workerdefine void @st3_16b(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %P) nounwind { 408*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_16b 409*9880d681SAndroid Build Coastguard Worker; CHECK: st3.16b 410*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %P) 411*9880d681SAndroid Build Coastguard Worker ret void 412*9880d681SAndroid Build Coastguard Worker} 413*9880d681SAndroid Build Coastguard Worker 414*9880d681SAndroid Build Coastguard Workerdefine void @st4_16b(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %P) nounwind { 415*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_16b 416*9880d681SAndroid Build Coastguard Worker; CHECK: st4.16b 417*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %P) 418*9880d681SAndroid Build Coastguard Worker ret void 419*9880d681SAndroid Build Coastguard Worker} 420*9880d681SAndroid Build Coastguard Worker 421*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v16i8.p0i8(<16 x i8>, <16 x i8>, i8*) nounwind readonly 422*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, i8*) nounwind readonly 423*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, <16 x i8>, i8*) nounwind readonly 424*9880d681SAndroid Build Coastguard Worker 425*9880d681SAndroid Build Coastguard Workerdefine void @st2_4h(<4 x i16> %A, <4 x i16> %B, i16* %P) nounwind { 426*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_4h 427*9880d681SAndroid Build Coastguard Worker; CHECK: st2.4h 428*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, i16* %P) 429*9880d681SAndroid Build Coastguard Worker ret void 430*9880d681SAndroid Build Coastguard Worker} 431*9880d681SAndroid Build Coastguard Worker 432*9880d681SAndroid Build Coastguard Workerdefine void @st3_4h(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, i16* %P) nounwind { 433*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_4h 434*9880d681SAndroid Build Coastguard Worker; CHECK: st3.4h 435*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, i16* %P) 436*9880d681SAndroid Build Coastguard Worker ret void 437*9880d681SAndroid Build Coastguard Worker} 438*9880d681SAndroid Build Coastguard Worker 439*9880d681SAndroid Build Coastguard Workerdefine void @st4_4h(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, <4 x i16> %D, i16* %P) nounwind { 440*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_4h 441*9880d681SAndroid Build Coastguard Worker; CHECK: st4.4h 442*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, <4 x i16> %D, i16* %P) 443*9880d681SAndroid Build Coastguard Worker ret void 444*9880d681SAndroid Build Coastguard Worker} 445*9880d681SAndroid Build Coastguard Worker 446*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v4i16.p0i16(<4 x i16>, <4 x i16>, i16*) nounwind readonly 447*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v4i16.p0i16(<4 x i16>, <4 x i16>, <4 x i16>, i16*) nounwind readonly 448*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v4i16.p0i16(<4 x i16>, <4 x i16>, <4 x i16>, <4 x i16>, i16*) nounwind readonly 449*9880d681SAndroid Build Coastguard Worker 450*9880d681SAndroid Build Coastguard Workerdefine void @st2_8h(<8 x i16> %A, <8 x i16> %B, i16* %P) nounwind { 451*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_8h 452*9880d681SAndroid Build Coastguard Worker; CHECK: st2.8h 453*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, i16* %P) 454*9880d681SAndroid Build Coastguard Worker ret void 455*9880d681SAndroid Build Coastguard Worker} 456*9880d681SAndroid Build Coastguard Worker 457*9880d681SAndroid Build Coastguard Workerdefine void @st3_8h(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %P) nounwind { 458*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_8h 459*9880d681SAndroid Build Coastguard Worker; CHECK: st3.8h 460*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %P) 461*9880d681SAndroid Build Coastguard Worker ret void 462*9880d681SAndroid Build Coastguard Worker} 463*9880d681SAndroid Build Coastguard Worker 464*9880d681SAndroid Build Coastguard Workerdefine void @st4_8h(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %P) nounwind { 465*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_8h 466*9880d681SAndroid Build Coastguard Worker; CHECK: st4.8h 467*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %P) 468*9880d681SAndroid Build Coastguard Worker ret void 469*9880d681SAndroid Build Coastguard Worker} 470*9880d681SAndroid Build Coastguard Worker 471*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v8i16.p0i16(<8 x i16>, <8 x i16>, i16*) nounwind readonly 472*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, i16*) nounwind readonly 473*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, <8 x i16>, i16*) nounwind readonly 474*9880d681SAndroid Build Coastguard Worker 475*9880d681SAndroid Build Coastguard Workerdefine void @st2_2s(<2 x i32> %A, <2 x i32> %B, i32* %P) nounwind { 476*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_2s 477*9880d681SAndroid Build Coastguard Worker; CHECK: st2.2s 478*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, i32* %P) 479*9880d681SAndroid Build Coastguard Worker ret void 480*9880d681SAndroid Build Coastguard Worker} 481*9880d681SAndroid Build Coastguard Worker 482*9880d681SAndroid Build Coastguard Workerdefine void @st3_2s(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, i32* %P) nounwind { 483*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_2s 484*9880d681SAndroid Build Coastguard Worker; CHECK: st3.2s 485*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, i32* %P) 486*9880d681SAndroid Build Coastguard Worker ret void 487*9880d681SAndroid Build Coastguard Worker} 488*9880d681SAndroid Build Coastguard Worker 489*9880d681SAndroid Build Coastguard Workerdefine void @st4_2s(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, <2 x i32> %D, i32* %P) nounwind { 490*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_2s 491*9880d681SAndroid Build Coastguard Worker; CHECK: st4.2s 492*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, <2 x i32> %D, i32* %P) 493*9880d681SAndroid Build Coastguard Worker ret void 494*9880d681SAndroid Build Coastguard Worker} 495*9880d681SAndroid Build Coastguard Worker 496*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v2i32.p0i32(<2 x i32>, <2 x i32>, i32*) nounwind readonly 497*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v2i32.p0i32(<2 x i32>, <2 x i32>, <2 x i32>, i32*) nounwind readonly 498*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v2i32.p0i32(<2 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, i32*) nounwind readonly 499*9880d681SAndroid Build Coastguard Worker 500*9880d681SAndroid Build Coastguard Workerdefine void @st2_4s(<4 x i32> %A, <4 x i32> %B, i32* %P) nounwind { 501*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_4s 502*9880d681SAndroid Build Coastguard Worker; CHECK: st2.4s 503*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, i32* %P) 504*9880d681SAndroid Build Coastguard Worker ret void 505*9880d681SAndroid Build Coastguard Worker} 506*9880d681SAndroid Build Coastguard Worker 507*9880d681SAndroid Build Coastguard Workerdefine void @st3_4s(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %P) nounwind { 508*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_4s 509*9880d681SAndroid Build Coastguard Worker; CHECK: st3.4s 510*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %P) 511*9880d681SAndroid Build Coastguard Worker ret void 512*9880d681SAndroid Build Coastguard Worker} 513*9880d681SAndroid Build Coastguard Worker 514*9880d681SAndroid Build Coastguard Workerdefine void @st4_4s(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %P) nounwind { 515*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_4s 516*9880d681SAndroid Build Coastguard Worker; CHECK: st4.4s 517*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %P) 518*9880d681SAndroid Build Coastguard Worker ret void 519*9880d681SAndroid Build Coastguard Worker} 520*9880d681SAndroid Build Coastguard Worker 521*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v4i32.p0i32(<4 x i32>, <4 x i32>, i32*) nounwind readonly 522*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, i32*) nounwind readonly 523*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>, i32*) nounwind readonly 524*9880d681SAndroid Build Coastguard Worker 525*9880d681SAndroid Build Coastguard Worker; If there's only one element, st2/3/4 don't make much sense, stick to st1. 526*9880d681SAndroid Build Coastguard Workerdefine void @st2_1d(<1 x i64> %A, <1 x i64> %B, i64* %P) nounwind { 527*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_1d 528*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d 529*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, i64* %P) 530*9880d681SAndroid Build Coastguard Worker ret void 531*9880d681SAndroid Build Coastguard Worker} 532*9880d681SAndroid Build Coastguard Worker 533*9880d681SAndroid Build Coastguard Workerdefine void @st3_1d(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, i64* %P) nounwind { 534*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_1d 535*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d 536*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, i64* %P) 537*9880d681SAndroid Build Coastguard Worker ret void 538*9880d681SAndroid Build Coastguard Worker} 539*9880d681SAndroid Build Coastguard Worker 540*9880d681SAndroid Build Coastguard Workerdefine void @st4_1d(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, <1 x i64> %D, i64* %P) nounwind { 541*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_1d 542*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d 543*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, <1 x i64> %D, i64* %P) 544*9880d681SAndroid Build Coastguard Worker ret void 545*9880d681SAndroid Build Coastguard Worker} 546*9880d681SAndroid Build Coastguard Worker 547*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v1i64.p0i64(<1 x i64>, <1 x i64>, i64*) nounwind readonly 548*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v1i64.p0i64(<1 x i64>, <1 x i64>, <1 x i64>, i64*) nounwind readonly 549*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v1i64.p0i64(<1 x i64>, <1 x i64>, <1 x i64>, <1 x i64>, i64*) nounwind readonly 550*9880d681SAndroid Build Coastguard Worker 551*9880d681SAndroid Build Coastguard Workerdefine void @st2_2d(<2 x i64> %A, <2 x i64> %B, i64* %P) nounwind { 552*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st2_2d 553*9880d681SAndroid Build Coastguard Worker; CHECK: st2.2d 554*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st2.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, i64* %P) 555*9880d681SAndroid Build Coastguard Worker ret void 556*9880d681SAndroid Build Coastguard Worker} 557*9880d681SAndroid Build Coastguard Worker 558*9880d681SAndroid Build Coastguard Workerdefine void @st3_2d(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %P) nounwind { 559*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st3_2d 560*9880d681SAndroid Build Coastguard Worker; CHECK: st3.2d 561*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st3.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %P) 562*9880d681SAndroid Build Coastguard Worker ret void 563*9880d681SAndroid Build Coastguard Worker} 564*9880d681SAndroid Build Coastguard Worker 565*9880d681SAndroid Build Coastguard Workerdefine void @st4_2d(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %P) nounwind { 566*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st4_2d 567*9880d681SAndroid Build Coastguard Worker; CHECK: st4.2d 568*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st4.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %P) 569*9880d681SAndroid Build Coastguard Worker ret void 570*9880d681SAndroid Build Coastguard Worker} 571*9880d681SAndroid Build Coastguard Worker 572*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st2.v2i64.p0i64(<2 x i64>, <2 x i64>, i64*) nounwind readonly 573*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st3.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, i64*) nounwind readonly 574*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st4.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, i64*) nounwind readonly 575*9880d681SAndroid Build Coastguard Worker 576*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v8i8.p0i8(<8 x i8>, <8 x i8>, i8*) nounwind readonly 577*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v4i16.p0i16(<4 x i16>, <4 x i16>, i16*) nounwind readonly 578*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v2i32.p0i32(<2 x i32>, <2 x i32>, i32*) nounwind readonly 579*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v2f32.p0f32(<2 x float>, <2 x float>, float*) nounwind readonly 580*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v1i64.p0i64(<1 x i64>, <1 x i64>, i64*) nounwind readonly 581*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v1f64.p0f64(<1 x double>, <1 x double>, double*) nounwind readonly 582*9880d681SAndroid Build Coastguard Worker 583*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v8i8(<8 x i8> %A, <8 x i8> %B, i8* %addr) { 584*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v8i8: 585*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8b { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 586*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, i8* %addr) 587*9880d681SAndroid Build Coastguard Worker ret void 588*9880d681SAndroid Build Coastguard Worker} 589*9880d681SAndroid Build Coastguard Worker 590*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v4i16(<4 x i16> %A, <4 x i16> %B, i16* %addr) { 591*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v4i16: 592*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4h { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 593*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, i16* %addr) 594*9880d681SAndroid Build Coastguard Worker ret void 595*9880d681SAndroid Build Coastguard Worker} 596*9880d681SAndroid Build Coastguard Worker 597*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v2i32(<2 x i32> %A, <2 x i32> %B, i32* %addr) { 598*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v2i32: 599*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 600*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, i32* %addr) 601*9880d681SAndroid Build Coastguard Worker ret void 602*9880d681SAndroid Build Coastguard Worker} 603*9880d681SAndroid Build Coastguard Worker 604*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v2f32(<2 x float> %A, <2 x float> %B, float* %addr) { 605*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v2f32: 606*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 607*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v2f32.p0f32(<2 x float> %A, <2 x float> %B, float* %addr) 608*9880d681SAndroid Build Coastguard Worker ret void 609*9880d681SAndroid Build Coastguard Worker} 610*9880d681SAndroid Build Coastguard Worker 611*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v1i64(<1 x i64> %A, <1 x i64> %B, i64* %addr) { 612*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v1i64: 613*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 614*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, i64* %addr) 615*9880d681SAndroid Build Coastguard Worker ret void 616*9880d681SAndroid Build Coastguard Worker} 617*9880d681SAndroid Build Coastguard Worker 618*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v1f64(<1 x double> %A, <1 x double> %B, double* %addr) { 619*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v1f64: 620*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 621*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v1f64.p0f64(<1 x double> %A, <1 x double> %B, double* %addr) 622*9880d681SAndroid Build Coastguard Worker ret void 623*9880d681SAndroid Build Coastguard Worker} 624*9880d681SAndroid Build Coastguard Worker 625*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v16i8.p0i8(<16 x i8>, <16 x i8>, i8*) nounwind readonly 626*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v8i16.p0i16(<8 x i16>, <8 x i16>, i16*) nounwind readonly 627*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v4i32.p0i32(<4 x i32>, <4 x i32>, i32*) nounwind readonly 628*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v4f32.p0f32(<4 x float>, <4 x float>, float*) nounwind readonly 629*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v2i64.p0i64(<2 x i64>, <2 x i64>, i64*) nounwind readonly 630*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x2.v2f64.p0f64(<2 x double>, <2 x double>, double*) nounwind readonly 631*9880d681SAndroid Build Coastguard Worker 632*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v16i8(<16 x i8> %A, <16 x i8> %B, i8* %addr) { 633*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v16i8: 634*9880d681SAndroid Build Coastguard Worker; CHECK: st1.16b { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 635*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, i8* %addr) 636*9880d681SAndroid Build Coastguard Worker ret void 637*9880d681SAndroid Build Coastguard Worker} 638*9880d681SAndroid Build Coastguard Worker 639*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v8i16(<8 x i16> %A, <8 x i16> %B, i16* %addr) { 640*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v8i16: 641*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8h { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 642*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, i16* %addr) 643*9880d681SAndroid Build Coastguard Worker ret void 644*9880d681SAndroid Build Coastguard Worker} 645*9880d681SAndroid Build Coastguard Worker 646*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v4i32(<4 x i32> %A, <4 x i32> %B, i32* %addr) { 647*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v4i32: 648*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 649*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, i32* %addr) 650*9880d681SAndroid Build Coastguard Worker ret void 651*9880d681SAndroid Build Coastguard Worker} 652*9880d681SAndroid Build Coastguard Worker 653*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v4f32(<4 x float> %A, <4 x float> %B, float* %addr) { 654*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v4f32: 655*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 656*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v4f32.p0f32(<4 x float> %A, <4 x float> %B, float* %addr) 657*9880d681SAndroid Build Coastguard Worker ret void 658*9880d681SAndroid Build Coastguard Worker} 659*9880d681SAndroid Build Coastguard Worker 660*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v2i64(<2 x i64> %A, <2 x i64> %B, i64* %addr) { 661*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v2i64: 662*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 663*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, i64* %addr) 664*9880d681SAndroid Build Coastguard Worker ret void 665*9880d681SAndroid Build Coastguard Worker} 666*9880d681SAndroid Build Coastguard Worker 667*9880d681SAndroid Build Coastguard Workerdefine void @st1_x2_v2f64(<2 x double> %A, <2 x double> %B, double* %addr) { 668*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x2_v2f64: 669*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 670*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x2.v2f64.p0f64(<2 x double> %A, <2 x double> %B, double* %addr) 671*9880d681SAndroid Build Coastguard Worker ret void 672*9880d681SAndroid Build Coastguard Worker} 673*9880d681SAndroid Build Coastguard Worker 674*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v8i8.p0i8(<8 x i8>, <8 x i8>, <8 x i8>, i8*) nounwind readonly 675*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v4i16.p0i16(<4 x i16>, <4 x i16>, <4 x i16>, i16*) nounwind readonly 676*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v2i32.p0i32(<2 x i32>, <2 x i32>, <2 x i32>, i32*) nounwind readonly 677*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v2f32.p0f32(<2 x float>, <2 x float>, <2 x float>, float*) nounwind readonly 678*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v1i64.p0i64(<1 x i64>, <1 x i64>, <1 x i64>, i64*) nounwind readonly 679*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v1f64.p0f64(<1 x double>, <1 x double>, <1 x double>, double*) nounwind readonly 680*9880d681SAndroid Build Coastguard Worker 681*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v8i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, i8* %addr) { 682*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v8i8: 683*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8b { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 684*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, i8* %addr) 685*9880d681SAndroid Build Coastguard Worker ret void 686*9880d681SAndroid Build Coastguard Worker} 687*9880d681SAndroid Build Coastguard Worker 688*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v4i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, i16* %addr) { 689*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v4i16: 690*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4h { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 691*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, i16* %addr) 692*9880d681SAndroid Build Coastguard Worker ret void 693*9880d681SAndroid Build Coastguard Worker} 694*9880d681SAndroid Build Coastguard Worker 695*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v2i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, i32* %addr) { 696*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v2i32: 697*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 698*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, i32* %addr) 699*9880d681SAndroid Build Coastguard Worker ret void 700*9880d681SAndroid Build Coastguard Worker} 701*9880d681SAndroid Build Coastguard Worker 702*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v2f32(<2 x float> %A, <2 x float> %B, <2 x float> %C, float* %addr) { 703*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v2f32: 704*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 705*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v2f32.p0f32(<2 x float> %A, <2 x float> %B, <2 x float> %C, float* %addr) 706*9880d681SAndroid Build Coastguard Worker ret void 707*9880d681SAndroid Build Coastguard Worker} 708*9880d681SAndroid Build Coastguard Worker 709*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v1i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, i64* %addr) { 710*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v1i64: 711*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 712*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, i64* %addr) 713*9880d681SAndroid Build Coastguard Worker ret void 714*9880d681SAndroid Build Coastguard Worker} 715*9880d681SAndroid Build Coastguard Worker 716*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v1f64(<1 x double> %A, <1 x double> %B, <1 x double> %C, double* %addr) { 717*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v1f64: 718*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 719*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v1f64.p0f64(<1 x double> %A, <1 x double> %B, <1 x double> %C, double* %addr) 720*9880d681SAndroid Build Coastguard Worker ret void 721*9880d681SAndroid Build Coastguard Worker} 722*9880d681SAndroid Build Coastguard Worker 723*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, i8*) nounwind readonly 724*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, i16*) nounwind readonly 725*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, i32*) nounwind readonly 726*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v4f32.p0f32(<4 x float>, <4 x float>, <4 x float>, float*) nounwind readonly 727*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, i64*) nounwind readonly 728*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x3.v2f64.p0f64(<2 x double>, <2 x double>, <2 x double>, double*) nounwind readonly 729*9880d681SAndroid Build Coastguard Worker 730*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v16i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %addr) { 731*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v16i8: 732*9880d681SAndroid Build Coastguard Worker; CHECK: st1.16b { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 733*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, i8* %addr) 734*9880d681SAndroid Build Coastguard Worker ret void 735*9880d681SAndroid Build Coastguard Worker} 736*9880d681SAndroid Build Coastguard Worker 737*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v8i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %addr) { 738*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v8i16: 739*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8h { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 740*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i16* %addr) 741*9880d681SAndroid Build Coastguard Worker ret void 742*9880d681SAndroid Build Coastguard Worker} 743*9880d681SAndroid Build Coastguard Worker 744*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v4i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %addr) { 745*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v4i32: 746*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 747*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, i32* %addr) 748*9880d681SAndroid Build Coastguard Worker ret void 749*9880d681SAndroid Build Coastguard Worker} 750*9880d681SAndroid Build Coastguard Worker 751*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v4f32(<4 x float> %A, <4 x float> %B, <4 x float> %C, float* %addr) { 752*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v4f32: 753*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 754*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v4f32.p0f32(<4 x float> %A, <4 x float> %B, <4 x float> %C, float* %addr) 755*9880d681SAndroid Build Coastguard Worker ret void 756*9880d681SAndroid Build Coastguard Worker} 757*9880d681SAndroid Build Coastguard Worker 758*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v2i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %addr) { 759*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v2i64: 760*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 761*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, i64* %addr) 762*9880d681SAndroid Build Coastguard Worker ret void 763*9880d681SAndroid Build Coastguard Worker} 764*9880d681SAndroid Build Coastguard Worker 765*9880d681SAndroid Build Coastguard Workerdefine void @st1_x3_v2f64(<2 x double> %A, <2 x double> %B, <2 x double> %C, double* %addr) { 766*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x3_v2f64: 767*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 768*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x3.v2f64.p0f64(<2 x double> %A, <2 x double> %B, <2 x double> %C, double* %addr) 769*9880d681SAndroid Build Coastguard Worker ret void 770*9880d681SAndroid Build Coastguard Worker} 771*9880d681SAndroid Build Coastguard Worker 772*9880d681SAndroid Build Coastguard Worker 773*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v8i8.p0i8(<8 x i8>, <8 x i8>, <8 x i8>, <8 x i8>, i8*) nounwind readonly 774*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v4i16.p0i16(<4 x i16>, <4 x i16>, <4 x i16>, <4 x i16>, i16*) nounwind readonly 775*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v2i32.p0i32(<2 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, i32*) nounwind readonly 776*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v2f32.p0f32(<2 x float>, <2 x float>, <2 x float>, <2 x float>, float*) nounwind readonly 777*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v1i64.p0i64(<1 x i64>, <1 x i64>, <1 x i64>, <1 x i64>, i64*) nounwind readonly 778*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v1f64.p0f64(<1 x double>, <1 x double>, <1 x double>, <1 x double>, double*) nounwind readonly 779*9880d681SAndroid Build Coastguard Worker 780*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v8i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, <8 x i8> %D, i8* %addr) { 781*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v8i8: 782*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8b { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 783*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v8i8.p0i8(<8 x i8> %A, <8 x i8> %B, <8 x i8> %C, <8 x i8> %D, i8* %addr) 784*9880d681SAndroid Build Coastguard Worker ret void 785*9880d681SAndroid Build Coastguard Worker} 786*9880d681SAndroid Build Coastguard Worker 787*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v4i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, <4 x i16> %D, i16* %addr) { 788*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v4i16: 789*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4h { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 790*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v4i16.p0i16(<4 x i16> %A, <4 x i16> %B, <4 x i16> %C, <4 x i16> %D, i16* %addr) 791*9880d681SAndroid Build Coastguard Worker ret void 792*9880d681SAndroid Build Coastguard Worker} 793*9880d681SAndroid Build Coastguard Worker 794*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v2i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, <2 x i32> %D, i32* %addr) { 795*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v2i32: 796*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 797*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v2i32.p0i32(<2 x i32> %A, <2 x i32> %B, <2 x i32> %C, <2 x i32> %D, i32* %addr) 798*9880d681SAndroid Build Coastguard Worker ret void 799*9880d681SAndroid Build Coastguard Worker} 800*9880d681SAndroid Build Coastguard Worker 801*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v2f32(<2 x float> %A, <2 x float> %B, <2 x float> %C, <2 x float> %D, float* %addr) { 802*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v2f32: 803*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 804*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v2f32.p0f32(<2 x float> %A, <2 x float> %B, <2 x float> %C, <2 x float> %D, float* %addr) 805*9880d681SAndroid Build Coastguard Worker ret void 806*9880d681SAndroid Build Coastguard Worker} 807*9880d681SAndroid Build Coastguard Worker 808*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v1i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, <1 x i64> %D, i64* %addr) { 809*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v1i64: 810*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 811*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v1i64.p0i64(<1 x i64> %A, <1 x i64> %B, <1 x i64> %C, <1 x i64> %D, i64* %addr) 812*9880d681SAndroid Build Coastguard Worker ret void 813*9880d681SAndroid Build Coastguard Worker} 814*9880d681SAndroid Build Coastguard Worker 815*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v1f64(<1 x double> %A, <1 x double> %B, <1 x double> %C, <1 x double> %D, double* %addr) { 816*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v1f64: 817*9880d681SAndroid Build Coastguard Worker; CHECK: st1.1d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 818*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v1f64.p0f64(<1 x double> %A, <1 x double> %B, <1 x double> %C, <1 x double> %D, double* %addr) 819*9880d681SAndroid Build Coastguard Worker ret void 820*9880d681SAndroid Build Coastguard Worker} 821*9880d681SAndroid Build Coastguard Worker 822*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v16i8.p0i8(<16 x i8>, <16 x i8>, <16 x i8>, <16 x i8>, i8*) nounwind readonly 823*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v8i16.p0i16(<8 x i16>, <8 x i16>, <8 x i16>, <8 x i16>, i16*) nounwind readonly 824*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v4i32.p0i32(<4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>, i32*) nounwind readonly 825*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v4f32.p0f32(<4 x float>, <4 x float>, <4 x float>, <4 x float>, float*) nounwind readonly 826*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v2i64.p0i64(<2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, i64*) nounwind readonly 827*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.aarch64.neon.st1x4.v2f64.p0f64(<2 x double>, <2 x double>, <2 x double>, <2 x double>, double*) nounwind readonly 828*9880d681SAndroid Build Coastguard Worker 829*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v16i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %addr) { 830*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v16i8: 831*9880d681SAndroid Build Coastguard Worker; CHECK: st1.16b { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 832*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v16i8.p0i8(<16 x i8> %A, <16 x i8> %B, <16 x i8> %C, <16 x i8> %D, i8* %addr) 833*9880d681SAndroid Build Coastguard Worker ret void 834*9880d681SAndroid Build Coastguard Worker} 835*9880d681SAndroid Build Coastguard Worker 836*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v8i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %addr) { 837*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v8i16: 838*9880d681SAndroid Build Coastguard Worker; CHECK: st1.8h { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 839*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v8i16.p0i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, <8 x i16> %D, i16* %addr) 840*9880d681SAndroid Build Coastguard Worker ret void 841*9880d681SAndroid Build Coastguard Worker} 842*9880d681SAndroid Build Coastguard Worker 843*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v4i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %addr) { 844*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v4i32: 845*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 846*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v4i32.p0i32(<4 x i32> %A, <4 x i32> %B, <4 x i32> %C, <4 x i32> %D, i32* %addr) 847*9880d681SAndroid Build Coastguard Worker ret void 848*9880d681SAndroid Build Coastguard Worker} 849*9880d681SAndroid Build Coastguard Worker 850*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v4f32(<4 x float> %A, <4 x float> %B, <4 x float> %C, <4 x float> %D, float* %addr) { 851*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v4f32: 852*9880d681SAndroid Build Coastguard Worker; CHECK: st1.4s { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 853*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v4f32.p0f32(<4 x float> %A, <4 x float> %B, <4 x float> %C, <4 x float> %D, float* %addr) 854*9880d681SAndroid Build Coastguard Worker ret void 855*9880d681SAndroid Build Coastguard Worker} 856*9880d681SAndroid Build Coastguard Worker 857*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v2i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %addr) { 858*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v2i64: 859*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 860*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v2i64.p0i64(<2 x i64> %A, <2 x i64> %B, <2 x i64> %C, <2 x i64> %D, i64* %addr) 861*9880d681SAndroid Build Coastguard Worker ret void 862*9880d681SAndroid Build Coastguard Worker} 863*9880d681SAndroid Build Coastguard Worker 864*9880d681SAndroid Build Coastguard Workerdefine void @st1_x4_v2f64(<2 x double> %A, <2 x double> %B, <2 x double> %C, <2 x double> %D, double* %addr) { 865*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: st1_x4_v2f64: 866*9880d681SAndroid Build Coastguard Worker; CHECK: st1.2d { {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}}, {{v[0-9]+}} }, [x0] 867*9880d681SAndroid Build Coastguard Worker call void @llvm.aarch64.neon.st1x4.v2f64.p0f64(<2 x double> %A, <2 x double> %B, <2 x double> %C, <2 x double> %D, double* %addr) 868*9880d681SAndroid Build Coastguard Worker ret void 869*9880d681SAndroid Build Coastguard Worker} 870