1*9880d681SAndroid Build Coastguard Worker; Test the MSA intrinsics that are encoded with the VEC instruction format. 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mattr=+msa,+fp64 -relocation-model=pic < %s | FileCheck -check-prefix=ANYENDIAN %s 4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=+msa,+fp64 -relocation-model=pic < %s | FileCheck -check-prefix=ANYENDIAN %s 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 7*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16 8*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_and_v_b_test() nounwind { 11*9880d681SAndroid Build Coastguard Workerentry: 12*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_and_v_b_ARG1 13*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_and_v_b_ARG2 14*9880d681SAndroid Build Coastguard Worker %2 = bitcast <16 x i8> %0 to <16 x i8> 15*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %1 to <16 x i8> 16*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.and.v(<16 x i8> %2, <16 x i8> %3) 17*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <16 x i8> 18*9880d681SAndroid Build Coastguard Worker store <16 x i8> %5, <16 x i8>* @llvm_mips_and_v_b_RES 19*9880d681SAndroid Build Coastguard Worker ret void 20*9880d681SAndroid Build Coastguard Worker} 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_and_v_b_test: 23*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 24*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 25*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v 26*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 27*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_and_v_b_test 28*9880d681SAndroid Build Coastguard Worker; 29*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 30*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 31*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_and_v_h_test() nounwind { 34*9880d681SAndroid Build Coastguard Workerentry: 35*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_and_v_h_ARG1 36*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_and_v_h_ARG2 37*9880d681SAndroid Build Coastguard Worker %2 = bitcast <8 x i16> %0 to <16 x i8> 38*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %1 to <16 x i8> 39*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.and.v(<16 x i8> %2, <16 x i8> %3) 40*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <8 x i16> 41*9880d681SAndroid Build Coastguard Worker store <8 x i16> %5, <8 x i16>* @llvm_mips_and_v_h_RES 42*9880d681SAndroid Build Coastguard Worker ret void 43*9880d681SAndroid Build Coastguard Worker} 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_and_v_h_test: 46*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 47*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 48*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v 49*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 50*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_and_v_h_test 51*9880d681SAndroid Build Coastguard Worker; 52*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 53*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 54*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_and_v_w_test() nounwind { 57*9880d681SAndroid Build Coastguard Workerentry: 58*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_and_v_w_ARG1 59*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_and_v_w_ARG2 60*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i32> %0 to <16 x i8> 61*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i32> %1 to <16 x i8> 62*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.and.v(<16 x i8> %2, <16 x i8> %3) 63*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <4 x i32> 64*9880d681SAndroid Build Coastguard Worker store <4 x i32> %5, <4 x i32>* @llvm_mips_and_v_w_RES 65*9880d681SAndroid Build Coastguard Worker ret void 66*9880d681SAndroid Build Coastguard Worker} 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_and_v_w_test: 69*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 70*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 71*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v 72*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 73*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_and_v_w_test 74*9880d681SAndroid Build Coastguard Worker; 75*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 76*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 77*9880d681SAndroid Build Coastguard Worker@llvm_mips_and_v_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 78*9880d681SAndroid Build Coastguard Worker 79*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_and_v_d_test() nounwind { 80*9880d681SAndroid Build Coastguard Workerentry: 81*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_and_v_d_ARG1 82*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_and_v_d_ARG2 83*9880d681SAndroid Build Coastguard Worker %2 = bitcast <2 x i64> %0 to <16 x i8> 84*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i64> %1 to <16 x i8> 85*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.and.v(<16 x i8> %2, <16 x i8> %3) 86*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <2 x i64> 87*9880d681SAndroid Build Coastguard Worker store <2 x i64> %5, <2 x i64>* @llvm_mips_and_v_d_RES 88*9880d681SAndroid Build Coastguard Worker ret void 89*9880d681SAndroid Build Coastguard Worker} 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_and_v_d_test: 92*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 93*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 94*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v 95*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 96*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_and_v_d_test 97*9880d681SAndroid Build Coastguard Worker; 98*9880d681SAndroid Build Coastguard Workerdefine void @and_v_b_test() nounwind { 99*9880d681SAndroid Build Coastguard Workerentry: 100*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_and_v_b_ARG1 101*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_and_v_b_ARG2 102*9880d681SAndroid Build Coastguard Worker %2 = and <16 x i8> %0, %1 103*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_and_v_b_RES 104*9880d681SAndroid Build Coastguard Worker ret void 105*9880d681SAndroid Build Coastguard Worker} 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and_v_b_test: 108*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 109*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 110*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v 111*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 112*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size and_v_b_test 113*9880d681SAndroid Build Coastguard Worker; 114*9880d681SAndroid Build Coastguard Workerdefine void @and_v_h_test() nounwind { 115*9880d681SAndroid Build Coastguard Workerentry: 116*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_and_v_h_ARG1 117*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_and_v_h_ARG2 118*9880d681SAndroid Build Coastguard Worker %2 = and <8 x i16> %0, %1 119*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_and_v_h_RES 120*9880d681SAndroid Build Coastguard Worker ret void 121*9880d681SAndroid Build Coastguard Worker} 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and_v_h_test: 124*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h 125*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h 126*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v 127*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.h 128*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size and_v_h_test 129*9880d681SAndroid Build Coastguard Worker; 130*9880d681SAndroid Build Coastguard Worker 131*9880d681SAndroid Build Coastguard Workerdefine void @and_v_w_test() nounwind { 132*9880d681SAndroid Build Coastguard Workerentry: 133*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_and_v_w_ARG1 134*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_and_v_w_ARG2 135*9880d681SAndroid Build Coastguard Worker %2 = and <4 x i32> %0, %1 136*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_and_v_w_RES 137*9880d681SAndroid Build Coastguard Worker ret void 138*9880d681SAndroid Build Coastguard Worker} 139*9880d681SAndroid Build Coastguard Worker 140*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and_v_w_test: 141*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w 142*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w 143*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v 144*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.w 145*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size and_v_w_test 146*9880d681SAndroid Build Coastguard Worker; 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Workerdefine void @and_v_d_test() nounwind { 149*9880d681SAndroid Build Coastguard Workerentry: 150*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_and_v_d_ARG1 151*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_and_v_d_ARG2 152*9880d681SAndroid Build Coastguard Worker %2 = and <2 x i64> %0, %1 153*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_and_v_d_RES 154*9880d681SAndroid Build Coastguard Worker ret void 155*9880d681SAndroid Build Coastguard Worker} 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and_v_d_test: 158*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d 159*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d 160*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: and.v 161*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.d 162*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size and_v_d_test 163*9880d681SAndroid Build Coastguard Worker; 164*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 165*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16 166*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_b_ARG3 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 167*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmnz_v_b_test() nounwind { 170*9880d681SAndroid Build Coastguard Workerentry: 171*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_bmnz_v_b_ARG1 172*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_bmnz_v_b_ARG2 173*9880d681SAndroid Build Coastguard Worker %2 = load <16 x i8>, <16 x i8>* @llvm_mips_bmnz_v_b_ARG3 174*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %0 to <16 x i8> 175*9880d681SAndroid Build Coastguard Worker %4 = bitcast <16 x i8> %1 to <16 x i8> 176*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %2 to <16 x i8> 177*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bmnz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 178*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <16 x i8> 179*9880d681SAndroid Build Coastguard Worker store <16 x i8> %7, <16 x i8>* @llvm_mips_bmnz_v_b_RES 180*9880d681SAndroid Build Coastguard Worker ret void 181*9880d681SAndroid Build Coastguard Worker} 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmnz_v_b_test: 184*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmnz_v_b_ARG1)( 185*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmnz_v_b_ARG2)( 186*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmnz_v_b_ARG3)( 187*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 188*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 189*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 190*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R4]], [[R5]], [[R6]] 191*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R4]], 0( 192*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmnz_v_b_test 193*9880d681SAndroid Build Coastguard Worker 194*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 195*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 196*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_h_ARG3 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 197*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 198*9880d681SAndroid Build Coastguard Worker 199*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmnz_v_h_test() nounwind { 200*9880d681SAndroid Build Coastguard Workerentry: 201*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_bmnz_v_h_ARG1 202*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_bmnz_v_h_ARG2 203*9880d681SAndroid Build Coastguard Worker %2 = load <8 x i16>, <8 x i16>* @llvm_mips_bmnz_v_h_ARG3 204*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %0 to <16 x i8> 205*9880d681SAndroid Build Coastguard Worker %4 = bitcast <8 x i16> %1 to <16 x i8> 206*9880d681SAndroid Build Coastguard Worker %5 = bitcast <8 x i16> %2 to <16 x i8> 207*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bmnz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 208*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <8 x i16> 209*9880d681SAndroid Build Coastguard Worker store <8 x i16> %7, <8 x i16>* @llvm_mips_bmnz_v_h_RES 210*9880d681SAndroid Build Coastguard Worker ret void 211*9880d681SAndroid Build Coastguard Worker} 212*9880d681SAndroid Build Coastguard Worker 213*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmnz_v_h_test: 214*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmnz_v_h_ARG1)( 215*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmnz_v_h_ARG2)( 216*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmnz_v_h_ARG3)( 217*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 218*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 219*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 220*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R4]], [[R5]], [[R6]] 221*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R4]], 0( 222*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmnz_v_h_test 223*9880d681SAndroid Build Coastguard Worker 224*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 225*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 226*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_w_ARG3 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 227*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmnz_v_w_test() nounwind { 230*9880d681SAndroid Build Coastguard Workerentry: 231*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_bmnz_v_w_ARG1 232*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_bmnz_v_w_ARG2 233*9880d681SAndroid Build Coastguard Worker %2 = load <4 x i32>, <4 x i32>* @llvm_mips_bmnz_v_w_ARG3 234*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i32> %0 to <16 x i8> 235*9880d681SAndroid Build Coastguard Worker %4 = bitcast <4 x i32> %1 to <16 x i8> 236*9880d681SAndroid Build Coastguard Worker %5 = bitcast <4 x i32> %2 to <16 x i8> 237*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bmnz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 238*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <4 x i32> 239*9880d681SAndroid Build Coastguard Worker store <4 x i32> %7, <4 x i32>* @llvm_mips_bmnz_v_w_RES 240*9880d681SAndroid Build Coastguard Worker ret void 241*9880d681SAndroid Build Coastguard Worker} 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmnz_v_w_test: 244*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmnz_v_w_ARG1)( 245*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmnz_v_w_ARG2)( 246*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmnz_v_w_ARG3)( 247*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 248*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 249*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 250*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R4]], [[R5]], [[R6]] 251*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R4]], 0( 252*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmnz_v_w_test 253*9880d681SAndroid Build Coastguard Worker 254*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 255*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 256*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_d_ARG3 = global <2 x i64> <i64 0, i64 1>, align 16 257*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmnz_v_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 258*9880d681SAndroid Build Coastguard Worker 259*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmnz_v_d_test() nounwind { 260*9880d681SAndroid Build Coastguard Workerentry: 261*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_bmnz_v_d_ARG1 262*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_bmnz_v_d_ARG2 263*9880d681SAndroid Build Coastguard Worker %2 = load <2 x i64>, <2 x i64>* @llvm_mips_bmnz_v_d_ARG3 264*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i64> %0 to <16 x i8> 265*9880d681SAndroid Build Coastguard Worker %4 = bitcast <2 x i64> %1 to <16 x i8> 266*9880d681SAndroid Build Coastguard Worker %5 = bitcast <2 x i64> %2 to <16 x i8> 267*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bmnz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 268*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <2 x i64> 269*9880d681SAndroid Build Coastguard Worker store <2 x i64> %7, <2 x i64>* @llvm_mips_bmnz_v_d_RES 270*9880d681SAndroid Build Coastguard Worker ret void 271*9880d681SAndroid Build Coastguard Worker} 272*9880d681SAndroid Build Coastguard Worker 273*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmnz_v_d_test: 274*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmnz_v_d_ARG1)( 275*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmnz_v_d_ARG2)( 276*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmnz_v_d_ARG3)( 277*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 278*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 279*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 280*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R4]], [[R5]], [[R6]] 281*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R4]], 0( 282*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmnz_v_d_test 283*9880d681SAndroid Build Coastguard Worker 284*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 285*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16 286*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_b_ARG3 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 287*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16 288*9880d681SAndroid Build Coastguard Worker 289*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmz_v_b_test() nounwind { 290*9880d681SAndroid Build Coastguard Workerentry: 291*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_bmz_v_b_ARG1 292*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_bmz_v_b_ARG2 293*9880d681SAndroid Build Coastguard Worker %2 = load <16 x i8>, <16 x i8>* @llvm_mips_bmz_v_b_ARG3 294*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %0 to <16 x i8> 295*9880d681SAndroid Build Coastguard Worker %4 = bitcast <16 x i8> %1 to <16 x i8> 296*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %2 to <16 x i8> 297*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bmz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 298*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <16 x i8> 299*9880d681SAndroid Build Coastguard Worker store <16 x i8> %7, <16 x i8>* @llvm_mips_bmz_v_b_RES 300*9880d681SAndroid Build Coastguard Worker ret void 301*9880d681SAndroid Build Coastguard Worker} 302*9880d681SAndroid Build Coastguard Worker 303*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmz_v_b_test: 304*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmz_v_b_ARG1)( 305*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmz_v_b_ARG2)( 306*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmz_v_b_ARG3)( 307*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 308*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 309*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 310*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bmz.v with ws and wd_in swapped 311*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R4]], [[R6]] 312*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0( 313*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmz_v_b_test 314*9880d681SAndroid Build Coastguard Worker 315*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 316*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 317*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_h_ARG3 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 318*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 319*9880d681SAndroid Build Coastguard Worker 320*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmz_v_h_test() nounwind { 321*9880d681SAndroid Build Coastguard Workerentry: 322*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_bmz_v_h_ARG1 323*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_bmz_v_h_ARG2 324*9880d681SAndroid Build Coastguard Worker %2 = load <8 x i16>, <8 x i16>* @llvm_mips_bmz_v_h_ARG3 325*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %0 to <16 x i8> 326*9880d681SAndroid Build Coastguard Worker %4 = bitcast <8 x i16> %1 to <16 x i8> 327*9880d681SAndroid Build Coastguard Worker %5 = bitcast <8 x i16> %2 to <16 x i8> 328*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bmz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 329*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <8 x i16> 330*9880d681SAndroid Build Coastguard Worker store <8 x i16> %7, <8 x i16>* @llvm_mips_bmz_v_h_RES 331*9880d681SAndroid Build Coastguard Worker ret void 332*9880d681SAndroid Build Coastguard Worker} 333*9880d681SAndroid Build Coastguard Worker 334*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmz_v_h_test: 335*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmz_v_h_ARG1)( 336*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmz_v_h_ARG2)( 337*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmz_v_h_ARG3)( 338*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 339*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 340*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 341*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bmz.v with ws and wd_in swapped 342*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R4]], [[R6]] 343*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0( 344*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmz_v_h_test 345*9880d681SAndroid Build Coastguard Worker 346*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 347*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 348*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_w_ARG3 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 349*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 350*9880d681SAndroid Build Coastguard Worker 351*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmz_v_w_test() nounwind { 352*9880d681SAndroid Build Coastguard Workerentry: 353*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_bmz_v_w_ARG1 354*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_bmz_v_w_ARG2 355*9880d681SAndroid Build Coastguard Worker %2 = load <4 x i32>, <4 x i32>* @llvm_mips_bmz_v_w_ARG3 356*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i32> %0 to <16 x i8> 357*9880d681SAndroid Build Coastguard Worker %4 = bitcast <4 x i32> %1 to <16 x i8> 358*9880d681SAndroid Build Coastguard Worker %5 = bitcast <4 x i32> %2 to <16 x i8> 359*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bmz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 360*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <4 x i32> 361*9880d681SAndroid Build Coastguard Worker store <4 x i32> %7, <4 x i32>* @llvm_mips_bmz_v_w_RES 362*9880d681SAndroid Build Coastguard Worker ret void 363*9880d681SAndroid Build Coastguard Worker} 364*9880d681SAndroid Build Coastguard Worker 365*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmz_v_w_test: 366*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmz_v_w_ARG1)( 367*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmz_v_w_ARG2)( 368*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmz_v_w_ARG3)( 369*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 370*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 371*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 372*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bmz.v with ws and wd_in swapped 373*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R4]], [[R6]] 374*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0( 375*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmz_v_w_test 376*9880d681SAndroid Build Coastguard Worker 377*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 378*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 379*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_d_ARG3 = global <2 x i64> <i64 0, i64 1>, align 16 380*9880d681SAndroid Build Coastguard Worker@llvm_mips_bmz_v_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 381*9880d681SAndroid Build Coastguard Worker 382*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bmz_v_d_test() nounwind { 383*9880d681SAndroid Build Coastguard Workerentry: 384*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_bmz_v_d_ARG1 385*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_bmz_v_d_ARG2 386*9880d681SAndroid Build Coastguard Worker %2 = load <2 x i64>, <2 x i64>* @llvm_mips_bmz_v_d_ARG3 387*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i64> %0 to <16 x i8> 388*9880d681SAndroid Build Coastguard Worker %4 = bitcast <2 x i64> %1 to <16 x i8> 389*9880d681SAndroid Build Coastguard Worker %5 = bitcast <2 x i64> %2 to <16 x i8> 390*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bmz.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 391*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <2 x i64> 392*9880d681SAndroid Build Coastguard Worker store <2 x i64> %7, <2 x i64>* @llvm_mips_bmz_v_d_RES 393*9880d681SAndroid Build Coastguard Worker ret void 394*9880d681SAndroid Build Coastguard Worker} 395*9880d681SAndroid Build Coastguard Worker 396*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bmz_v_d_test: 397*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bmz_v_d_ARG1)( 398*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bmz_v_d_ARG2)( 399*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bmz_v_d_ARG3)( 400*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 401*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 402*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 403*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bmz.v with ws and wd_in swapped 404*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R4]], [[R6]] 405*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0( 406*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bmz_v_d_test 407*9880d681SAndroid Build Coastguard Worker 408*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 409*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16 410*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_b_ARG3 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 411*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16 412*9880d681SAndroid Build Coastguard Worker 413*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bsel_v_b_test() nounwind { 414*9880d681SAndroid Build Coastguard Workerentry: 415*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_bsel_v_b_ARG1 416*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_bsel_v_b_ARG2 417*9880d681SAndroid Build Coastguard Worker %2 = load <16 x i8>, <16 x i8>* @llvm_mips_bsel_v_b_ARG3 418*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %0 to <16 x i8> 419*9880d681SAndroid Build Coastguard Worker %4 = bitcast <16 x i8> %1 to <16 x i8> 420*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %2 to <16 x i8> 421*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bsel.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 422*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <16 x i8> 423*9880d681SAndroid Build Coastguard Worker store <16 x i8> %7, <16 x i8>* @llvm_mips_bsel_v_b_RES 424*9880d681SAndroid Build Coastguard Worker ret void 425*9880d681SAndroid Build Coastguard Worker} 426*9880d681SAndroid Build Coastguard Worker 427*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bsel_v_b_test: 428*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bsel_v_b_ARG1)( 429*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bsel_v_b_ARG2)( 430*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bsel_v_b_ARG3)( 431*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 432*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 433*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 434*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bsel.v with (wd_in, wt, ws) -> (wt, ws, wd_in) 435*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R6]], [[R4]] 436*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0( 437*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bsel_v_b_test 438*9880d681SAndroid Build Coastguard Worker 439*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 440*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 441*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_h_ARG3 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 442*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 443*9880d681SAndroid Build Coastguard Worker 444*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bsel_v_h_test() nounwind { 445*9880d681SAndroid Build Coastguard Workerentry: 446*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_bsel_v_h_ARG1 447*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_bsel_v_h_ARG2 448*9880d681SAndroid Build Coastguard Worker %2 = load <8 x i16>, <8 x i16>* @llvm_mips_bsel_v_h_ARG3 449*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %0 to <16 x i8> 450*9880d681SAndroid Build Coastguard Worker %4 = bitcast <8 x i16> %1 to <16 x i8> 451*9880d681SAndroid Build Coastguard Worker %5 = bitcast <8 x i16> %2 to <16 x i8> 452*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bsel.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 453*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <8 x i16> 454*9880d681SAndroid Build Coastguard Worker store <8 x i16> %7, <8 x i16>* @llvm_mips_bsel_v_h_RES 455*9880d681SAndroid Build Coastguard Worker ret void 456*9880d681SAndroid Build Coastguard Worker} 457*9880d681SAndroid Build Coastguard Worker 458*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bsel_v_h_test: 459*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bsel_v_h_ARG1)( 460*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bsel_v_h_ARG2)( 461*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bsel_v_h_ARG3)( 462*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 463*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 464*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 465*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bsel.v with (wd_in, wt, ws) -> (wt, ws, wd_in) 466*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R6]], [[R4]] 467*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0( 468*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bsel_v_h_test 469*9880d681SAndroid Build Coastguard Worker 470*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 471*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 472*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_w_ARG3 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 473*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 474*9880d681SAndroid Build Coastguard Worker 475*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bsel_v_w_test() nounwind { 476*9880d681SAndroid Build Coastguard Workerentry: 477*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_bsel_v_w_ARG1 478*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_bsel_v_w_ARG2 479*9880d681SAndroid Build Coastguard Worker %2 = load <4 x i32>, <4 x i32>* @llvm_mips_bsel_v_w_ARG3 480*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i32> %0 to <16 x i8> 481*9880d681SAndroid Build Coastguard Worker %4 = bitcast <4 x i32> %1 to <16 x i8> 482*9880d681SAndroid Build Coastguard Worker %5 = bitcast <4 x i32> %2 to <16 x i8> 483*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bsel.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 484*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <4 x i32> 485*9880d681SAndroid Build Coastguard Worker store <4 x i32> %7, <4 x i32>* @llvm_mips_bsel_v_w_RES 486*9880d681SAndroid Build Coastguard Worker ret void 487*9880d681SAndroid Build Coastguard Worker} 488*9880d681SAndroid Build Coastguard Worker 489*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bsel_v_w_test: 490*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bsel_v_w_ARG1)( 491*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bsel_v_w_ARG2)( 492*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bsel_v_w_ARG3)( 493*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 494*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 495*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 496*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bsel.v with (wd_in, wt, ws) -> (wt, ws, wd_in) 497*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R6]], [[R4]] 498*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0( 499*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bsel_v_w_test 500*9880d681SAndroid Build Coastguard Worker 501*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 502*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 503*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_d_ARG3 = global <2 x i64> <i64 0, i64 1>, align 16 504*9880d681SAndroid Build Coastguard Worker@llvm_mips_bsel_v_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 505*9880d681SAndroid Build Coastguard Worker 506*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_bsel_v_d_test() nounwind { 507*9880d681SAndroid Build Coastguard Workerentry: 508*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_bsel_v_d_ARG1 509*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_bsel_v_d_ARG2 510*9880d681SAndroid Build Coastguard Worker %2 = load <2 x i64>, <2 x i64>* @llvm_mips_bsel_v_d_ARG3 511*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i64> %0 to <16 x i8> 512*9880d681SAndroid Build Coastguard Worker %4 = bitcast <2 x i64> %1 to <16 x i8> 513*9880d681SAndroid Build Coastguard Worker %5 = bitcast <2 x i64> %2 to <16 x i8> 514*9880d681SAndroid Build Coastguard Worker %6 = tail call <16 x i8> @llvm.mips.bsel.v(<16 x i8> %3, <16 x i8> %4, <16 x i8> %5) 515*9880d681SAndroid Build Coastguard Worker %7 = bitcast <16 x i8> %6 to <2 x i64> 516*9880d681SAndroid Build Coastguard Worker store <2 x i64> %7, <2 x i64>* @llvm_mips_bsel_v_d_RES 517*9880d681SAndroid Build Coastguard Worker ret void 518*9880d681SAndroid Build Coastguard Worker} 519*9880d681SAndroid Build Coastguard Worker 520*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_bsel_v_d_test: 521*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_bsel_v_d_ARG1)( 522*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_bsel_v_d_ARG2)( 523*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_bsel_v_d_ARG3)( 524*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R4:\$w[0-9]+]], 0([[R1]]) 525*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R5:\$w[0-9]+]], 0([[R2]]) 526*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: ld.b [[R6:\$w[0-9]+]], 0([[R3]]) 527*9880d681SAndroid Build Coastguard Worker; bmnz.v is the same as bsel.v with (wd_in, wt, ws) -> (wt, ws, wd_in) 528*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: bmnz.v [[R5]], [[R6]], [[R4]] 529*9880d681SAndroid Build Coastguard Worker; ANYENDIAN-DAG: st.b [[R5]], 0( 530*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_bsel_v_d_test 531*9880d681SAndroid Build Coastguard Worker 532*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 533*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16 534*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16 535*9880d681SAndroid Build Coastguard Worker 536*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_nor_v_b_test() nounwind { 537*9880d681SAndroid Build Coastguard Workerentry: 538*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_nor_v_b_ARG1 539*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_nor_v_b_ARG2 540*9880d681SAndroid Build Coastguard Worker %2 = bitcast <16 x i8> %0 to <16 x i8> 541*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %1 to <16 x i8> 542*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.nor.v(<16 x i8> %2, <16 x i8> %3) 543*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <16 x i8> 544*9880d681SAndroid Build Coastguard Worker store <16 x i8> %5, <16 x i8>* @llvm_mips_nor_v_b_RES 545*9880d681SAndroid Build Coastguard Worker ret void 546*9880d681SAndroid Build Coastguard Worker} 547*9880d681SAndroid Build Coastguard Worker 548*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_nor_v_b_test: 549*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 550*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 551*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: nor.v 552*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 553*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_nor_v_b_test 554*9880d681SAndroid Build Coastguard Worker; 555*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 556*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 557*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 558*9880d681SAndroid Build Coastguard Worker 559*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_nor_v_h_test() nounwind { 560*9880d681SAndroid Build Coastguard Workerentry: 561*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_nor_v_h_ARG1 562*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_nor_v_h_ARG2 563*9880d681SAndroid Build Coastguard Worker %2 = bitcast <8 x i16> %0 to <16 x i8> 564*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %1 to <16 x i8> 565*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.nor.v(<16 x i8> %2, <16 x i8> %3) 566*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <8 x i16> 567*9880d681SAndroid Build Coastguard Worker store <8 x i16> %5, <8 x i16>* @llvm_mips_nor_v_h_RES 568*9880d681SAndroid Build Coastguard Worker ret void 569*9880d681SAndroid Build Coastguard Worker} 570*9880d681SAndroid Build Coastguard Worker 571*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_nor_v_h_test: 572*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 573*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 574*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: nor.v 575*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 576*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_nor_v_h_test 577*9880d681SAndroid Build Coastguard Worker; 578*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 579*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 580*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 581*9880d681SAndroid Build Coastguard Worker 582*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_nor_v_w_test() nounwind { 583*9880d681SAndroid Build Coastguard Workerentry: 584*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_nor_v_w_ARG1 585*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_nor_v_w_ARG2 586*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i32> %0 to <16 x i8> 587*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i32> %1 to <16 x i8> 588*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.nor.v(<16 x i8> %2, <16 x i8> %3) 589*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <4 x i32> 590*9880d681SAndroid Build Coastguard Worker store <4 x i32> %5, <4 x i32>* @llvm_mips_nor_v_w_RES 591*9880d681SAndroid Build Coastguard Worker ret void 592*9880d681SAndroid Build Coastguard Worker} 593*9880d681SAndroid Build Coastguard Worker 594*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_nor_v_w_test: 595*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 596*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 597*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: nor.v 598*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 599*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_nor_v_w_test 600*9880d681SAndroid Build Coastguard Worker; 601*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 602*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 603*9880d681SAndroid Build Coastguard Worker@llvm_mips_nor_v_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 604*9880d681SAndroid Build Coastguard Worker 605*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_nor_v_d_test() nounwind { 606*9880d681SAndroid Build Coastguard Workerentry: 607*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_nor_v_d_ARG1 608*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_nor_v_d_ARG2 609*9880d681SAndroid Build Coastguard Worker %2 = bitcast <2 x i64> %0 to <16 x i8> 610*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i64> %1 to <16 x i8> 611*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.nor.v(<16 x i8> %2, <16 x i8> %3) 612*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <2 x i64> 613*9880d681SAndroid Build Coastguard Worker store <2 x i64> %5, <2 x i64>* @llvm_mips_nor_v_d_RES 614*9880d681SAndroid Build Coastguard Worker ret void 615*9880d681SAndroid Build Coastguard Worker} 616*9880d681SAndroid Build Coastguard Worker 617*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_nor_v_d_test: 618*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 619*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 620*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: nor.v 621*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 622*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_nor_v_d_test 623*9880d681SAndroid Build Coastguard Worker; 624*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 625*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16 626*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16 627*9880d681SAndroid Build Coastguard Worker 628*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_or_v_b_test() nounwind { 629*9880d681SAndroid Build Coastguard Workerentry: 630*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_or_v_b_ARG1 631*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_or_v_b_ARG2 632*9880d681SAndroid Build Coastguard Worker %2 = bitcast <16 x i8> %0 to <16 x i8> 633*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %1 to <16 x i8> 634*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.or.v(<16 x i8> %2, <16 x i8> %3) 635*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <16 x i8> 636*9880d681SAndroid Build Coastguard Worker store <16 x i8> %5, <16 x i8>* @llvm_mips_or_v_b_RES 637*9880d681SAndroid Build Coastguard Worker ret void 638*9880d681SAndroid Build Coastguard Worker} 639*9880d681SAndroid Build Coastguard Worker 640*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_or_v_b_test: 641*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 642*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 643*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v 644*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 645*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_or_v_b_test 646*9880d681SAndroid Build Coastguard Worker; 647*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 648*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 649*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 650*9880d681SAndroid Build Coastguard Worker 651*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_or_v_h_test() nounwind { 652*9880d681SAndroid Build Coastguard Workerentry: 653*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_or_v_h_ARG1 654*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_or_v_h_ARG2 655*9880d681SAndroid Build Coastguard Worker %2 = bitcast <8 x i16> %0 to <16 x i8> 656*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %1 to <16 x i8> 657*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.or.v(<16 x i8> %2, <16 x i8> %3) 658*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <8 x i16> 659*9880d681SAndroid Build Coastguard Worker store <8 x i16> %5, <8 x i16>* @llvm_mips_or_v_h_RES 660*9880d681SAndroid Build Coastguard Worker ret void 661*9880d681SAndroid Build Coastguard Worker} 662*9880d681SAndroid Build Coastguard Worker 663*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_or_v_h_test: 664*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 665*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 666*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v 667*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 668*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_or_v_h_test 669*9880d681SAndroid Build Coastguard Worker; 670*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 671*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 672*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 673*9880d681SAndroid Build Coastguard Worker 674*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_or_v_w_test() nounwind { 675*9880d681SAndroid Build Coastguard Workerentry: 676*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_or_v_w_ARG1 677*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_or_v_w_ARG2 678*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i32> %0 to <16 x i8> 679*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i32> %1 to <16 x i8> 680*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.or.v(<16 x i8> %2, <16 x i8> %3) 681*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <4 x i32> 682*9880d681SAndroid Build Coastguard Worker store <4 x i32> %5, <4 x i32>* @llvm_mips_or_v_w_RES 683*9880d681SAndroid Build Coastguard Worker ret void 684*9880d681SAndroid Build Coastguard Worker} 685*9880d681SAndroid Build Coastguard Worker 686*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_or_v_w_test: 687*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 688*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 689*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v 690*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 691*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_or_v_w_test 692*9880d681SAndroid Build Coastguard Worker; 693*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 694*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 695*9880d681SAndroid Build Coastguard Worker@llvm_mips_or_v_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 696*9880d681SAndroid Build Coastguard Worker 697*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_or_v_d_test() nounwind { 698*9880d681SAndroid Build Coastguard Workerentry: 699*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_or_v_d_ARG1 700*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_or_v_d_ARG2 701*9880d681SAndroid Build Coastguard Worker %2 = bitcast <2 x i64> %0 to <16 x i8> 702*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i64> %1 to <16 x i8> 703*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.or.v(<16 x i8> %2, <16 x i8> %3) 704*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <2 x i64> 705*9880d681SAndroid Build Coastguard Worker store <2 x i64> %5, <2 x i64>* @llvm_mips_or_v_d_RES 706*9880d681SAndroid Build Coastguard Worker ret void 707*9880d681SAndroid Build Coastguard Worker} 708*9880d681SAndroid Build Coastguard Worker 709*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_or_v_d_test: 710*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 711*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 712*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v 713*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 714*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_or_v_d_test 715*9880d681SAndroid Build Coastguard Worker; 716*9880d681SAndroid Build Coastguard Workerdefine void @or_v_b_test() nounwind { 717*9880d681SAndroid Build Coastguard Workerentry: 718*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_or_v_b_ARG1 719*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_or_v_b_ARG2 720*9880d681SAndroid Build Coastguard Worker %2 = or <16 x i8> %0, %1 721*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_or_v_b_RES 722*9880d681SAndroid Build Coastguard Worker ret void 723*9880d681SAndroid Build Coastguard Worker} 724*9880d681SAndroid Build Coastguard Worker 725*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or_v_b_test: 726*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 727*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 728*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v 729*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 730*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size or_v_b_test 731*9880d681SAndroid Build Coastguard Worker; 732*9880d681SAndroid Build Coastguard Workerdefine void @or_v_h_test() nounwind { 733*9880d681SAndroid Build Coastguard Workerentry: 734*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_or_v_h_ARG1 735*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_or_v_h_ARG2 736*9880d681SAndroid Build Coastguard Worker %2 = or <8 x i16> %0, %1 737*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_or_v_h_RES 738*9880d681SAndroid Build Coastguard Worker ret void 739*9880d681SAndroid Build Coastguard Worker} 740*9880d681SAndroid Build Coastguard Worker 741*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or_v_h_test: 742*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h 743*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h 744*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v 745*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.h 746*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size or_v_h_test 747*9880d681SAndroid Build Coastguard Worker; 748*9880d681SAndroid Build Coastguard Worker 749*9880d681SAndroid Build Coastguard Workerdefine void @or_v_w_test() nounwind { 750*9880d681SAndroid Build Coastguard Workerentry: 751*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_or_v_w_ARG1 752*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_or_v_w_ARG2 753*9880d681SAndroid Build Coastguard Worker %2 = or <4 x i32> %0, %1 754*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_or_v_w_RES 755*9880d681SAndroid Build Coastguard Worker ret void 756*9880d681SAndroid Build Coastguard Worker} 757*9880d681SAndroid Build Coastguard Worker 758*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or_v_w_test: 759*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w 760*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w 761*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v 762*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.w 763*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size or_v_w_test 764*9880d681SAndroid Build Coastguard Worker; 765*9880d681SAndroid Build Coastguard Worker 766*9880d681SAndroid Build Coastguard Workerdefine void @or_v_d_test() nounwind { 767*9880d681SAndroid Build Coastguard Workerentry: 768*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_or_v_d_ARG1 769*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_or_v_d_ARG2 770*9880d681SAndroid Build Coastguard Worker %2 = or <2 x i64> %0, %1 771*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_or_v_d_RES 772*9880d681SAndroid Build Coastguard Worker ret void 773*9880d681SAndroid Build Coastguard Worker} 774*9880d681SAndroid Build Coastguard Worker 775*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or_v_d_test: 776*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d 777*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d 778*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: or.v 779*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.d 780*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size or_v_d_test 781*9880d681SAndroid Build Coastguard Worker; 782*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_b_ARG1 = global <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, align 16 783*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_b_ARG2 = global <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, align 16 784*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_b_RES = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>, align 16 785*9880d681SAndroid Build Coastguard Worker 786*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_xor_v_b_test() nounwind { 787*9880d681SAndroid Build Coastguard Workerentry: 788*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_xor_v_b_ARG1 789*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_xor_v_b_ARG2 790*9880d681SAndroid Build Coastguard Worker %2 = bitcast <16 x i8> %0 to <16 x i8> 791*9880d681SAndroid Build Coastguard Worker %3 = bitcast <16 x i8> %1 to <16 x i8> 792*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.xor.v(<16 x i8> %2, <16 x i8> %3) 793*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <16 x i8> 794*9880d681SAndroid Build Coastguard Worker store <16 x i8> %5, <16 x i8>* @llvm_mips_xor_v_b_RES 795*9880d681SAndroid Build Coastguard Worker ret void 796*9880d681SAndroid Build Coastguard Worker} 797*9880d681SAndroid Build Coastguard Worker 798*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_xor_v_b_test: 799*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 800*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 801*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v 802*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 803*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_xor_v_b_test 804*9880d681SAndroid Build Coastguard Worker; 805*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 806*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 807*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 808*9880d681SAndroid Build Coastguard Worker 809*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_xor_v_h_test() nounwind { 810*9880d681SAndroid Build Coastguard Workerentry: 811*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_xor_v_h_ARG1 812*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_xor_v_h_ARG2 813*9880d681SAndroid Build Coastguard Worker %2 = bitcast <8 x i16> %0 to <16 x i8> 814*9880d681SAndroid Build Coastguard Worker %3 = bitcast <8 x i16> %1 to <16 x i8> 815*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.xor.v(<16 x i8> %2, <16 x i8> %3) 816*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <8 x i16> 817*9880d681SAndroid Build Coastguard Worker store <8 x i16> %5, <8 x i16>* @llvm_mips_xor_v_h_RES 818*9880d681SAndroid Build Coastguard Worker ret void 819*9880d681SAndroid Build Coastguard Worker} 820*9880d681SAndroid Build Coastguard Worker 821*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_xor_v_h_test: 822*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 823*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 824*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v 825*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 826*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_xor_v_h_test 827*9880d681SAndroid Build Coastguard Worker; 828*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 829*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 830*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 831*9880d681SAndroid Build Coastguard Worker 832*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_xor_v_w_test() nounwind { 833*9880d681SAndroid Build Coastguard Workerentry: 834*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_xor_v_w_ARG1 835*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_xor_v_w_ARG2 836*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i32> %0 to <16 x i8> 837*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i32> %1 to <16 x i8> 838*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.xor.v(<16 x i8> %2, <16 x i8> %3) 839*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <4 x i32> 840*9880d681SAndroid Build Coastguard Worker store <4 x i32> %5, <4 x i32>* @llvm_mips_xor_v_w_RES 841*9880d681SAndroid Build Coastguard Worker ret void 842*9880d681SAndroid Build Coastguard Worker} 843*9880d681SAndroid Build Coastguard Worker 844*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_xor_v_w_test: 845*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 846*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 847*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v 848*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 849*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_xor_v_w_test 850*9880d681SAndroid Build Coastguard Worker; 851*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 852*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 853*9880d681SAndroid Build Coastguard Worker@llvm_mips_xor_v_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 854*9880d681SAndroid Build Coastguard Worker 855*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_xor_v_d_test() nounwind { 856*9880d681SAndroid Build Coastguard Workerentry: 857*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_xor_v_d_ARG1 858*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_xor_v_d_ARG2 859*9880d681SAndroid Build Coastguard Worker %2 = bitcast <2 x i64> %0 to <16 x i8> 860*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i64> %1 to <16 x i8> 861*9880d681SAndroid Build Coastguard Worker %4 = tail call <16 x i8> @llvm.mips.xor.v(<16 x i8> %2, <16 x i8> %3) 862*9880d681SAndroid Build Coastguard Worker %5 = bitcast <16 x i8> %4 to <2 x i64> 863*9880d681SAndroid Build Coastguard Worker store <2 x i64> %5, <2 x i64>* @llvm_mips_xor_v_d_RES 864*9880d681SAndroid Build Coastguard Worker ret void 865*9880d681SAndroid Build Coastguard Worker} 866*9880d681SAndroid Build Coastguard Worker 867*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: llvm_mips_xor_v_d_test: 868*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 869*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 870*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v 871*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 872*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size llvm_mips_xor_v_d_test 873*9880d681SAndroid Build Coastguard Worker; 874*9880d681SAndroid Build Coastguard Workerdefine void @xor_v_b_test() nounwind { 875*9880d681SAndroid Build Coastguard Workerentry: 876*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_xor_v_b_ARG1 877*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_xor_v_b_ARG2 878*9880d681SAndroid Build Coastguard Worker %2 = xor <16 x i8> %0, %1 879*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_xor_v_b_RES 880*9880d681SAndroid Build Coastguard Worker ret void 881*9880d681SAndroid Build Coastguard Worker} 882*9880d681SAndroid Build Coastguard Worker 883*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor_v_b_test: 884*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 885*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.b 886*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v 887*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.b 888*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size xor_v_b_test 889*9880d681SAndroid Build Coastguard Worker; 890*9880d681SAndroid Build Coastguard Workerdefine void @xor_v_h_test() nounwind { 891*9880d681SAndroid Build Coastguard Workerentry: 892*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_xor_v_h_ARG1 893*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_xor_v_h_ARG2 894*9880d681SAndroid Build Coastguard Worker %2 = xor <8 x i16> %0, %1 895*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_xor_v_h_RES 896*9880d681SAndroid Build Coastguard Worker ret void 897*9880d681SAndroid Build Coastguard Worker} 898*9880d681SAndroid Build Coastguard Worker 899*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor_v_h_test: 900*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h 901*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.h 902*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v 903*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.h 904*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size xor_v_h_test 905*9880d681SAndroid Build Coastguard Worker; 906*9880d681SAndroid Build Coastguard Worker 907*9880d681SAndroid Build Coastguard Workerdefine void @xor_v_w_test() nounwind { 908*9880d681SAndroid Build Coastguard Workerentry: 909*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_xor_v_w_ARG1 910*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_xor_v_w_ARG2 911*9880d681SAndroid Build Coastguard Worker %2 = xor <4 x i32> %0, %1 912*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_xor_v_w_RES 913*9880d681SAndroid Build Coastguard Worker ret void 914*9880d681SAndroid Build Coastguard Worker} 915*9880d681SAndroid Build Coastguard Worker 916*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor_v_w_test: 917*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w 918*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.w 919*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v 920*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.w 921*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size xor_v_w_test 922*9880d681SAndroid Build Coastguard Worker; 923*9880d681SAndroid Build Coastguard Worker 924*9880d681SAndroid Build Coastguard Workerdefine void @xor_v_d_test() nounwind { 925*9880d681SAndroid Build Coastguard Workerentry: 926*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_xor_v_d_ARG1 927*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_xor_v_d_ARG2 928*9880d681SAndroid Build Coastguard Worker %2 = xor <2 x i64> %0, %1 929*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_xor_v_d_RES 930*9880d681SAndroid Build Coastguard Worker ret void 931*9880d681SAndroid Build Coastguard Worker} 932*9880d681SAndroid Build Coastguard Worker 933*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor_v_d_test: 934*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d 935*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: ld.d 936*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: xor.v 937*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: st.d 938*9880d681SAndroid Build Coastguard Worker; ANYENDIAN: .size xor_v_d_test 939*9880d681SAndroid Build Coastguard Worker; 940*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.and.v(<16 x i8>, <16 x i8>) nounwind 941*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.bmnz.v(<16 x i8>, <16 x i8>, <16 x i8>) nounwind 942*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.bmz.v(<16 x i8>, <16 x i8>, <16 x i8>) nounwind 943*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.bsel.v(<16 x i8>, <16 x i8>, <16 x i8>) nounwind 944*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.nor.v(<16 x i8>, <16 x i8>) nounwind 945*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.or.v(<16 x i8>, <16 x i8>) nounwind 946*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.xor.v(<16 x i8>, <16 x i8>) nounwind 947