1*9880d681SAndroid Build Coastguard Worker; Test the MSA intrinsics that are encoded with the 3R instruction format. 2*9880d681SAndroid Build Coastguard Worker; There are lots of these so this covers those beginning with 'a' 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mattr=+msa,+fp64 -relocation-model=pic < %s | FileCheck %s 5*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=+msa,+fp64 -relocation-model=pic < %s | FileCheck %s 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker; It should fail to compile without fp64. 8*9880d681SAndroid Build Coastguard Worker; RUN: not llc -march=mips -mattr=+msa < %s 2>&1 | \ 9*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck -check-prefix=FP32ERROR %s 10*9880d681SAndroid Build Coastguard Worker; FP32ERROR: LLVM ERROR: MSA requires a 64-bit FPU register file (FR=1 mode). 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_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 13*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_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 14*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_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 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_add_a_b_test() nounwind { 17*9880d681SAndroid Build Coastguard Workerentry: 18*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_add_a_b_ARG1 19*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_add_a_b_ARG2 20*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.add.a.b(<16 x i8> %0, <16 x i8> %1) 21*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_add_a_b_RES 22*9880d681SAndroid Build Coastguard Worker ret void 23*9880d681SAndroid Build Coastguard Worker} 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.add.a.b(<16 x i8>, <16 x i8>) nounwind 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_add_a_b_test: 28*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_add_a_b_ARG1) 29*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_add_a_b_ARG2) 30*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 31*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 32*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: add_a.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 33*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_add_a_b_RES) 34*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 35*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_add_a_b_test 36*9880d681SAndroid Build Coastguard Worker; 37*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 38*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 39*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_add_a_h_test() nounwind { 42*9880d681SAndroid Build Coastguard Workerentry: 43*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_add_a_h_ARG1 44*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_add_a_h_ARG2 45*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.add.a.h(<8 x i16> %0, <8 x i16> %1) 46*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_add_a_h_RES 47*9880d681SAndroid Build Coastguard Worker ret void 48*9880d681SAndroid Build Coastguard Worker} 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.add.a.h(<8 x i16>, <8 x i16>) nounwind 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_add_a_h_test: 53*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_add_a_h_ARG1) 54*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_add_a_h_ARG2) 55*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 56*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 57*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: add_a.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 58*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_add_a_h_RES) 59*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 60*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_add_a_h_test 61*9880d681SAndroid Build Coastguard Worker; 62*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 63*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 64*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_add_a_w_test() nounwind { 67*9880d681SAndroid Build Coastguard Workerentry: 68*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_add_a_w_ARG1 69*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_add_a_w_ARG2 70*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.add.a.w(<4 x i32> %0, <4 x i32> %1) 71*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_add_a_w_RES 72*9880d681SAndroid Build Coastguard Worker ret void 73*9880d681SAndroid Build Coastguard Worker} 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.add.a.w(<4 x i32>, <4 x i32>) nounwind 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_add_a_w_test: 78*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_add_a_w_ARG1) 79*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_add_a_w_ARG2) 80*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 81*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 82*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: add_a.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 83*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_add_a_w_RES) 84*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 85*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_add_a_w_test 86*9880d681SAndroid Build Coastguard Worker; 87*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 88*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 89*9880d681SAndroid Build Coastguard Worker@llvm_mips_add_a_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_add_a_d_test() nounwind { 92*9880d681SAndroid Build Coastguard Workerentry: 93*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_add_a_d_ARG1 94*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_add_a_d_ARG2 95*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.add.a.d(<2 x i64> %0, <2 x i64> %1) 96*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_add_a_d_RES 97*9880d681SAndroid Build Coastguard Worker ret void 98*9880d681SAndroid Build Coastguard Worker} 99*9880d681SAndroid Build Coastguard Worker 100*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.add.a.d(<2 x i64>, <2 x i64>) nounwind 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_add_a_d_test: 103*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_add_a_d_ARG1) 104*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_add_a_d_ARG2) 105*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 106*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 107*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: add_a.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 108*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_add_a_d_RES) 109*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 110*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_add_a_d_test 111*9880d681SAndroid Build Coastguard Worker; 112*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_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 113*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_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 114*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_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 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_a_b_test() nounwind { 117*9880d681SAndroid Build Coastguard Workerentry: 118*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_adds_a_b_ARG1 119*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_adds_a_b_ARG2 120*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.adds.a.b(<16 x i8> %0, <16 x i8> %1) 121*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_adds_a_b_RES 122*9880d681SAndroid Build Coastguard Worker ret void 123*9880d681SAndroid Build Coastguard Worker} 124*9880d681SAndroid Build Coastguard Worker 125*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.adds.a.b(<16 x i8>, <16 x i8>) nounwind 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_a_b_test: 128*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_a_b_ARG1) 129*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_a_b_ARG2) 130*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 131*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 132*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_a.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 133*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_a_b_RES) 134*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 135*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_a_b_test 136*9880d681SAndroid Build Coastguard Worker; 137*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 138*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 139*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_a_h_test() nounwind { 142*9880d681SAndroid Build Coastguard Workerentry: 143*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_adds_a_h_ARG1 144*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_adds_a_h_ARG2 145*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.adds.a.h(<8 x i16> %0, <8 x i16> %1) 146*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_adds_a_h_RES 147*9880d681SAndroid Build Coastguard Worker ret void 148*9880d681SAndroid Build Coastguard Worker} 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.adds.a.h(<8 x i16>, <8 x i16>) nounwind 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_a_h_test: 153*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_a_h_ARG1) 154*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_a_h_ARG2) 155*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 156*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 157*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_a.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 158*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_a_h_RES) 159*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 160*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_a_h_test 161*9880d681SAndroid Build Coastguard Worker; 162*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 163*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 164*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 165*9880d681SAndroid Build Coastguard Worker 166*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_a_w_test() nounwind { 167*9880d681SAndroid Build Coastguard Workerentry: 168*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_adds_a_w_ARG1 169*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_adds_a_w_ARG2 170*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.adds.a.w(<4 x i32> %0, <4 x i32> %1) 171*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_adds_a_w_RES 172*9880d681SAndroid Build Coastguard Worker ret void 173*9880d681SAndroid Build Coastguard Worker} 174*9880d681SAndroid Build Coastguard Worker 175*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.adds.a.w(<4 x i32>, <4 x i32>) nounwind 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_a_w_test: 178*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_a_w_ARG1) 179*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_a_w_ARG2) 180*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 181*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 182*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_a.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 183*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_a_w_RES) 184*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 185*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_a_w_test 186*9880d681SAndroid Build Coastguard Worker; 187*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 188*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 189*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_a_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 190*9880d681SAndroid Build Coastguard Worker 191*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_a_d_test() nounwind { 192*9880d681SAndroid Build Coastguard Workerentry: 193*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_adds_a_d_ARG1 194*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_adds_a_d_ARG2 195*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.adds.a.d(<2 x i64> %0, <2 x i64> %1) 196*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_adds_a_d_RES 197*9880d681SAndroid Build Coastguard Worker ret void 198*9880d681SAndroid Build Coastguard Worker} 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.adds.a.d(<2 x i64>, <2 x i64>) nounwind 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_a_d_test: 203*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_a_d_ARG1) 204*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_a_d_ARG2) 205*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 206*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 207*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_a.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 208*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_a_d_RES) 209*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 210*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_a_d_test 211*9880d681SAndroid Build Coastguard Worker; 212*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_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 213*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_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 214*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_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 215*9880d681SAndroid Build Coastguard Worker 216*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_s_b_test() nounwind { 217*9880d681SAndroid Build Coastguard Workerentry: 218*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_adds_s_b_ARG1 219*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_adds_s_b_ARG2 220*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.adds.s.b(<16 x i8> %0, <16 x i8> %1) 221*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_adds_s_b_RES 222*9880d681SAndroid Build Coastguard Worker ret void 223*9880d681SAndroid Build Coastguard Worker} 224*9880d681SAndroid Build Coastguard Worker 225*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.adds.s.b(<16 x i8>, <16 x i8>) nounwind 226*9880d681SAndroid Build Coastguard Worker 227*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_s_b_test: 228*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_s_b_ARG1) 229*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_s_b_ARG2) 230*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 231*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 232*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_s.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 233*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_s_b_RES) 234*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 235*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_s_b_test 236*9880d681SAndroid Build Coastguard Worker; 237*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 238*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 239*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 240*9880d681SAndroid Build Coastguard Worker 241*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_s_h_test() nounwind { 242*9880d681SAndroid Build Coastguard Workerentry: 243*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_adds_s_h_ARG1 244*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_adds_s_h_ARG2 245*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.adds.s.h(<8 x i16> %0, <8 x i16> %1) 246*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_adds_s_h_RES 247*9880d681SAndroid Build Coastguard Worker ret void 248*9880d681SAndroid Build Coastguard Worker} 249*9880d681SAndroid Build Coastguard Worker 250*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.adds.s.h(<8 x i16>, <8 x i16>) nounwind 251*9880d681SAndroid Build Coastguard Worker 252*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_s_h_test: 253*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_s_h_ARG1) 254*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_s_h_ARG2) 255*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 256*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 257*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_s.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 258*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_s_h_RES) 259*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 260*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_s_h_test 261*9880d681SAndroid Build Coastguard Worker; 262*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 263*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 264*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 265*9880d681SAndroid Build Coastguard Worker 266*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_s_w_test() nounwind { 267*9880d681SAndroid Build Coastguard Workerentry: 268*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_adds_s_w_ARG1 269*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_adds_s_w_ARG2 270*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.adds.s.w(<4 x i32> %0, <4 x i32> %1) 271*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_adds_s_w_RES 272*9880d681SAndroid Build Coastguard Worker ret void 273*9880d681SAndroid Build Coastguard Worker} 274*9880d681SAndroid Build Coastguard Worker 275*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.adds.s.w(<4 x i32>, <4 x i32>) nounwind 276*9880d681SAndroid Build Coastguard Worker 277*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_s_w_test: 278*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_s_w_ARG1) 279*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_s_w_ARG2) 280*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 281*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 282*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_s.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 283*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_s_w_RES) 284*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 285*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_s_w_test 286*9880d681SAndroid Build Coastguard Worker; 287*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 288*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 289*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_s_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 290*9880d681SAndroid Build Coastguard Worker 291*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_s_d_test() nounwind { 292*9880d681SAndroid Build Coastguard Workerentry: 293*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_adds_s_d_ARG1 294*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_adds_s_d_ARG2 295*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.adds.s.d(<2 x i64> %0, <2 x i64> %1) 296*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_adds_s_d_RES 297*9880d681SAndroid Build Coastguard Worker ret void 298*9880d681SAndroid Build Coastguard Worker} 299*9880d681SAndroid Build Coastguard Worker 300*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.adds.s.d(<2 x i64>, <2 x i64>) nounwind 301*9880d681SAndroid Build Coastguard Worker 302*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_s_d_test: 303*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_s_d_ARG1) 304*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_s_d_ARG2) 305*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 306*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 307*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_s.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 308*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_s_d_RES) 309*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 310*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_s_d_test 311*9880d681SAndroid Build Coastguard Worker; 312*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_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 313*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_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 314*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_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 315*9880d681SAndroid Build Coastguard Worker 316*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_u_b_test() nounwind { 317*9880d681SAndroid Build Coastguard Workerentry: 318*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_adds_u_b_ARG1 319*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_adds_u_b_ARG2 320*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.adds.u.b(<16 x i8> %0, <16 x i8> %1) 321*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_adds_u_b_RES 322*9880d681SAndroid Build Coastguard Worker ret void 323*9880d681SAndroid Build Coastguard Worker} 324*9880d681SAndroid Build Coastguard Worker 325*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.adds.u.b(<16 x i8>, <16 x i8>) nounwind 326*9880d681SAndroid Build Coastguard Worker 327*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_u_b_test: 328*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_u_b_ARG1) 329*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_u_b_ARG2) 330*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 331*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 332*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_u.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 333*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_u_b_RES) 334*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 335*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_u_b_test 336*9880d681SAndroid Build Coastguard Worker; 337*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 338*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 339*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 340*9880d681SAndroid Build Coastguard Worker 341*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_u_h_test() nounwind { 342*9880d681SAndroid Build Coastguard Workerentry: 343*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_adds_u_h_ARG1 344*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_adds_u_h_ARG2 345*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.adds.u.h(<8 x i16> %0, <8 x i16> %1) 346*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_adds_u_h_RES 347*9880d681SAndroid Build Coastguard Worker ret void 348*9880d681SAndroid Build Coastguard Worker} 349*9880d681SAndroid Build Coastguard Worker 350*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.adds.u.h(<8 x i16>, <8 x i16>) nounwind 351*9880d681SAndroid Build Coastguard Worker 352*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_u_h_test: 353*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_u_h_ARG1) 354*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_u_h_ARG2) 355*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 356*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 357*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_u.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 358*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_u_h_RES) 359*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 360*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_u_h_test 361*9880d681SAndroid Build Coastguard Worker; 362*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 363*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 364*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 365*9880d681SAndroid Build Coastguard Worker 366*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_u_w_test() nounwind { 367*9880d681SAndroid Build Coastguard Workerentry: 368*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_adds_u_w_ARG1 369*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_adds_u_w_ARG2 370*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.adds.u.w(<4 x i32> %0, <4 x i32> %1) 371*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_adds_u_w_RES 372*9880d681SAndroid Build Coastguard Worker ret void 373*9880d681SAndroid Build Coastguard Worker} 374*9880d681SAndroid Build Coastguard Worker 375*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.adds.u.w(<4 x i32>, <4 x i32>) nounwind 376*9880d681SAndroid Build Coastguard Worker 377*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_u_w_test: 378*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_u_w_ARG1) 379*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_u_w_ARG2) 380*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 381*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 382*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_u.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 383*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_u_w_RES) 384*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 385*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_u_w_test 386*9880d681SAndroid Build Coastguard Worker; 387*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 388*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 389*9880d681SAndroid Build Coastguard Worker@llvm_mips_adds_u_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 390*9880d681SAndroid Build Coastguard Worker 391*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_adds_u_d_test() nounwind { 392*9880d681SAndroid Build Coastguard Workerentry: 393*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_adds_u_d_ARG1 394*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_adds_u_d_ARG2 395*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.adds.u.d(<2 x i64> %0, <2 x i64> %1) 396*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_adds_u_d_RES 397*9880d681SAndroid Build Coastguard Worker ret void 398*9880d681SAndroid Build Coastguard Worker} 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.adds.u.d(<2 x i64>, <2 x i64>) nounwind 401*9880d681SAndroid Build Coastguard Worker 402*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_adds_u_d_test: 403*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_adds_u_d_ARG1) 404*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_adds_u_d_ARG2) 405*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 406*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 407*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: adds_u.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 408*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_adds_u_d_RES) 409*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 410*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_adds_u_d_test 411*9880d681SAndroid Build Coastguard Worker; 412*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_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 413*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_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 414*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_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 415*9880d681SAndroid Build Coastguard Worker 416*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_addv_b_test() nounwind { 417*9880d681SAndroid Build Coastguard Workerentry: 418*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_addv_b_ARG1 419*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_addv_b_ARG2 420*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.addv.b(<16 x i8> %0, <16 x i8> %1) 421*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_addv_b_RES 422*9880d681SAndroid Build Coastguard Worker ret void 423*9880d681SAndroid Build Coastguard Worker} 424*9880d681SAndroid Build Coastguard Worker 425*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.addv.b(<16 x i8>, <16 x i8>) nounwind 426*9880d681SAndroid Build Coastguard Worker 427*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_addv_b_test: 428*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_addv_b_ARG1) 429*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_addv_b_ARG2) 430*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 431*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 432*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: addv.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 433*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_addv_b_RES) 434*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 435*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_addv_b_test 436*9880d681SAndroid Build Coastguard Worker; 437*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 438*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 439*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 440*9880d681SAndroid Build Coastguard Worker 441*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_addv_h_test() nounwind { 442*9880d681SAndroid Build Coastguard Workerentry: 443*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_addv_h_ARG1 444*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_addv_h_ARG2 445*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.addv.h(<8 x i16> %0, <8 x i16> %1) 446*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_addv_h_RES 447*9880d681SAndroid Build Coastguard Worker ret void 448*9880d681SAndroid Build Coastguard Worker} 449*9880d681SAndroid Build Coastguard Worker 450*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.addv.h(<8 x i16>, <8 x i16>) nounwind 451*9880d681SAndroid Build Coastguard Worker 452*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_addv_h_test: 453*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_addv_h_ARG1) 454*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_addv_h_ARG2) 455*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 456*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 457*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: addv.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 458*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_addv_h_RES) 459*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 460*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_addv_h_test 461*9880d681SAndroid Build Coastguard Worker; 462*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 463*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 464*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 465*9880d681SAndroid Build Coastguard Worker 466*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_addv_w_test() nounwind { 467*9880d681SAndroid Build Coastguard Workerentry: 468*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_addv_w_ARG1 469*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_addv_w_ARG2 470*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.addv.w(<4 x i32> %0, <4 x i32> %1) 471*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_addv_w_RES 472*9880d681SAndroid Build Coastguard Worker ret void 473*9880d681SAndroid Build Coastguard Worker} 474*9880d681SAndroid Build Coastguard Worker 475*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.addv.w(<4 x i32>, <4 x i32>) nounwind 476*9880d681SAndroid Build Coastguard Worker 477*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_addv_w_test: 478*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_addv_w_ARG1) 479*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_addv_w_ARG2) 480*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 481*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 482*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: addv.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 483*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_addv_w_RES) 484*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 485*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_addv_w_test 486*9880d681SAndroid Build Coastguard Worker; 487*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 488*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 489*9880d681SAndroid Build Coastguard Worker@llvm_mips_addv_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 490*9880d681SAndroid Build Coastguard Worker 491*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_addv_d_test() nounwind { 492*9880d681SAndroid Build Coastguard Workerentry: 493*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_addv_d_ARG1 494*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_addv_d_ARG2 495*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.addv.d(<2 x i64> %0, <2 x i64> %1) 496*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_addv_d_RES 497*9880d681SAndroid Build Coastguard Worker ret void 498*9880d681SAndroid Build Coastguard Worker} 499*9880d681SAndroid Build Coastguard Worker 500*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.addv.d(<2 x i64>, <2 x i64>) nounwind 501*9880d681SAndroid Build Coastguard Worker 502*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_addv_d_test: 503*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_addv_d_ARG1) 504*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_addv_d_ARG2) 505*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 506*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 507*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: addv.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 508*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_addv_d_RES) 509*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 510*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_addv_d_test 511*9880d681SAndroid Build Coastguard Worker; 512*9880d681SAndroid Build Coastguard Worker 513*9880d681SAndroid Build Coastguard Workerdefine void @addv_b_test() nounwind { 514*9880d681SAndroid Build Coastguard Workerentry: 515*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_addv_b_ARG1 516*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_addv_b_ARG2 517*9880d681SAndroid Build Coastguard Worker %2 = add <16 x i8> %0, %1 518*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_addv_b_RES 519*9880d681SAndroid Build Coastguard Worker ret void 520*9880d681SAndroid Build Coastguard Worker} 521*9880d681SAndroid Build Coastguard Worker 522*9880d681SAndroid Build Coastguard Worker; CHECK: addv_b_test: 523*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_addv_b_ARG1) 524*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_addv_b_ARG2) 525*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 526*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 527*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: addv.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 528*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_addv_b_RES) 529*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 530*9880d681SAndroid Build Coastguard Worker; CHECK: .size addv_b_test 531*9880d681SAndroid Build Coastguard Worker; 532*9880d681SAndroid Build Coastguard Worker 533*9880d681SAndroid Build Coastguard Workerdefine void @addv_h_test() nounwind { 534*9880d681SAndroid Build Coastguard Workerentry: 535*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_addv_h_ARG1 536*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_addv_h_ARG2 537*9880d681SAndroid Build Coastguard Worker %2 = add <8 x i16> %0, %1 538*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_addv_h_RES 539*9880d681SAndroid Build Coastguard Worker ret void 540*9880d681SAndroid Build Coastguard Worker} 541*9880d681SAndroid Build Coastguard Worker 542*9880d681SAndroid Build Coastguard Worker; CHECK: addv_h_test: 543*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_addv_h_ARG1) 544*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_addv_h_ARG2) 545*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 546*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 547*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: addv.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 548*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_addv_h_RES) 549*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 550*9880d681SAndroid Build Coastguard Worker; CHECK: .size addv_h_test 551*9880d681SAndroid Build Coastguard Worker; 552*9880d681SAndroid Build Coastguard Worker 553*9880d681SAndroid Build Coastguard Workerdefine void @addv_w_test() nounwind { 554*9880d681SAndroid Build Coastguard Workerentry: 555*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_addv_w_ARG1 556*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_addv_w_ARG2 557*9880d681SAndroid Build Coastguard Worker %2 = add <4 x i32> %0, %1 558*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_addv_w_RES 559*9880d681SAndroid Build Coastguard Worker ret void 560*9880d681SAndroid Build Coastguard Worker} 561*9880d681SAndroid Build Coastguard Worker 562*9880d681SAndroid Build Coastguard Worker; CHECK: addv_w_test: 563*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_addv_w_ARG1) 564*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_addv_w_ARG2) 565*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 566*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 567*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: addv.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 568*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_addv_w_RES) 569*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 570*9880d681SAndroid Build Coastguard Worker; CHECK: .size addv_w_test 571*9880d681SAndroid Build Coastguard Worker; 572*9880d681SAndroid Build Coastguard Worker 573*9880d681SAndroid Build Coastguard Workerdefine void @addv_d_test() nounwind { 574*9880d681SAndroid Build Coastguard Workerentry: 575*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_addv_d_ARG1 576*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_addv_d_ARG2 577*9880d681SAndroid Build Coastguard Worker %2 = add <2 x i64> %0, %1 578*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_addv_d_RES 579*9880d681SAndroid Build Coastguard Worker ret void 580*9880d681SAndroid Build Coastguard Worker} 581*9880d681SAndroid Build Coastguard Worker 582*9880d681SAndroid Build Coastguard Worker; CHECK: addv_d_test: 583*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_addv_d_ARG1) 584*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_addv_d_ARG2) 585*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 586*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 587*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: addv.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 588*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_addv_d_RES) 589*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 590*9880d681SAndroid Build Coastguard Worker; CHECK: .size addv_d_test 591*9880d681SAndroid Build Coastguard Worker; 592*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_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 593*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_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 594*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_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 595*9880d681SAndroid Build Coastguard Worker 596*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_asub_s_b_test() nounwind { 597*9880d681SAndroid Build Coastguard Workerentry: 598*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_asub_s_b_ARG1 599*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_asub_s_b_ARG2 600*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.asub.s.b(<16 x i8> %0, <16 x i8> %1) 601*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_asub_s_b_RES 602*9880d681SAndroid Build Coastguard Worker ret void 603*9880d681SAndroid Build Coastguard Worker} 604*9880d681SAndroid Build Coastguard Worker 605*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.asub.s.b(<16 x i8>, <16 x i8>) nounwind 606*9880d681SAndroid Build Coastguard Worker 607*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_asub_s_b_test: 608*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_asub_s_b_ARG1) 609*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_asub_s_b_ARG2) 610*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 611*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 612*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: asub_s.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 613*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_asub_s_b_RES) 614*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 615*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_asub_s_b_test 616*9880d681SAndroid Build Coastguard Worker; 617*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 618*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 619*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 620*9880d681SAndroid Build Coastguard Worker 621*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_asub_s_h_test() nounwind { 622*9880d681SAndroid Build Coastguard Workerentry: 623*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_asub_s_h_ARG1 624*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_asub_s_h_ARG2 625*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.asub.s.h(<8 x i16> %0, <8 x i16> %1) 626*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_asub_s_h_RES 627*9880d681SAndroid Build Coastguard Worker ret void 628*9880d681SAndroid Build Coastguard Worker} 629*9880d681SAndroid Build Coastguard Worker 630*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.asub.s.h(<8 x i16>, <8 x i16>) nounwind 631*9880d681SAndroid Build Coastguard Worker 632*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_asub_s_h_test: 633*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_asub_s_h_ARG1) 634*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_asub_s_h_ARG2) 635*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 636*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 637*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: asub_s.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 638*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_asub_s_h_RES) 639*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 640*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_asub_s_h_test 641*9880d681SAndroid Build Coastguard Worker; 642*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 643*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 644*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 645*9880d681SAndroid Build Coastguard Worker 646*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_asub_s_w_test() nounwind { 647*9880d681SAndroid Build Coastguard Workerentry: 648*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_asub_s_w_ARG1 649*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_asub_s_w_ARG2 650*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.asub.s.w(<4 x i32> %0, <4 x i32> %1) 651*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_asub_s_w_RES 652*9880d681SAndroid Build Coastguard Worker ret void 653*9880d681SAndroid Build Coastguard Worker} 654*9880d681SAndroid Build Coastguard Worker 655*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.asub.s.w(<4 x i32>, <4 x i32>) nounwind 656*9880d681SAndroid Build Coastguard Worker 657*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_asub_s_w_test: 658*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_asub_s_w_ARG1) 659*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_asub_s_w_ARG2) 660*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 661*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 662*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: asub_s.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 663*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_asub_s_w_RES) 664*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 665*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_asub_s_w_test 666*9880d681SAndroid Build Coastguard Worker; 667*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 668*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 669*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_s_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 670*9880d681SAndroid Build Coastguard Worker 671*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_asub_s_d_test() nounwind { 672*9880d681SAndroid Build Coastguard Workerentry: 673*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_asub_s_d_ARG1 674*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_asub_s_d_ARG2 675*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.asub.s.d(<2 x i64> %0, <2 x i64> %1) 676*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_asub_s_d_RES 677*9880d681SAndroid Build Coastguard Worker ret void 678*9880d681SAndroid Build Coastguard Worker} 679*9880d681SAndroid Build Coastguard Worker 680*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.asub.s.d(<2 x i64>, <2 x i64>) nounwind 681*9880d681SAndroid Build Coastguard Worker 682*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_asub_s_d_test: 683*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_asub_s_d_ARG1) 684*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_asub_s_d_ARG2) 685*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 686*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 687*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: asub_s.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 688*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_asub_s_d_RES) 689*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 690*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_asub_s_d_test 691*9880d681SAndroid Build Coastguard Worker; 692*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_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 693*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_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 694*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_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 695*9880d681SAndroid Build Coastguard Worker 696*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_asub_u_b_test() nounwind { 697*9880d681SAndroid Build Coastguard Workerentry: 698*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_asub_u_b_ARG1 699*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_asub_u_b_ARG2 700*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.asub.u.b(<16 x i8> %0, <16 x i8> %1) 701*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_asub_u_b_RES 702*9880d681SAndroid Build Coastguard Worker ret void 703*9880d681SAndroid Build Coastguard Worker} 704*9880d681SAndroid Build Coastguard Worker 705*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.asub.u.b(<16 x i8>, <16 x i8>) nounwind 706*9880d681SAndroid Build Coastguard Worker 707*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_asub_u_b_test: 708*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_asub_u_b_ARG1) 709*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_asub_u_b_ARG2) 710*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 711*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 712*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: asub_u.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 713*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_asub_u_b_RES) 714*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 715*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_asub_u_b_test 716*9880d681SAndroid Build Coastguard Worker; 717*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 718*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 719*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 720*9880d681SAndroid Build Coastguard Worker 721*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_asub_u_h_test() nounwind { 722*9880d681SAndroid Build Coastguard Workerentry: 723*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_asub_u_h_ARG1 724*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_asub_u_h_ARG2 725*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.asub.u.h(<8 x i16> %0, <8 x i16> %1) 726*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_asub_u_h_RES 727*9880d681SAndroid Build Coastguard Worker ret void 728*9880d681SAndroid Build Coastguard Worker} 729*9880d681SAndroid Build Coastguard Worker 730*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.asub.u.h(<8 x i16>, <8 x i16>) nounwind 731*9880d681SAndroid Build Coastguard Worker 732*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_asub_u_h_test: 733*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_asub_u_h_ARG1) 734*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_asub_u_h_ARG2) 735*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 736*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 737*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: asub_u.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 738*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_asub_u_h_RES) 739*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 740*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_asub_u_h_test 741*9880d681SAndroid Build Coastguard Worker; 742*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 743*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 744*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 745*9880d681SAndroid Build Coastguard Worker 746*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_asub_u_w_test() nounwind { 747*9880d681SAndroid Build Coastguard Workerentry: 748*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_asub_u_w_ARG1 749*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_asub_u_w_ARG2 750*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.asub.u.w(<4 x i32> %0, <4 x i32> %1) 751*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_asub_u_w_RES 752*9880d681SAndroid Build Coastguard Worker ret void 753*9880d681SAndroid Build Coastguard Worker} 754*9880d681SAndroid Build Coastguard Worker 755*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.asub.u.w(<4 x i32>, <4 x i32>) nounwind 756*9880d681SAndroid Build Coastguard Worker 757*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_asub_u_w_test: 758*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_asub_u_w_ARG1) 759*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_asub_u_w_ARG2) 760*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 761*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 762*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: asub_u.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 763*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_asub_u_w_RES) 764*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 765*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_asub_u_w_test 766*9880d681SAndroid Build Coastguard Worker; 767*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 768*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 769*9880d681SAndroid Build Coastguard Worker@llvm_mips_asub_u_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 770*9880d681SAndroid Build Coastguard Worker 771*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_asub_u_d_test() nounwind { 772*9880d681SAndroid Build Coastguard Workerentry: 773*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_asub_u_d_ARG1 774*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_asub_u_d_ARG2 775*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.asub.u.d(<2 x i64> %0, <2 x i64> %1) 776*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_asub_u_d_RES 777*9880d681SAndroid Build Coastguard Worker ret void 778*9880d681SAndroid Build Coastguard Worker} 779*9880d681SAndroid Build Coastguard Worker 780*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.asub.u.d(<2 x i64>, <2 x i64>) nounwind 781*9880d681SAndroid Build Coastguard Worker 782*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_asub_u_d_test: 783*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_asub_u_d_ARG1) 784*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_asub_u_d_ARG2) 785*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 786*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 787*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: asub_u.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 788*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_asub_u_d_RES) 789*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 790*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_asub_u_d_test 791*9880d681SAndroid Build Coastguard Worker; 792*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_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 793*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_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 794*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_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 795*9880d681SAndroid Build Coastguard Worker 796*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_ave_s_b_test() nounwind { 797*9880d681SAndroid Build Coastguard Workerentry: 798*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_ave_s_b_ARG1 799*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_ave_s_b_ARG2 800*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.ave.s.b(<16 x i8> %0, <16 x i8> %1) 801*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_ave_s_b_RES 802*9880d681SAndroid Build Coastguard Worker ret void 803*9880d681SAndroid Build Coastguard Worker} 804*9880d681SAndroid Build Coastguard Worker 805*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.ave.s.b(<16 x i8>, <16 x i8>) nounwind 806*9880d681SAndroid Build Coastguard Worker 807*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_ave_s_b_test: 808*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_ave_s_b_ARG1) 809*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_ave_s_b_ARG2) 810*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 811*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 812*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ave_s.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 813*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_ave_s_b_RES) 814*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 815*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_ave_s_b_test 816*9880d681SAndroid Build Coastguard Worker; 817*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 818*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 819*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 820*9880d681SAndroid Build Coastguard Worker 821*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_ave_s_h_test() nounwind { 822*9880d681SAndroid Build Coastguard Workerentry: 823*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_ave_s_h_ARG1 824*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_ave_s_h_ARG2 825*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.ave.s.h(<8 x i16> %0, <8 x i16> %1) 826*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_ave_s_h_RES 827*9880d681SAndroid Build Coastguard Worker ret void 828*9880d681SAndroid Build Coastguard Worker} 829*9880d681SAndroid Build Coastguard Worker 830*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.ave.s.h(<8 x i16>, <8 x i16>) nounwind 831*9880d681SAndroid Build Coastguard Worker 832*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_ave_s_h_test: 833*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_ave_s_h_ARG1) 834*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_ave_s_h_ARG2) 835*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 836*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 837*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ave_s.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 838*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_ave_s_h_RES) 839*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 840*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_ave_s_h_test 841*9880d681SAndroid Build Coastguard Worker; 842*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 843*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 844*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 845*9880d681SAndroid Build Coastguard Worker 846*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_ave_s_w_test() nounwind { 847*9880d681SAndroid Build Coastguard Workerentry: 848*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_ave_s_w_ARG1 849*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_ave_s_w_ARG2 850*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.ave.s.w(<4 x i32> %0, <4 x i32> %1) 851*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_ave_s_w_RES 852*9880d681SAndroid Build Coastguard Worker ret void 853*9880d681SAndroid Build Coastguard Worker} 854*9880d681SAndroid Build Coastguard Worker 855*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.ave.s.w(<4 x i32>, <4 x i32>) nounwind 856*9880d681SAndroid Build Coastguard Worker 857*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_ave_s_w_test: 858*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_ave_s_w_ARG1) 859*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_ave_s_w_ARG2) 860*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 861*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 862*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ave_s.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 863*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_ave_s_w_RES) 864*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 865*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_ave_s_w_test 866*9880d681SAndroid Build Coastguard Worker; 867*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 868*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 869*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_s_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 870*9880d681SAndroid Build Coastguard Worker 871*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_ave_s_d_test() nounwind { 872*9880d681SAndroid Build Coastguard Workerentry: 873*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_ave_s_d_ARG1 874*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_ave_s_d_ARG2 875*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.ave.s.d(<2 x i64> %0, <2 x i64> %1) 876*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_ave_s_d_RES 877*9880d681SAndroid Build Coastguard Worker ret void 878*9880d681SAndroid Build Coastguard Worker} 879*9880d681SAndroid Build Coastguard Worker 880*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.ave.s.d(<2 x i64>, <2 x i64>) nounwind 881*9880d681SAndroid Build Coastguard Worker 882*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_ave_s_d_test: 883*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_ave_s_d_ARG1) 884*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_ave_s_d_ARG2) 885*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 886*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 887*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ave_s.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 888*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_ave_s_d_RES) 889*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 890*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_ave_s_d_test 891*9880d681SAndroid Build Coastguard Worker; 892*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_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 893*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_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 894*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_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 895*9880d681SAndroid Build Coastguard Worker 896*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_ave_u_b_test() nounwind { 897*9880d681SAndroid Build Coastguard Workerentry: 898*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_ave_u_b_ARG1 899*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_ave_u_b_ARG2 900*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.ave.u.b(<16 x i8> %0, <16 x i8> %1) 901*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_ave_u_b_RES 902*9880d681SAndroid Build Coastguard Worker ret void 903*9880d681SAndroid Build Coastguard Worker} 904*9880d681SAndroid Build Coastguard Worker 905*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.ave.u.b(<16 x i8>, <16 x i8>) nounwind 906*9880d681SAndroid Build Coastguard Worker 907*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_ave_u_b_test: 908*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_ave_u_b_ARG1) 909*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_ave_u_b_ARG2) 910*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 911*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 912*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ave_u.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 913*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_ave_u_b_RES) 914*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 915*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_ave_u_b_test 916*9880d681SAndroid Build Coastguard Worker; 917*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 918*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 919*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 920*9880d681SAndroid Build Coastguard Worker 921*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_ave_u_h_test() nounwind { 922*9880d681SAndroid Build Coastguard Workerentry: 923*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_ave_u_h_ARG1 924*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_ave_u_h_ARG2 925*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.ave.u.h(<8 x i16> %0, <8 x i16> %1) 926*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_ave_u_h_RES 927*9880d681SAndroid Build Coastguard Worker ret void 928*9880d681SAndroid Build Coastguard Worker} 929*9880d681SAndroid Build Coastguard Worker 930*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.ave.u.h(<8 x i16>, <8 x i16>) nounwind 931*9880d681SAndroid Build Coastguard Worker 932*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_ave_u_h_test: 933*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_ave_u_h_ARG1) 934*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_ave_u_h_ARG2) 935*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 936*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 937*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ave_u.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 938*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_ave_u_h_RES) 939*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 940*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_ave_u_h_test 941*9880d681SAndroid Build Coastguard Worker; 942*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 943*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 944*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 945*9880d681SAndroid Build Coastguard Worker 946*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_ave_u_w_test() nounwind { 947*9880d681SAndroid Build Coastguard Workerentry: 948*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_ave_u_w_ARG1 949*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_ave_u_w_ARG2 950*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.ave.u.w(<4 x i32> %0, <4 x i32> %1) 951*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_ave_u_w_RES 952*9880d681SAndroid Build Coastguard Worker ret void 953*9880d681SAndroid Build Coastguard Worker} 954*9880d681SAndroid Build Coastguard Worker 955*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.ave.u.w(<4 x i32>, <4 x i32>) nounwind 956*9880d681SAndroid Build Coastguard Worker 957*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_ave_u_w_test: 958*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_ave_u_w_ARG1) 959*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_ave_u_w_ARG2) 960*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 961*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 962*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ave_u.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 963*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_ave_u_w_RES) 964*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 965*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_ave_u_w_test 966*9880d681SAndroid Build Coastguard Worker; 967*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 968*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 969*9880d681SAndroid Build Coastguard Worker@llvm_mips_ave_u_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 970*9880d681SAndroid Build Coastguard Worker 971*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_ave_u_d_test() nounwind { 972*9880d681SAndroid Build Coastguard Workerentry: 973*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_ave_u_d_ARG1 974*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_ave_u_d_ARG2 975*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.ave.u.d(<2 x i64> %0, <2 x i64> %1) 976*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_ave_u_d_RES 977*9880d681SAndroid Build Coastguard Worker ret void 978*9880d681SAndroid Build Coastguard Worker} 979*9880d681SAndroid Build Coastguard Worker 980*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.ave.u.d(<2 x i64>, <2 x i64>) nounwind 981*9880d681SAndroid Build Coastguard Worker 982*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_ave_u_d_test: 983*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_ave_u_d_ARG1) 984*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_ave_u_d_ARG2) 985*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 986*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 987*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ave_u.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 988*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_ave_u_d_RES) 989*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 990*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_ave_u_d_test 991*9880d681SAndroid Build Coastguard Worker; 992*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_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 993*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_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 994*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_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 995*9880d681SAndroid Build Coastguard Worker 996*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_aver_s_b_test() nounwind { 997*9880d681SAndroid Build Coastguard Workerentry: 998*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_aver_s_b_ARG1 999*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_aver_s_b_ARG2 1000*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.aver.s.b(<16 x i8> %0, <16 x i8> %1) 1001*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_aver_s_b_RES 1002*9880d681SAndroid Build Coastguard Worker ret void 1003*9880d681SAndroid Build Coastguard Worker} 1004*9880d681SAndroid Build Coastguard Worker 1005*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.aver.s.b(<16 x i8>, <16 x i8>) nounwind 1006*9880d681SAndroid Build Coastguard Worker 1007*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_aver_s_b_test: 1008*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_aver_s_b_ARG1) 1009*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_aver_s_b_ARG2) 1010*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 1011*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 1012*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: aver_s.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 1013*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_aver_s_b_RES) 1014*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 1015*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_aver_s_b_test 1016*9880d681SAndroid Build Coastguard Worker; 1017*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 1018*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 1019*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 1020*9880d681SAndroid Build Coastguard Worker 1021*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_aver_s_h_test() nounwind { 1022*9880d681SAndroid Build Coastguard Workerentry: 1023*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_aver_s_h_ARG1 1024*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_aver_s_h_ARG2 1025*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.aver.s.h(<8 x i16> %0, <8 x i16> %1) 1026*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_aver_s_h_RES 1027*9880d681SAndroid Build Coastguard Worker ret void 1028*9880d681SAndroid Build Coastguard Worker} 1029*9880d681SAndroid Build Coastguard Worker 1030*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.aver.s.h(<8 x i16>, <8 x i16>) nounwind 1031*9880d681SAndroid Build Coastguard Worker 1032*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_aver_s_h_test: 1033*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_aver_s_h_ARG1) 1034*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_aver_s_h_ARG2) 1035*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 1036*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 1037*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: aver_s.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 1038*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_aver_s_h_RES) 1039*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 1040*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_aver_s_h_test 1041*9880d681SAndroid Build Coastguard Worker; 1042*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 1043*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 1044*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 1045*9880d681SAndroid Build Coastguard Worker 1046*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_aver_s_w_test() nounwind { 1047*9880d681SAndroid Build Coastguard Workerentry: 1048*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_aver_s_w_ARG1 1049*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_aver_s_w_ARG2 1050*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.aver.s.w(<4 x i32> %0, <4 x i32> %1) 1051*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_aver_s_w_RES 1052*9880d681SAndroid Build Coastguard Worker ret void 1053*9880d681SAndroid Build Coastguard Worker} 1054*9880d681SAndroid Build Coastguard Worker 1055*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.aver.s.w(<4 x i32>, <4 x i32>) nounwind 1056*9880d681SAndroid Build Coastguard Worker 1057*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_aver_s_w_test: 1058*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_aver_s_w_ARG1) 1059*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_aver_s_w_ARG2) 1060*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 1061*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 1062*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: aver_s.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 1063*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_aver_s_w_RES) 1064*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 1065*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_aver_s_w_test 1066*9880d681SAndroid Build Coastguard Worker; 1067*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 1068*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 1069*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_s_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 1070*9880d681SAndroid Build Coastguard Worker 1071*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_aver_s_d_test() nounwind { 1072*9880d681SAndroid Build Coastguard Workerentry: 1073*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_aver_s_d_ARG1 1074*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_aver_s_d_ARG2 1075*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.aver.s.d(<2 x i64> %0, <2 x i64> %1) 1076*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_aver_s_d_RES 1077*9880d681SAndroid Build Coastguard Worker ret void 1078*9880d681SAndroid Build Coastguard Worker} 1079*9880d681SAndroid Build Coastguard Worker 1080*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.aver.s.d(<2 x i64>, <2 x i64>) nounwind 1081*9880d681SAndroid Build Coastguard Worker 1082*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_aver_s_d_test: 1083*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_aver_s_d_ARG1) 1084*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_aver_s_d_ARG2) 1085*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 1086*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 1087*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: aver_s.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 1088*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_aver_s_d_RES) 1089*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 1090*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_aver_s_d_test 1091*9880d681SAndroid Build Coastguard Worker; 1092*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_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 1093*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_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 1094*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_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 1095*9880d681SAndroid Build Coastguard Worker 1096*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_aver_u_b_test() nounwind { 1097*9880d681SAndroid Build Coastguard Workerentry: 1098*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* @llvm_mips_aver_u_b_ARG1 1099*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* @llvm_mips_aver_u_b_ARG2 1100*9880d681SAndroid Build Coastguard Worker %2 = tail call <16 x i8> @llvm.mips.aver.u.b(<16 x i8> %0, <16 x i8> %1) 1101*9880d681SAndroid Build Coastguard Worker store <16 x i8> %2, <16 x i8>* @llvm_mips_aver_u_b_RES 1102*9880d681SAndroid Build Coastguard Worker ret void 1103*9880d681SAndroid Build Coastguard Worker} 1104*9880d681SAndroid Build Coastguard Worker 1105*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.aver.u.b(<16 x i8>, <16 x i8>) nounwind 1106*9880d681SAndroid Build Coastguard Worker 1107*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_aver_u_b_test: 1108*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_aver_u_b_ARG1) 1109*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_aver_u_b_ARG2) 1110*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WS:\$w[0-9]+]], 0([[R1]]) 1111*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.b [[WT:\$w[0-9]+]], 0([[R2]]) 1112*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: aver_u.b [[WD:\$w[0-9]+]], [[WS]], [[WT]] 1113*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_aver_u_b_RES) 1114*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.b [[WD]], 0([[R3]]) 1115*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_aver_u_b_test 1116*9880d681SAndroid Build Coastguard Worker; 1117*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_h_ARG1 = global <8 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>, align 16 1118*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_h_ARG2 = global <8 x i16> <i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>, align 16 1119*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_h_RES = global <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0>, align 16 1120*9880d681SAndroid Build Coastguard Worker 1121*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_aver_u_h_test() nounwind { 1122*9880d681SAndroid Build Coastguard Workerentry: 1123*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* @llvm_mips_aver_u_h_ARG1 1124*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* @llvm_mips_aver_u_h_ARG2 1125*9880d681SAndroid Build Coastguard Worker %2 = tail call <8 x i16> @llvm.mips.aver.u.h(<8 x i16> %0, <8 x i16> %1) 1126*9880d681SAndroid Build Coastguard Worker store <8 x i16> %2, <8 x i16>* @llvm_mips_aver_u_h_RES 1127*9880d681SAndroid Build Coastguard Worker ret void 1128*9880d681SAndroid Build Coastguard Worker} 1129*9880d681SAndroid Build Coastguard Worker 1130*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.aver.u.h(<8 x i16>, <8 x i16>) nounwind 1131*9880d681SAndroid Build Coastguard Worker 1132*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_aver_u_h_test: 1133*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_aver_u_h_ARG1) 1134*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_aver_u_h_ARG2) 1135*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WS:\$w[0-9]+]], 0([[R1]]) 1136*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.h [[WT:\$w[0-9]+]], 0([[R2]]) 1137*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: aver_u.h [[WD:\$w[0-9]+]], [[WS]], [[WT]] 1138*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_aver_u_h_RES) 1139*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.h [[WD]], 0([[R3]]) 1140*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_aver_u_h_test 1141*9880d681SAndroid Build Coastguard Worker; 1142*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_w_ARG1 = global <4 x i32> <i32 0, i32 1, i32 2, i32 3>, align 16 1143*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_w_ARG2 = global <4 x i32> <i32 4, i32 5, i32 6, i32 7>, align 16 1144*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_w_RES = global <4 x i32> <i32 0, i32 0, i32 0, i32 0>, align 16 1145*9880d681SAndroid Build Coastguard Worker 1146*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_aver_u_w_test() nounwind { 1147*9880d681SAndroid Build Coastguard Workerentry: 1148*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* @llvm_mips_aver_u_w_ARG1 1149*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* @llvm_mips_aver_u_w_ARG2 1150*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i32> @llvm.mips.aver.u.w(<4 x i32> %0, <4 x i32> %1) 1151*9880d681SAndroid Build Coastguard Worker store <4 x i32> %2, <4 x i32>* @llvm_mips_aver_u_w_RES 1152*9880d681SAndroid Build Coastguard Worker ret void 1153*9880d681SAndroid Build Coastguard Worker} 1154*9880d681SAndroid Build Coastguard Worker 1155*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.aver.u.w(<4 x i32>, <4 x i32>) nounwind 1156*9880d681SAndroid Build Coastguard Worker 1157*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_aver_u_w_test: 1158*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_aver_u_w_ARG1) 1159*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_aver_u_w_ARG2) 1160*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WS:\$w[0-9]+]], 0([[R1]]) 1161*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.w [[WT:\$w[0-9]+]], 0([[R2]]) 1162*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: aver_u.w [[WD:\$w[0-9]+]], [[WS]], [[WT]] 1163*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_aver_u_w_RES) 1164*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.w [[WD]], 0([[R3]]) 1165*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_aver_u_w_test 1166*9880d681SAndroid Build Coastguard Worker; 1167*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_d_ARG1 = global <2 x i64> <i64 0, i64 1>, align 16 1168*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_d_ARG2 = global <2 x i64> <i64 2, i64 3>, align 16 1169*9880d681SAndroid Build Coastguard Worker@llvm_mips_aver_u_d_RES = global <2 x i64> <i64 0, i64 0>, align 16 1170*9880d681SAndroid Build Coastguard Worker 1171*9880d681SAndroid Build Coastguard Workerdefine void @llvm_mips_aver_u_d_test() nounwind { 1172*9880d681SAndroid Build Coastguard Workerentry: 1173*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* @llvm_mips_aver_u_d_ARG1 1174*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* @llvm_mips_aver_u_d_ARG2 1175*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i64> @llvm.mips.aver.u.d(<2 x i64> %0, <2 x i64> %1) 1176*9880d681SAndroid Build Coastguard Worker store <2 x i64> %2, <2 x i64>* @llvm_mips_aver_u_d_RES 1177*9880d681SAndroid Build Coastguard Worker ret void 1178*9880d681SAndroid Build Coastguard Worker} 1179*9880d681SAndroid Build Coastguard Worker 1180*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.aver.u.d(<2 x i64>, <2 x i64>) nounwind 1181*9880d681SAndroid Build Coastguard Worker 1182*9880d681SAndroid Build Coastguard Worker; CHECK: llvm_mips_aver_u_d_test: 1183*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R1:\$[0-9]+]], %got(llvm_mips_aver_u_d_ARG1) 1184*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R2:\$[0-9]+]], %got(llvm_mips_aver_u_d_ARG2) 1185*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WS:\$w[0-9]+]], 0([[R1]]) 1186*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ld.d [[WT:\$w[0-9]+]], 0([[R2]]) 1187*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: aver_u.d [[WD:\$w[0-9]+]], [[WS]], [[WT]] 1188*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: lw [[R3:\$[0-9]+]], %got(llvm_mips_aver_u_d_RES) 1189*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: st.d [[WD]], 0([[R3]]) 1190*9880d681SAndroid Build Coastguard Worker; CHECK: .size llvm_mips_aver_u_d_test 1191*9880d681SAndroid Build Coastguard Worker; 1192