1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=arm-eabi -mattr=+neon -mcpu=cortex-a8 %s -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @v_andi8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 4*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_andi8: 5*9880d681SAndroid Build Coastguard Worker;CHECK: vand 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 = and <8 x i8> %tmp1, %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> @v_andi16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 13*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_andi16: 14*9880d681SAndroid Build Coastguard Worker;CHECK: vand 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 = and <4 x i16> %tmp1, %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> @v_andi32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 22*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_andi32: 23*9880d681SAndroid Build Coastguard Worker;CHECK: vand 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 = and <2 x i32> %tmp1, %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> @v_andi64(<1 x i64>* %A, <1 x i64>* %B) nounwind { 31*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_andi64: 32*9880d681SAndroid Build Coastguard Worker;CHECK: vand 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 = and <1 x i64> %tmp1, %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 <16 x i8> @v_andQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 40*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_andQi8: 41*9880d681SAndroid Build Coastguard Worker;CHECK: vand 42*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 43*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 44*9880d681SAndroid Build Coastguard Worker %tmp3 = and <16 x i8> %tmp1, %tmp2 45*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp3 46*9880d681SAndroid Build Coastguard Worker} 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @v_andQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 49*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_andQi16: 50*9880d681SAndroid Build Coastguard Worker;CHECK: vand 51*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 52*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 53*9880d681SAndroid Build Coastguard Worker %tmp3 = and <8 x i16> %tmp1, %tmp2 54*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp3 55*9880d681SAndroid Build Coastguard Worker} 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @v_andQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 58*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_andQi32: 59*9880d681SAndroid Build Coastguard Worker;CHECK: vand 60*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 61*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 62*9880d681SAndroid Build Coastguard Worker %tmp3 = and <4 x i32> %tmp1, %tmp2 63*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 64*9880d681SAndroid Build Coastguard Worker} 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @v_andQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind { 67*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_andQi64: 68*9880d681SAndroid Build Coastguard Worker;CHECK: vand 69*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 70*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i64>, <2 x i64>* %B 71*9880d681SAndroid Build Coastguard Worker %tmp3 = and <2 x i64> %tmp1, %tmp2 72*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 73*9880d681SAndroid Build Coastguard Worker} 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @v_bici8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 76*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_bici8: 77*9880d681SAndroid Build Coastguard Worker;CHECK: vbic 78*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 79*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i8>, <8 x i8>* %B 80*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <8 x i8> %tmp2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 > 81*9880d681SAndroid Build Coastguard Worker %tmp4 = and <8 x i8> %tmp1, %tmp3 82*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp4 83*9880d681SAndroid Build Coastguard Worker} 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @v_bici16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 86*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_bici16: 87*9880d681SAndroid Build Coastguard Worker;CHECK: vbic 88*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 89*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i16>, <4 x i16>* %B 90*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <4 x i16> %tmp2, < i16 -1, i16 -1, i16 -1, i16 -1 > 91*9880d681SAndroid Build Coastguard Worker %tmp4 = and <4 x i16> %tmp1, %tmp3 92*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp4 93*9880d681SAndroid Build Coastguard Worker} 94*9880d681SAndroid Build Coastguard Worker 95*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @v_bici32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 96*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_bici32: 97*9880d681SAndroid Build Coastguard Worker;CHECK: vbic 98*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 99*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i32>, <2 x i32>* %B 100*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <2 x i32> %tmp2, < i32 -1, i32 -1 > 101*9880d681SAndroid Build Coastguard Worker %tmp4 = and <2 x i32> %tmp1, %tmp3 102*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp4 103*9880d681SAndroid Build Coastguard Worker} 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @v_bici64(<1 x i64>* %A, <1 x i64>* %B) nounwind { 106*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_bici64: 107*9880d681SAndroid Build Coastguard Worker;CHECK: vbic 108*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 109*9880d681SAndroid Build Coastguard Worker %tmp2 = load <1 x i64>, <1 x i64>* %B 110*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <1 x i64> %tmp2, < i64 -1 > 111*9880d681SAndroid Build Coastguard Worker %tmp4 = and <1 x i64> %tmp1, %tmp3 112*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp4 113*9880d681SAndroid Build Coastguard Worker} 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @v_bicQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 116*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_bicQi8: 117*9880d681SAndroid Build Coastguard Worker;CHECK: vbic 118*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 119*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 120*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <16 x i8> %tmp2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 > 121*9880d681SAndroid Build Coastguard Worker %tmp4 = and <16 x i8> %tmp1, %tmp3 122*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp4 123*9880d681SAndroid Build Coastguard Worker} 124*9880d681SAndroid Build Coastguard Worker 125*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @v_bicQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 126*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_bicQi16: 127*9880d681SAndroid Build Coastguard Worker;CHECK: vbic 128*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 129*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 130*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <8 x i16> %tmp2, < i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1 > 131*9880d681SAndroid Build Coastguard Worker %tmp4 = and <8 x i16> %tmp1, %tmp3 132*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp4 133*9880d681SAndroid Build Coastguard Worker} 134*9880d681SAndroid Build Coastguard Worker 135*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @v_bicQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 136*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_bicQi32: 137*9880d681SAndroid Build Coastguard Worker;CHECK: vbic 138*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 139*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 140*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <4 x i32> %tmp2, < i32 -1, i32 -1, i32 -1, i32 -1 > 141*9880d681SAndroid Build Coastguard Worker %tmp4 = and <4 x i32> %tmp1, %tmp3 142*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp4 143*9880d681SAndroid Build Coastguard Worker} 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @v_bicQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind { 146*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_bicQi64: 147*9880d681SAndroid Build Coastguard Worker;CHECK: vbic 148*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 149*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i64>, <2 x i64>* %B 150*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <2 x i64> %tmp2, < i64 -1, i64 -1 > 151*9880d681SAndroid Build Coastguard Worker %tmp4 = and <2 x i64> %tmp1, %tmp3 152*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp4 153*9880d681SAndroid Build Coastguard Worker} 154*9880d681SAndroid Build Coastguard Worker 155*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @v_eori8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 156*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_eori8: 157*9880d681SAndroid Build Coastguard Worker;CHECK: veor 158*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 159*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i8>, <8 x i8>* %B 160*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <8 x i8> %tmp1, %tmp2 161*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp3 162*9880d681SAndroid Build Coastguard Worker} 163*9880d681SAndroid Build Coastguard Worker 164*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @v_eori16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 165*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_eori16: 166*9880d681SAndroid Build Coastguard Worker;CHECK: veor 167*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 168*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i16>, <4 x i16>* %B 169*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <4 x i16> %tmp1, %tmp2 170*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp3 171*9880d681SAndroid Build Coastguard Worker} 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @v_eori32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 174*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_eori32: 175*9880d681SAndroid Build Coastguard Worker;CHECK: veor 176*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 177*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i32>, <2 x i32>* %B 178*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <2 x i32> %tmp1, %tmp2 179*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 180*9880d681SAndroid Build Coastguard Worker} 181*9880d681SAndroid Build Coastguard Worker 182*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @v_eori64(<1 x i64>* %A, <1 x i64>* %B) nounwind { 183*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_eori64: 184*9880d681SAndroid Build Coastguard Worker;CHECK: veor 185*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 186*9880d681SAndroid Build Coastguard Worker %tmp2 = load <1 x i64>, <1 x i64>* %B 187*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <1 x i64> %tmp1, %tmp2 188*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp3 189*9880d681SAndroid Build Coastguard Worker} 190*9880d681SAndroid Build Coastguard Worker 191*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @v_eorQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 192*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_eorQi8: 193*9880d681SAndroid Build Coastguard Worker;CHECK: veor 194*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 195*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 196*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <16 x i8> %tmp1, %tmp2 197*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp3 198*9880d681SAndroid Build Coastguard Worker} 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @v_eorQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 201*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_eorQi16: 202*9880d681SAndroid Build Coastguard Worker;CHECK: veor 203*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 204*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 205*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <8 x i16> %tmp1, %tmp2 206*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp3 207*9880d681SAndroid Build Coastguard Worker} 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @v_eorQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 210*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_eorQi32: 211*9880d681SAndroid Build Coastguard Worker;CHECK: veor 212*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 213*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 214*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <4 x i32> %tmp1, %tmp2 215*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 216*9880d681SAndroid Build Coastguard Worker} 217*9880d681SAndroid Build Coastguard Worker 218*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @v_eorQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind { 219*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_eorQi64: 220*9880d681SAndroid Build Coastguard Worker;CHECK: veor 221*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 222*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i64>, <2 x i64>* %B 223*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <2 x i64> %tmp1, %tmp2 224*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 225*9880d681SAndroid Build Coastguard Worker} 226*9880d681SAndroid Build Coastguard Worker 227*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @v_mvni8(<8 x i8>* %A) nounwind { 228*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_mvni8: 229*9880d681SAndroid Build Coastguard Worker;CHECK: vmvn 230*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 231*9880d681SAndroid Build Coastguard Worker %tmp2 = xor <8 x i8> %tmp1, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 > 232*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp2 233*9880d681SAndroid Build Coastguard Worker} 234*9880d681SAndroid Build Coastguard Worker 235*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @v_mvni16(<4 x i16>* %A) nounwind { 236*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_mvni16: 237*9880d681SAndroid Build Coastguard Worker;CHECK: vmvn 238*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 239*9880d681SAndroid Build Coastguard Worker %tmp2 = xor <4 x i16> %tmp1, < i16 -1, i16 -1, i16 -1, i16 -1 > 240*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp2 241*9880d681SAndroid Build Coastguard Worker} 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @v_mvni32(<2 x i32>* %A) nounwind { 244*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_mvni32: 245*9880d681SAndroid Build Coastguard Worker;CHECK: vmvn 246*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 247*9880d681SAndroid Build Coastguard Worker %tmp2 = xor <2 x i32> %tmp1, < i32 -1, i32 -1 > 248*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp2 249*9880d681SAndroid Build Coastguard Worker} 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @v_mvni64(<1 x i64>* %A) nounwind { 252*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_mvni64: 253*9880d681SAndroid Build Coastguard Worker;CHECK: vmvn 254*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 255*9880d681SAndroid Build Coastguard Worker %tmp2 = xor <1 x i64> %tmp1, < i64 -1 > 256*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp2 257*9880d681SAndroid Build Coastguard Worker} 258*9880d681SAndroid Build Coastguard Worker 259*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @v_mvnQi8(<16 x i8>* %A) nounwind { 260*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_mvnQi8: 261*9880d681SAndroid Build Coastguard Worker;CHECK: vmvn 262*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 263*9880d681SAndroid Build Coastguard Worker %tmp2 = xor <16 x i8> %tmp1, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 > 264*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp2 265*9880d681SAndroid Build Coastguard Worker} 266*9880d681SAndroid Build Coastguard Worker 267*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @v_mvnQi16(<8 x i16>* %A) nounwind { 268*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_mvnQi16: 269*9880d681SAndroid Build Coastguard Worker;CHECK: vmvn 270*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 271*9880d681SAndroid Build Coastguard Worker %tmp2 = xor <8 x i16> %tmp1, < i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1 > 272*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp2 273*9880d681SAndroid Build Coastguard Worker} 274*9880d681SAndroid Build Coastguard Worker 275*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @v_mvnQi32(<4 x i32>* %A) nounwind { 276*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_mvnQi32: 277*9880d681SAndroid Build Coastguard Worker;CHECK: vmvn 278*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 279*9880d681SAndroid Build Coastguard Worker %tmp2 = xor <4 x i32> %tmp1, < i32 -1, i32 -1, i32 -1, i32 -1 > 280*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp2 281*9880d681SAndroid Build Coastguard Worker} 282*9880d681SAndroid Build Coastguard Worker 283*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @v_mvnQi64(<2 x i64>* %A) nounwind { 284*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_mvnQi64: 285*9880d681SAndroid Build Coastguard Worker;CHECK: vmvn 286*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 287*9880d681SAndroid Build Coastguard Worker %tmp2 = xor <2 x i64> %tmp1, < i64 -1, i64 -1 > 288*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp2 289*9880d681SAndroid Build Coastguard Worker} 290*9880d681SAndroid Build Coastguard Worker 291*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @v_orri8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 292*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orri8: 293*9880d681SAndroid Build Coastguard Worker;CHECK: vorr 294*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 295*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i8>, <8 x i8>* %B 296*9880d681SAndroid Build Coastguard Worker %tmp3 = or <8 x i8> %tmp1, %tmp2 297*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp3 298*9880d681SAndroid Build Coastguard Worker} 299*9880d681SAndroid Build Coastguard Worker 300*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @v_orri16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 301*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orri16: 302*9880d681SAndroid Build Coastguard Worker;CHECK: vorr 303*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 304*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i16>, <4 x i16>* %B 305*9880d681SAndroid Build Coastguard Worker %tmp3 = or <4 x i16> %tmp1, %tmp2 306*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp3 307*9880d681SAndroid Build Coastguard Worker} 308*9880d681SAndroid Build Coastguard Worker 309*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @v_orri32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 310*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orri32: 311*9880d681SAndroid Build Coastguard Worker;CHECK: vorr 312*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 313*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i32>, <2 x i32>* %B 314*9880d681SAndroid Build Coastguard Worker %tmp3 = or <2 x i32> %tmp1, %tmp2 315*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 316*9880d681SAndroid Build Coastguard Worker} 317*9880d681SAndroid Build Coastguard Worker 318*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @v_orri64(<1 x i64>* %A, <1 x i64>* %B) nounwind { 319*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orri64: 320*9880d681SAndroid Build Coastguard Worker;CHECK: vorr 321*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 322*9880d681SAndroid Build Coastguard Worker %tmp2 = load <1 x i64>, <1 x i64>* %B 323*9880d681SAndroid Build Coastguard Worker %tmp3 = or <1 x i64> %tmp1, %tmp2 324*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp3 325*9880d681SAndroid Build Coastguard Worker} 326*9880d681SAndroid Build Coastguard Worker 327*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @v_orrQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 328*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orrQi8: 329*9880d681SAndroid Build Coastguard Worker;CHECK: vorr 330*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 331*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 332*9880d681SAndroid Build Coastguard Worker %tmp3 = or <16 x i8> %tmp1, %tmp2 333*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp3 334*9880d681SAndroid Build Coastguard Worker} 335*9880d681SAndroid Build Coastguard Worker 336*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @v_orrQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 337*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orrQi16: 338*9880d681SAndroid Build Coastguard Worker;CHECK: vorr 339*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 340*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 341*9880d681SAndroid Build Coastguard Worker %tmp3 = or <8 x i16> %tmp1, %tmp2 342*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp3 343*9880d681SAndroid Build Coastguard Worker} 344*9880d681SAndroid Build Coastguard Worker 345*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @v_orrQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 346*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orrQi32: 347*9880d681SAndroid Build Coastguard Worker;CHECK: vorr 348*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 349*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 350*9880d681SAndroid Build Coastguard Worker %tmp3 = or <4 x i32> %tmp1, %tmp2 351*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 352*9880d681SAndroid Build Coastguard Worker} 353*9880d681SAndroid Build Coastguard Worker 354*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @v_orrQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind { 355*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orrQi64: 356*9880d681SAndroid Build Coastguard Worker;CHECK: vorr 357*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 358*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i64>, <2 x i64>* %B 359*9880d681SAndroid Build Coastguard Worker %tmp3 = or <2 x i64> %tmp1, %tmp2 360*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 361*9880d681SAndroid Build Coastguard Worker} 362*9880d681SAndroid Build Coastguard Worker 363*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @v_orni8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 364*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orni8: 365*9880d681SAndroid Build Coastguard Worker;CHECK: vorn 366*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 367*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i8>, <8 x i8>* %B 368*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <8 x i8> %tmp2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 > 369*9880d681SAndroid Build Coastguard Worker %tmp4 = or <8 x i8> %tmp1, %tmp3 370*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp4 371*9880d681SAndroid Build Coastguard Worker} 372*9880d681SAndroid Build Coastguard Worker 373*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @v_orni16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 374*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orni16: 375*9880d681SAndroid Build Coastguard Worker;CHECK: vorn 376*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 377*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i16>, <4 x i16>* %B 378*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <4 x i16> %tmp2, < i16 -1, i16 -1, i16 -1, i16 -1 > 379*9880d681SAndroid Build Coastguard Worker %tmp4 = or <4 x i16> %tmp1, %tmp3 380*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp4 381*9880d681SAndroid Build Coastguard Worker} 382*9880d681SAndroid Build Coastguard Worker 383*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @v_orni32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 384*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orni32: 385*9880d681SAndroid Build Coastguard Worker;CHECK: vorn 386*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 387*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i32>, <2 x i32>* %B 388*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <2 x i32> %tmp2, < i32 -1, i32 -1 > 389*9880d681SAndroid Build Coastguard Worker %tmp4 = or <2 x i32> %tmp1, %tmp3 390*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp4 391*9880d681SAndroid Build Coastguard Worker} 392*9880d681SAndroid Build Coastguard Worker 393*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @v_orni64(<1 x i64>* %A, <1 x i64>* %B) nounwind { 394*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_orni64: 395*9880d681SAndroid Build Coastguard Worker;CHECK: vorn 396*9880d681SAndroid Build Coastguard Worker %tmp1 = load <1 x i64>, <1 x i64>* %A 397*9880d681SAndroid Build Coastguard Worker %tmp2 = load <1 x i64>, <1 x i64>* %B 398*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <1 x i64> %tmp2, < i64 -1 > 399*9880d681SAndroid Build Coastguard Worker %tmp4 = or <1 x i64> %tmp1, %tmp3 400*9880d681SAndroid Build Coastguard Worker ret <1 x i64> %tmp4 401*9880d681SAndroid Build Coastguard Worker} 402*9880d681SAndroid Build Coastguard Worker 403*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @v_ornQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 404*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_ornQi8: 405*9880d681SAndroid Build Coastguard Worker;CHECK: vorn 406*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 407*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 408*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <16 x i8> %tmp2, < i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1 > 409*9880d681SAndroid Build Coastguard Worker %tmp4 = or <16 x i8> %tmp1, %tmp3 410*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp4 411*9880d681SAndroid Build Coastguard Worker} 412*9880d681SAndroid Build Coastguard Worker 413*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @v_ornQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 414*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_ornQi16: 415*9880d681SAndroid Build Coastguard Worker;CHECK: vorn 416*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 417*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 418*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <8 x i16> %tmp2, < i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1 > 419*9880d681SAndroid Build Coastguard Worker %tmp4 = or <8 x i16> %tmp1, %tmp3 420*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp4 421*9880d681SAndroid Build Coastguard Worker} 422*9880d681SAndroid Build Coastguard Worker 423*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @v_ornQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 424*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_ornQi32: 425*9880d681SAndroid Build Coastguard Worker;CHECK: vorn 426*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 427*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 428*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <4 x i32> %tmp2, < i32 -1, i32 -1, i32 -1, i32 -1 > 429*9880d681SAndroid Build Coastguard Worker %tmp4 = or <4 x i32> %tmp1, %tmp3 430*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp4 431*9880d681SAndroid Build Coastguard Worker} 432*9880d681SAndroid Build Coastguard Worker 433*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @v_ornQi64(<2 x i64>* %A, <2 x i64>* %B) nounwind { 434*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: v_ornQi64: 435*9880d681SAndroid Build Coastguard Worker;CHECK: vorn 436*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i64>, <2 x i64>* %A 437*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i64>, <2 x i64>* %B 438*9880d681SAndroid Build Coastguard Worker %tmp3 = xor <2 x i64> %tmp2, < i64 -1, i64 -1 > 439*9880d681SAndroid Build Coastguard Worker %tmp4 = or <2 x i64> %tmp1, %tmp3 440*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp4 441*9880d681SAndroid Build Coastguard Worker} 442*9880d681SAndroid Build Coastguard Worker 443*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vtsti8(<8 x i8>* %A, <8 x i8>* %B) nounwind { 444*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vtsti8: 445*9880d681SAndroid Build Coastguard Worker;CHECK: vtst.8 446*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 447*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i8>, <8 x i8>* %B 448*9880d681SAndroid Build Coastguard Worker %tmp3 = and <8 x i8> %tmp1, %tmp2 449*9880d681SAndroid Build Coastguard Worker %tmp4 = icmp ne <8 x i8> %tmp3, zeroinitializer 450*9880d681SAndroid Build Coastguard Worker %tmp5 = sext <8 x i1> %tmp4 to <8 x i8> 451*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp5 452*9880d681SAndroid Build Coastguard Worker} 453*9880d681SAndroid Build Coastguard Worker 454*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vtsti16(<4 x i16>* %A, <4 x i16>* %B) nounwind { 455*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vtsti16: 456*9880d681SAndroid Build Coastguard Worker;CHECK: vtst.16 457*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i16>, <4 x i16>* %A 458*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i16>, <4 x i16>* %B 459*9880d681SAndroid Build Coastguard Worker %tmp3 = and <4 x i16> %tmp1, %tmp2 460*9880d681SAndroid Build Coastguard Worker %tmp4 = icmp ne <4 x i16> %tmp3, zeroinitializer 461*9880d681SAndroid Build Coastguard Worker %tmp5 = sext <4 x i1> %tmp4 to <4 x i16> 462*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %tmp5 463*9880d681SAndroid Build Coastguard Worker} 464*9880d681SAndroid Build Coastguard Worker 465*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vtsti32(<2 x i32>* %A, <2 x i32>* %B) nounwind { 466*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vtsti32: 467*9880d681SAndroid Build Coastguard Worker;CHECK: vtst.32 468*9880d681SAndroid Build Coastguard Worker %tmp1 = load <2 x i32>, <2 x i32>* %A 469*9880d681SAndroid Build Coastguard Worker %tmp2 = load <2 x i32>, <2 x i32>* %B 470*9880d681SAndroid Build Coastguard Worker %tmp3 = and <2 x i32> %tmp1, %tmp2 471*9880d681SAndroid Build Coastguard Worker %tmp4 = icmp ne <2 x i32> %tmp3, zeroinitializer 472*9880d681SAndroid Build Coastguard Worker %tmp5 = sext <2 x i1> %tmp4 to <2 x i32> 473*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp5 474*9880d681SAndroid Build Coastguard Worker} 475*9880d681SAndroid Build Coastguard Worker 476*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vtstQi8(<16 x i8>* %A, <16 x i8>* %B) nounwind { 477*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vtstQi8: 478*9880d681SAndroid Build Coastguard Worker;CHECK: vtst.8 479*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 480*9880d681SAndroid Build Coastguard Worker %tmp2 = load <16 x i8>, <16 x i8>* %B 481*9880d681SAndroid Build Coastguard Worker %tmp3 = and <16 x i8> %tmp1, %tmp2 482*9880d681SAndroid Build Coastguard Worker %tmp4 = icmp ne <16 x i8> %tmp3, zeroinitializer 483*9880d681SAndroid Build Coastguard Worker %tmp5 = sext <16 x i1> %tmp4 to <16 x i8> 484*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp5 485*9880d681SAndroid Build Coastguard Worker} 486*9880d681SAndroid Build Coastguard Worker 487*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vtstQi16(<8 x i16>* %A, <8 x i16>* %B) nounwind { 488*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vtstQi16: 489*9880d681SAndroid Build Coastguard Worker;CHECK: vtst.16 490*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i16>, <8 x i16>* %A 491*9880d681SAndroid Build Coastguard Worker %tmp2 = load <8 x i16>, <8 x i16>* %B 492*9880d681SAndroid Build Coastguard Worker %tmp3 = and <8 x i16> %tmp1, %tmp2 493*9880d681SAndroid Build Coastguard Worker %tmp4 = icmp ne <8 x i16> %tmp3, zeroinitializer 494*9880d681SAndroid Build Coastguard Worker %tmp5 = sext <8 x i1> %tmp4 to <8 x i16> 495*9880d681SAndroid Build Coastguard Worker ret <8 x i16> %tmp5 496*9880d681SAndroid Build Coastguard Worker} 497*9880d681SAndroid Build Coastguard Worker 498*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vtstQi32(<4 x i32>* %A, <4 x i32>* %B) nounwind { 499*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vtstQi32: 500*9880d681SAndroid Build Coastguard Worker;CHECK: vtst.32 501*9880d681SAndroid Build Coastguard Worker %tmp1 = load <4 x i32>, <4 x i32>* %A 502*9880d681SAndroid Build Coastguard Worker %tmp2 = load <4 x i32>, <4 x i32>* %B 503*9880d681SAndroid Build Coastguard Worker %tmp3 = and <4 x i32> %tmp1, %tmp2 504*9880d681SAndroid Build Coastguard Worker %tmp4 = icmp ne <4 x i32> %tmp3, zeroinitializer 505*9880d681SAndroid Build Coastguard Worker %tmp5 = sext <4 x i1> %tmp4 to <4 x i32> 506*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp5 507*9880d681SAndroid Build Coastguard Worker} 508*9880d681SAndroid Build Coastguard Worker 509*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @v_orrimm(<8 x i8>* %A) nounwind { 510*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v_orrimm: 511*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 512*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmvn 513*9880d681SAndroid Build Coastguard Worker; CHECK: vorr 514*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 515*9880d681SAndroid Build Coastguard Worker %tmp3 = or <8 x i8> %tmp1, <i8 0, i8 0, i8 0, i8 1, i8 0, i8 0, i8 0, i8 1> 516*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp3 517*9880d681SAndroid Build Coastguard Worker} 518*9880d681SAndroid Build Coastguard Worker 519*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @v_orrimmQ(<16 x i8>* %A) nounwind { 520*9880d681SAndroid Build Coastguard Worker; CHECK: v_orrimmQ 521*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 522*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmvn 523*9880d681SAndroid Build Coastguard Worker; CHECK: vorr 524*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 525*9880d681SAndroid Build Coastguard Worker %tmp3 = or <16 x i8> %tmp1, <i8 0, i8 0, i8 0, i8 1, i8 0, i8 0, i8 0, i8 1, i8 0, i8 0, i8 0, i8 1, i8 0, i8 0, i8 0, i8 1> 526*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp3 527*9880d681SAndroid Build Coastguard Worker} 528*9880d681SAndroid Build Coastguard Worker 529*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @v_bicimm(<8 x i8>* %A) nounwind { 530*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v_bicimm: 531*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 532*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmvn 533*9880d681SAndroid Build Coastguard Worker; CHECK: vbic 534*9880d681SAndroid Build Coastguard Worker %tmp1 = load <8 x i8>, <8 x i8>* %A 535*9880d681SAndroid Build Coastguard Worker %tmp3 = and <8 x i8> %tmp1, < i8 -1, i8 -1, i8 -1, i8 0, i8 -1, i8 -1, i8 -1, i8 0 > 536*9880d681SAndroid Build Coastguard Worker ret <8 x i8> %tmp3 537*9880d681SAndroid Build Coastguard Worker} 538*9880d681SAndroid Build Coastguard Worker 539*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @v_bicimmQ(<16 x i8>* %A) nounwind { 540*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v_bicimmQ: 541*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 542*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmvn 543*9880d681SAndroid Build Coastguard Worker; CHECK: vbic 544*9880d681SAndroid Build Coastguard Worker %tmp1 = load <16 x i8>, <16 x i8>* %A 545*9880d681SAndroid Build Coastguard Worker %tmp3 = and <16 x i8> %tmp1, < i8 -1, i8 -1, i8 -1, i8 0, i8 -1, i8 -1, i8 -1, i8 0, i8 -1, i8 -1, i8 -1, i8 0, i8 -1, i8 -1, i8 -1, i8 0 > 546*9880d681SAndroid Build Coastguard Worker ret <16 x i8> %tmp3 547*9880d681SAndroid Build Coastguard Worker} 548