1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vqshls8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 4*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshls8: 5*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s8 6*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 7*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i8>, <8 x i8>* %B 8*9880d681SAndroid Build Coastguard Worker %tmp3 = call <8 x i8> @llvm.arm.neon.vqshifts.v8i8(<8 x i8> %tmp1, <8 x i8> %tmp2) 9*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp3 10*9880d681SAndroid Build Coastguard Worker} 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vqshls16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 13*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshls16: 14*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s16 15*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 16*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i16>, <4 x i16>* %B 17*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i16> @llvm.arm.neon.vqshifts.v4i16(<4 x i16> %tmp1, <4 x i16> %tmp2) 18*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp3 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vqshls32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 22*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshls32: 23*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s32 24*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 25*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i32>, <2 x i32>* %B 26*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.arm.neon.vqshifts.v2i32(<2 x i32> %tmp1, <2 x i32> %tmp2) 27*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 28*9880d681SAndroid Build Coastguard Worker} 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @vqshls64(<1 x i64>* %A, <1 x i64>* %B) nounwind { 31*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshls64: 32*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s64 33*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 34*9880d681SAndroid Build Coastguard Worker %tmp2 = load <1 x i64>, <1 x i64>* %B 35*9880d681SAndroid Build Coastguard Worker %tmp3 = call <1 x i64> @llvm.arm.neon.vqshifts.v1i64(<1 x i64> %tmp1, <1 x i64> %tmp2) 36*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp3 37*9880d681SAndroid Build Coastguard Worker} 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vqshlu8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 40*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlu8: 41*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u8 42*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 43*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i8>, <8 x i8>* %B 44*9880d681SAndroid Build Coastguard Worker %tmp3 = call <8 x i8> @llvm.arm.neon.vqshiftu.v8i8(<8 x i8> %tmp1, <8 x i8> %tmp2) 45*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp3 46*9880d681SAndroid Build Coastguard Worker} 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vqshlu16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 49*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlu16: 50*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u16 51*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 52*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i16>, <4 x i16>* %B 53*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i16> @llvm.arm.neon.vqshiftu.v4i16(<4 x i16> %tmp1, <4 x i16> %tmp2) 54*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp3 55*9880d681SAndroid Build Coastguard Worker} 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vqshlu32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 58*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlu32: 59*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u32 60*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 61*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i32>, <2 x i32>* %B 62*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.arm.neon.vqshiftu.v2i32(<2 x i32> %tmp1, <2 x i32> %tmp2) 63*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 64*9880d681SAndroid Build Coastguard Worker} 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @vqshlu64(<1 x i64>* %A, <1 x i64>* %B) nounwind { 67*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlu64: 68*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u64 69*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 70*9880d681SAndroid Build Coastguard Worker %tmp2 = load <1 x i64>, <1 x i64>* %B 71*9880d681SAndroid Build Coastguard Worker %tmp3 = call <1 x i64> @llvm.arm.neon.vqshiftu.v1i64(<1 x i64> %tmp1, <1 x i64> %tmp2) 72*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp3 73*9880d681SAndroid Build Coastguard Worker} 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vqshlQs8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 76*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQs8: 77*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s8 78*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 79*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 80*9880d681SAndroid Build Coastguard Worker %tmp3 = call <16 x i8> @llvm.arm.neon.vqshifts.v16i8(<16 x i8> %tmp1, <16 x i8> %tmp2) 81*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp3 82*9880d681SAndroid Build Coastguard Worker} 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vqshlQs16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 85*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQs16: 86*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s16 87*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 88*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 89*9880d681SAndroid Build Coastguard Worker %tmp3 = call <8 x i16> @llvm.arm.neon.vqshifts.v8i16(<8 x i16> %tmp1, <8 x i16> %tmp2) 90*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp3 91*9880d681SAndroid Build Coastguard Worker} 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vqshlQs32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 94*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQs32: 95*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s32 96*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 97*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 98*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.arm.neon.vqshifts.v4i32(<4 x i32> %tmp1, <4 x i32> %tmp2) 99*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 100*9880d681SAndroid Build Coastguard Worker} 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @vqshlQs64(<2 x i64>* %A, <2 x i64>* %B) nounwind { 103*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQs64: 104*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s64 105*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 106*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i64>, <2 x i64>* %B 107*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.arm.neon.vqshifts.v2i64(<2 x i64> %tmp1, <2 x i64> %tmp2) 108*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 109*9880d681SAndroid Build Coastguard Worker} 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vqshlQu8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 112*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQu8: 113*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u8 114*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 115*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 116*9880d681SAndroid Build Coastguard Worker %tmp3 = call <16 x i8> @llvm.arm.neon.vqshiftu.v16i8(<16 x i8> %tmp1, <16 x i8> %tmp2) 117*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp3 118*9880d681SAndroid Build Coastguard Worker} 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vqshlQu16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 121*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQu16: 122*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u16 123*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 124*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 125*9880d681SAndroid Build Coastguard Worker %tmp3 = call <8 x i16> @llvm.arm.neon.vqshiftu.v8i16(<8 x i16> %tmp1, <8 x i16> %tmp2) 126*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp3 127*9880d681SAndroid Build Coastguard Worker} 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vqshlQu32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 130*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQu32: 131*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u32 132*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 133*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 134*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.arm.neon.vqshiftu.v4i32(<4 x i32> %tmp1, <4 x i32> %tmp2) 135*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 136*9880d681SAndroid Build Coastguard Worker} 137*9880d681SAndroid Build Coastguard Worker 138*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @vqshlQu64(<2 x i64>* %A, <2 x i64>* %B) nounwind { 139*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQu64: 140*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u64 141*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 142*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i64>, <2 x i64>* %B 143*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.arm.neon.vqshiftu.v2i64(<2 x i64> %tmp1, <2 x i64> %tmp2) 144*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 145*9880d681SAndroid Build Coastguard Worker} 146*9880d681SAndroid Build Coastguard Worker 147*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vqshls_n8(<8 x i8>* %A) nounwind { 148*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshls_n8: 149*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s8{{.*#7}} 150*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 151*9880d681SAndroid Build Coastguard Worker %tmp2 = call <8 x i8> @llvm.arm.neon.vqshifts.v8i8(<8 x i8> %tmp1, <8 x i8> < i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7 >) 152*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp2 153*9880d681SAndroid Build Coastguard Worker} 154*9880d681SAndroid Build Coastguard Worker 155*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vqshls_n16(<4 x i16>* %A) nounwind { 156*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshls_n16: 157*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s16{{.*#15}} 158*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 159*9880d681SAndroid Build Coastguard Worker %tmp2 = call <4 x i16> @llvm.arm.neon.vqshifts.v4i16(<4 x i16> %tmp1, <4 x i16> < i16 15, i16 15, i16 15, i16 15 >) 160*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp2 161*9880d681SAndroid Build Coastguard Worker} 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vqshls_n32(<2 x i32>* %A) nounwind { 164*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshls_n32: 165*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s32{{.*#31}} 166*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 167*9880d681SAndroid Build Coastguard Worker %tmp2 = call <2 x i32> @llvm.arm.neon.vqshifts.v2i32(<2 x i32> %tmp1, <2 x i32> < i32 31, i32 31 >) 168*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp2 169*9880d681SAndroid Build Coastguard Worker} 170*9880d681SAndroid Build Coastguard Worker 171*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @vqshls_n64(<1 x i64>* %A) nounwind { 172*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshls_n64: 173*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s64{{.*#63}} 174*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 175*9880d681SAndroid Build Coastguard Worker %tmp2 = call <1 x i64> @llvm.arm.neon.vqshifts.v1i64(<1 x i64> %tmp1, <1 x i64> < i64 63 >) 176*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp2 177*9880d681SAndroid Build Coastguard Worker} 178*9880d681SAndroid Build Coastguard Worker 179*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vqshlu_n8(<8 x i8>* %A) nounwind { 180*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlu_n8: 181*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u8{{.*#7}} 182*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 183*9880d681SAndroid Build Coastguard Worker %tmp2 = call <8 x i8> @llvm.arm.neon.vqshiftu.v8i8(<8 x i8> %tmp1, <8 x i8> < i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7 >) 184*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp2 185*9880d681SAndroid Build Coastguard Worker} 186*9880d681SAndroid Build Coastguard Worker 187*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vqshlu_n16(<4 x i16>* %A) nounwind { 188*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlu_n16: 189*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u16{{.*#15}} 190*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 191*9880d681SAndroid Build Coastguard Worker %tmp2 = call <4 x i16> @llvm.arm.neon.vqshiftu.v4i16(<4 x i16> %tmp1, <4 x i16> < i16 15, i16 15, i16 15, i16 15 >) 192*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp2 193*9880d681SAndroid Build Coastguard Worker} 194*9880d681SAndroid Build Coastguard Worker 195*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vqshlu_n32(<2 x i32>* %A) nounwind { 196*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlu_n32: 197*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u32{{.*#31}} 198*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 199*9880d681SAndroid Build Coastguard Worker %tmp2 = call <2 x i32> @llvm.arm.neon.vqshiftu.v2i32(<2 x i32> %tmp1, <2 x i32> < i32 31, i32 31 >) 200*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp2 201*9880d681SAndroid Build Coastguard Worker} 202*9880d681SAndroid Build Coastguard Worker 203*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @vqshlu_n64(<1 x i64>* %A) nounwind { 204*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlu_n64: 205*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u64{{.*#63}} 206*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 207*9880d681SAndroid Build Coastguard Worker %tmp2 = call <1 x i64> @llvm.arm.neon.vqshiftu.v1i64(<1 x i64> %tmp1, <1 x i64> < i64 63 >) 208*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp2 209*9880d681SAndroid Build Coastguard Worker} 210*9880d681SAndroid Build Coastguard Worker 211*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vqshlsu_n8(<8 x i8>* %A) nounwind { 212*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlsu_n8: 213*9880d681SAndroid Build Coastguard Worker;CHECK: vqshlu.s8 214*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 215*9880d681SAndroid Build Coastguard Worker %tmp2 = call <8 x i8> @llvm.arm.neon.vqshiftsu.v8i8(<8 x i8> %tmp1, <8 x i8> < i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7 >) 216*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp2 217*9880d681SAndroid Build Coastguard Worker} 218*9880d681SAndroid Build Coastguard Worker 219*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vqshlsu_n16(<4 x i16>* %A) nounwind { 220*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlsu_n16: 221*9880d681SAndroid Build Coastguard Worker;CHECK: vqshlu.s16 222*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 223*9880d681SAndroid Build Coastguard Worker %tmp2 = call <4 x i16> @llvm.arm.neon.vqshiftsu.v4i16(<4 x i16> %tmp1, <4 x i16> < i16 15, i16 15, i16 15, i16 15 >) 224*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp2 225*9880d681SAndroid Build Coastguard Worker} 226*9880d681SAndroid Build Coastguard Worker 227*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vqshlsu_n32(<2 x i32>* %A) nounwind { 228*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlsu_n32: 229*9880d681SAndroid Build Coastguard Worker;CHECK: vqshlu.s32 230*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 231*9880d681SAndroid Build Coastguard Worker %tmp2 = call <2 x i32> @llvm.arm.neon.vqshiftsu.v2i32(<2 x i32> %tmp1, <2 x i32> < i32 31, i32 31 >) 232*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp2 233*9880d681SAndroid Build Coastguard Worker} 234*9880d681SAndroid Build Coastguard Worker 235*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @vqshlsu_n64(<1 x i64>* %A) nounwind { 236*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlsu_n64: 237*9880d681SAndroid Build Coastguard Worker;CHECK: vqshlu.s64 238*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 239*9880d681SAndroid Build Coastguard Worker %tmp2 = call <1 x i64> @llvm.arm.neon.vqshiftsu.v1i64(<1 x i64> %tmp1, <1 x i64> < i64 63 >) 240*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp2 241*9880d681SAndroid Build Coastguard Worker} 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vqshlQs_n8(<16 x i8>* %A) nounwind { 244*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQs_n8: 245*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s8{{.*#7}} 246*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 247*9880d681SAndroid Build Coastguard Worker %tmp2 = call <16 x i8> @llvm.arm.neon.vqshifts.v16i8(<16 x i8> %tmp1, <16 x i8> < i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7 >) 248*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp2 249*9880d681SAndroid Build Coastguard Worker} 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vqshlQs_n16(<8 x i16>* %A) nounwind { 252*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQs_n16: 253*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s16{{.*#15}} 254*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 255*9880d681SAndroid Build Coastguard Worker %tmp2 = call <8 x i16> @llvm.arm.neon.vqshifts.v8i16(<8 x i16> %tmp1, <8 x i16> < i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15 >) 256*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp2 257*9880d681SAndroid Build Coastguard Worker} 258*9880d681SAndroid Build Coastguard Worker 259*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vqshlQs_n32(<4 x i32>* %A) nounwind { 260*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQs_n32: 261*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s32{{.*#31}} 262*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 263*9880d681SAndroid Build Coastguard Worker %tmp2 = call <4 x i32> @llvm.arm.neon.vqshifts.v4i32(<4 x i32> %tmp1, <4 x i32> < i32 31, i32 31, i32 31, i32 31 >) 264*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp2 265*9880d681SAndroid Build Coastguard Worker} 266*9880d681SAndroid Build Coastguard Worker 267*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @vqshlQs_n64(<2 x i64>* %A) nounwind { 268*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQs_n64: 269*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.s64{{.*#63}} 270*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 271*9880d681SAndroid Build Coastguard Worker %tmp2 = call <2 x i64> @llvm.arm.neon.vqshifts.v2i64(<2 x i64> %tmp1, <2 x i64> < i64 63, i64 63 >) 272*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp2 273*9880d681SAndroid Build Coastguard Worker} 274*9880d681SAndroid Build Coastguard Worker 275*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vqshlQu_n8(<16 x i8>* %A) nounwind { 276*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQu_n8: 277*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u8{{.*#7}} 278*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 279*9880d681SAndroid Build Coastguard Worker %tmp2 = call <16 x i8> @llvm.arm.neon.vqshiftu.v16i8(<16 x i8> %tmp1, <16 x i8> < i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7 >) 280*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp2 281*9880d681SAndroid Build Coastguard Worker} 282*9880d681SAndroid Build Coastguard Worker 283*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vqshlQu_n16(<8 x i16>* %A) nounwind { 284*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQu_n16: 285*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u16{{.*#15}} 286*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 287*9880d681SAndroid Build Coastguard Worker %tmp2 = call <8 x i16> @llvm.arm.neon.vqshiftu.v8i16(<8 x i16> %tmp1, <8 x i16> < i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15 >) 288*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp2 289*9880d681SAndroid Build Coastguard Worker} 290*9880d681SAndroid Build Coastguard Worker 291*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vqshlQu_n32(<4 x i32>* %A) nounwind { 292*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQu_n32: 293*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u32{{.*#31}} 294*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 295*9880d681SAndroid Build Coastguard Worker %tmp2 = call <4 x i32> @llvm.arm.neon.vqshiftu.v4i32(<4 x i32> %tmp1, <4 x i32> < i32 31, i32 31, i32 31, i32 31 >) 296*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp2 297*9880d681SAndroid Build Coastguard Worker} 298*9880d681SAndroid Build Coastguard Worker 299*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @vqshlQu_n64(<2 x i64>* %A) nounwind { 300*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQu_n64: 301*9880d681SAndroid Build Coastguard Worker;CHECK: vqshl.u64{{.*#63}} 302*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 303*9880d681SAndroid Build Coastguard Worker %tmp2 = call <2 x i64> @llvm.arm.neon.vqshiftu.v2i64(<2 x i64> %tmp1, <2 x i64> < i64 63, i64 63 >) 304*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp2 305*9880d681SAndroid Build Coastguard Worker} 306*9880d681SAndroid Build Coastguard Worker 307*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vqshlQsu_n8(<16 x i8>* %A) nounwind { 308*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQsu_n8: 309*9880d681SAndroid Build Coastguard Worker;CHECK: vqshlu.s8 310*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 311*9880d681SAndroid Build Coastguard Worker %tmp2 = call <16 x i8> @llvm.arm.neon.vqshiftsu.v16i8(<16 x i8> %tmp1, <16 x i8> < i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7 >) 312*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp2 313*9880d681SAndroid Build Coastguard Worker} 314*9880d681SAndroid Build Coastguard Worker 315*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vqshlQsu_n16(<8 x i16>* %A) nounwind { 316*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQsu_n16: 317*9880d681SAndroid Build Coastguard Worker;CHECK: vqshlu.s16 318*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 319*9880d681SAndroid Build Coastguard Worker %tmp2 = call <8 x i16> @llvm.arm.neon.vqshiftsu.v8i16(<8 x i16> %tmp1, <8 x i16> < i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15 >) 320*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp2 321*9880d681SAndroid Build Coastguard Worker} 322*9880d681SAndroid Build Coastguard Worker 323*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vqshlQsu_n32(<4 x i32>* %A) nounwind { 324*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQsu_n32: 325*9880d681SAndroid Build Coastguard Worker;CHECK: vqshlu.s32 326*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 327*9880d681SAndroid Build Coastguard Worker %tmp2 = call <4 x i32> @llvm.arm.neon.vqshiftsu.v4i32(<4 x i32> %tmp1, <4 x i32> < i32 31, i32 31, i32 31, i32 31 >) 328*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp2 329*9880d681SAndroid Build Coastguard Worker} 330*9880d681SAndroid Build Coastguard Worker 331*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @vqshlQsu_n64(<2 x i64>* %A) nounwind { 332*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqshlQsu_n64: 333*9880d681SAndroid Build Coastguard Worker;CHECK: vqshlu.s64 334*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 335*9880d681SAndroid Build Coastguard Worker %tmp2 = call <2 x i64> @llvm.arm.neon.vqshiftsu.v2i64(<2 x i64> %tmp1, <2 x i64> < i64 63, i64 63 >) 336*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp2 337*9880d681SAndroid Build Coastguard Worker} 338*9880d681SAndroid Build Coastguard Worker 339*9880d681SAndroid Build Coastguard Workerdeclare <8 x i8> @llvm.arm.neon.vqshifts.v8i8(<8 x i8>, <8 x i8>) nounwind readnone 340*9880d681SAndroid Build Coastguard Workerdeclare <4 x i16> @llvm.arm.neon.vqshifts.v4i16(<4 x i16>, <4 x i16>) nounwind readnone 341*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.arm.neon.vqshifts.v2i32(<2 x i32>, <2 x i32>) nounwind readnone 342*9880d681SAndroid Build Coastguard Workerdeclare <1 x i64> @llvm.arm.neon.vqshifts.v1i64(<1 x i64>, <1 x i64>) nounwind readnone 343*9880d681SAndroid Build Coastguard Worker 344*9880d681SAndroid Build Coastguard Workerdeclare <8 x i8> @llvm.arm.neon.vqshiftu.v8i8(<8 x i8>, <8 x i8>) nounwind readnone 345*9880d681SAndroid Build Coastguard Workerdeclare <4 x i16> @llvm.arm.neon.vqshiftu.v4i16(<4 x i16>, <4 x i16>) nounwind readnone 346*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.arm.neon.vqshiftu.v2i32(<2 x i32>, <2 x i32>) nounwind readnone 347*9880d681SAndroid Build Coastguard Workerdeclare <1 x i64> @llvm.arm.neon.vqshiftu.v1i64(<1 x i64>, <1 x i64>) nounwind readnone 348*9880d681SAndroid Build Coastguard Worker 349*9880d681SAndroid Build Coastguard Workerdeclare <8 x i8> @llvm.arm.neon.vqshiftsu.v8i8(<8 x i8>, <8 x i8>) nounwind readnone 350*9880d681SAndroid Build Coastguard Workerdeclare <4 x i16> @llvm.arm.neon.vqshiftsu.v4i16(<4 x i16>, <4 x i16>) nounwind readnone 351*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.arm.neon.vqshiftsu.v2i32(<2 x i32>, <2 x i32>) nounwind readnone 352*9880d681SAndroid Build Coastguard Workerdeclare <1 x i64> @llvm.arm.neon.vqshiftsu.v1i64(<1 x i64>, <1 x i64>) nounwind readnone 353*9880d681SAndroid Build Coastguard Worker 354*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.arm.neon.vqshifts.v16i8(<16 x i8>, <16 x i8>) nounwind readnone 355*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.arm.neon.vqshifts.v8i16(<8 x i16>, <8 x i16>) nounwind readnone 356*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.arm.neon.vqshifts.v4i32(<4 x i32>, <4 x i32>) nounwind readnone 357*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.arm.neon.vqshifts.v2i64(<2 x i64>, <2 x i64>) nounwind readnone 358*9880d681SAndroid Build Coastguard Worker 359*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.arm.neon.vqshiftu.v16i8(<16 x i8>, <16 x i8>) nounwind readnone 360*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.arm.neon.vqshiftu.v8i16(<8 x i16>, <8 x i16>) nounwind readnone 361*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.arm.neon.vqshiftu.v4i32(<4 x i32>, <4 x i32>) nounwind readnone 362*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.arm.neon.vqshiftu.v2i64(<2 x i64>, <2 x i64>) nounwind readnone 363*9880d681SAndroid Build Coastguard Worker 364*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.arm.neon.vqshiftsu.v16i8(<16 x i8>, <16 x i8>) nounwind readnone 365*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.arm.neon.vqshiftsu.v8i16(<8 x i16>, <8 x i16>) nounwind readnone 366*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.arm.neon.vqshiftsu.v4i32(<4 x i32>, <4 x i32>) nounwind readnone 367*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.arm.neon.vqshiftsu.v2i64(<2 x i64>, <2 x i64>) nounwind readnone 368*9880d681SAndroid Build Coastguard Worker 369*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vqrshls8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 370*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshls8: 371*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.s8 372*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 373*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i8>, <8 x i8>* %B 374*9880d681SAndroid Build Coastguard Worker %tmp3 = call <8 x i8> @llvm.arm.neon.vqrshifts.v8i8(<8 x i8> %tmp1, <8 x i8> %tmp2) 375*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp3 376*9880d681SAndroid Build Coastguard Worker} 377*9880d681SAndroid Build Coastguard Worker 378*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vqrshls16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 379*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshls16: 380*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.s16 381*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 382*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i16>, <4 x i16>* %B 383*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i16> @llvm.arm.neon.vqrshifts.v4i16(<4 x i16> %tmp1, <4 x i16> %tmp2) 384*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp3 385*9880d681SAndroid Build Coastguard Worker} 386*9880d681SAndroid Build Coastguard Worker 387*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vqrshls32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 388*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshls32: 389*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.s32 390*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 391*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i32>, <2 x i32>* %B 392*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.arm.neon.vqrshifts.v2i32(<2 x i32> %tmp1, <2 x i32> %tmp2) 393*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 394*9880d681SAndroid Build Coastguard Worker} 395*9880d681SAndroid Build Coastguard Worker 396*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @vqrshls64(<1 x i64>* %A, <1 x i64>* %B) nounwind { 397*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshls64: 398*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.s64 399*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 400*9880d681SAndroid Build Coastguard Worker %tmp2 = load <1 x i64>, <1 x i64>* %B 401*9880d681SAndroid Build Coastguard Worker %tmp3 = call <1 x i64> @llvm.arm.neon.vqrshifts.v1i64(<1 x i64> %tmp1, <1 x i64> %tmp2) 402*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp3 403*9880d681SAndroid Build Coastguard Worker} 404*9880d681SAndroid Build Coastguard Worker 405*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vqrshlu8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 406*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlu8: 407*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.u8 408*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 409*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i8>, <8 x i8>* %B 410*9880d681SAndroid Build Coastguard Worker %tmp3 = call <8 x i8> @llvm.arm.neon.vqrshiftu.v8i8(<8 x i8> %tmp1, <8 x i8> %tmp2) 411*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp3 412*9880d681SAndroid Build Coastguard Worker} 413*9880d681SAndroid Build Coastguard Worker 414*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vqrshlu16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 415*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlu16: 416*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.u16 417*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 418*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i16>, <4 x i16>* %B 419*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i16> @llvm.arm.neon.vqrshiftu.v4i16(<4 x i16> %tmp1, <4 x i16> %tmp2) 420*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp3 421*9880d681SAndroid Build Coastguard Worker} 422*9880d681SAndroid Build Coastguard Worker 423*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vqrshlu32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 424*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlu32: 425*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.u32 426*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 427*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i32>, <2 x i32>* %B 428*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.arm.neon.vqrshiftu.v2i32(<2 x i32> %tmp1, <2 x i32> %tmp2) 429*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 430*9880d681SAndroid Build Coastguard Worker} 431*9880d681SAndroid Build Coastguard Worker 432*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @vqrshlu64(<1 x i64>* %A, <1 x i64>* %B) nounwind { 433*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlu64: 434*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.u64 435*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 436*9880d681SAndroid Build Coastguard Worker %tmp2 = load <1 x i64>, <1 x i64>* %B 437*9880d681SAndroid Build Coastguard Worker %tmp3 = call <1 x i64> @llvm.arm.neon.vqrshiftu.v1i64(<1 x i64> %tmp1, <1 x i64> %tmp2) 438*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp3 439*9880d681SAndroid Build Coastguard Worker} 440*9880d681SAndroid Build Coastguard Worker 441*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vqrshlQs8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 442*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlQs8: 443*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.s8 444*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 445*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 446*9880d681SAndroid Build Coastguard Worker %tmp3 = call <16 x i8> @llvm.arm.neon.vqrshifts.v16i8(<16 x i8> %tmp1, <16 x i8> %tmp2) 447*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp3 448*9880d681SAndroid Build Coastguard Worker} 449*9880d681SAndroid Build Coastguard Worker 450*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vqrshlQs16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 451*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlQs16: 452*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.s16 453*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 454*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 455*9880d681SAndroid Build Coastguard Worker %tmp3 = call <8 x i16> @llvm.arm.neon.vqrshifts.v8i16(<8 x i16> %tmp1, <8 x i16> %tmp2) 456*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp3 457*9880d681SAndroid Build Coastguard Worker} 458*9880d681SAndroid Build Coastguard Worker 459*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vqrshlQs32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 460*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlQs32: 461*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.s32 462*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 463*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 464*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.arm.neon.vqrshifts.v4i32(<4 x i32> %tmp1, <4 x i32> %tmp2) 465*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 466*9880d681SAndroid Build Coastguard Worker} 467*9880d681SAndroid Build Coastguard Worker 468*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @vqrshlQs64(<2 x i64>* %A, <2 x i64>* %B) nounwind { 469*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlQs64: 470*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.s64 471*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 472*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i64>, <2 x i64>* %B 473*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.arm.neon.vqrshifts.v2i64(<2 x i64> %tmp1, <2 x i64> %tmp2) 474*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 475*9880d681SAndroid Build Coastguard Worker} 476*9880d681SAndroid Build Coastguard Worker 477*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vqrshlQu8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 478*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlQu8: 479*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.u8 480*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 481*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 482*9880d681SAndroid Build Coastguard Worker %tmp3 = call <16 x i8> @llvm.arm.neon.vqrshiftu.v16i8(<16 x i8> %tmp1, <16 x i8> %tmp2) 483*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp3 484*9880d681SAndroid Build Coastguard Worker} 485*9880d681SAndroid Build Coastguard Worker 486*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vqrshlQu16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 487*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlQu16: 488*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.u16 489*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 490*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 491*9880d681SAndroid Build Coastguard Worker %tmp3 = call <8 x i16> @llvm.arm.neon.vqrshiftu.v8i16(<8 x i16> %tmp1, <8 x i16> %tmp2) 492*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp3 493*9880d681SAndroid Build Coastguard Worker} 494*9880d681SAndroid Build Coastguard Worker 495*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vqrshlQu32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 496*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlQu32: 497*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.u32 498*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 499*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 500*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.arm.neon.vqrshiftu.v4i32(<4 x i32> %tmp1, <4 x i32> %tmp2) 501*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 502*9880d681SAndroid Build Coastguard Worker} 503*9880d681SAndroid Build Coastguard Worker 504*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @vqrshlQu64(<2 x i64>* %A, <2 x i64>* %B) nounwind { 505*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vqrshlQu64: 506*9880d681SAndroid Build Coastguard Worker;CHECK: vqrshl.u64 507*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 508*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i64>, <2 x i64>* %B 509*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.arm.neon.vqrshiftu.v2i64(<2 x i64> %tmp1, <2 x i64> %tmp2) 510*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 511*9880d681SAndroid Build Coastguard Worker} 512*9880d681SAndroid Build Coastguard Worker 513*9880d681SAndroid Build Coastguard Workerdeclare <8 x i8> @llvm.arm.neon.vqrshifts.v8i8(<8 x i8>, <8 x i8>) nounwind readnone 514*9880d681SAndroid Build Coastguard Workerdeclare <4 x i16> @llvm.arm.neon.vqrshifts.v4i16(<4 x i16>, <4 x i16>) nounwind readnone 515*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.arm.neon.vqrshifts.v2i32(<2 x i32>, <2 x i32>) nounwind readnone 516*9880d681SAndroid Build Coastguard Workerdeclare <1 x i64> @llvm.arm.neon.vqrshifts.v1i64(<1 x i64>, <1 x i64>) nounwind readnone 517*9880d681SAndroid Build Coastguard Worker 518*9880d681SAndroid Build Coastguard Workerdeclare <8 x i8> @llvm.arm.neon.vqrshiftu.v8i8(<8 x i8>, <8 x i8>) nounwind readnone 519*9880d681SAndroid Build Coastguard Workerdeclare <4 x i16> @llvm.arm.neon.vqrshiftu.v4i16(<4 x i16>, <4 x i16>) nounwind readnone 520*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.arm.neon.vqrshiftu.v2i32(<2 x i32>, <2 x i32>) nounwind readnone 521*9880d681SAndroid Build Coastguard Workerdeclare <1 x i64> @llvm.arm.neon.vqrshiftu.v1i64(<1 x i64>, <1 x i64>) nounwind readnone 522*9880d681SAndroid Build Coastguard Worker 523*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.arm.neon.vqrshifts.v16i8(<16 x i8>, <16 x i8>) nounwind readnone 524*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.arm.neon.vqrshifts.v8i16(<8 x i16>, <8 x i16>) nounwind readnone 525*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.arm.neon.vqrshifts.v4i32(<4 x i32>, <4 x i32>) nounwind readnone 526*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.arm.neon.vqrshifts.v2i64(<2 x i64>, <2 x i64>) nounwind readnone 527*9880d681SAndroid Build Coastguard Worker 528*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.arm.neon.vqrshiftu.v16i8(<16 x i8>, <16 x i8>) nounwind readnone 529*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.arm.neon.vqrshiftu.v8i16(<8 x i16>, <8 x i16>) nounwind readnone 530*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.arm.neon.vqrshiftu.v4i32(<4 x i32>, <4 x i32>) nounwind readnone 531*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.arm.neon.vqrshiftu.v2i64(<2 x i64>, <2 x i64>) nounwind readnone 532