1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=+dspr2 < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i64 @test__builtin_mips_dpa_w_ph1(i32 %i0, i32, i64 %a0, i32 %a1.coerce, i32 %a2.coerce) nounwind readnone { 4*9880d681SAndroid Build Coastguard Workerentry: 5*9880d681SAndroid Build Coastguard Worker; CHECK: dpa.w.ph 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 8*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32 %a2.coerce to <2 x i16> 9*9880d681SAndroid Build Coastguard Worker %3 = tail call i64 @llvm.mips.dpa.w.ph(i64 %a0, <2 x i16> %1, <2 x i16> %2) 10*9880d681SAndroid Build Coastguard Worker ret i64 %3 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.mips.dpa.w.ph(i64, <2 x i16>, <2 x i16>) nounwind readnone 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefine i64 @test__builtin_mips_dps_w_ph1(i32 %i0, i32, i64 %a0, i32 %a1.coerce, i32 %a2.coerce) nounwind readnone { 16*9880d681SAndroid Build Coastguard Workerentry: 17*9880d681SAndroid Build Coastguard Worker; CHECK: dps.w.ph 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 20*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32 %a2.coerce to <2 x i16> 21*9880d681SAndroid Build Coastguard Worker %3 = tail call i64 @llvm.mips.dps.w.ph(i64 %a0, <2 x i16> %1, <2 x i16> %2) 22*9880d681SAndroid Build Coastguard Worker ret i64 %3 23*9880d681SAndroid Build Coastguard Worker} 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.mips.dps.w.ph(i64, <2 x i16>, <2 x i16>) nounwind readnone 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine i64 @test__builtin_mips_mulsa_w_ph1(i32 %i0, i32, i64 %a0, i32 %a1.coerce, i32 %a2.coerce) nounwind readnone { 28*9880d681SAndroid Build Coastguard Workerentry: 29*9880d681SAndroid Build Coastguard Worker; CHECK: mulsa.w.ph 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 32*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32 %a2.coerce to <2 x i16> 33*9880d681SAndroid Build Coastguard Worker %3 = tail call i64 @llvm.mips.mulsa.w.ph(i64 %a0, <2 x i16> %1, <2 x i16> %2) 34*9880d681SAndroid Build Coastguard Worker ret i64 %3 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.mips.mulsa.w.ph(i64, <2 x i16>, <2 x i16>) nounwind readnone 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Workerdefine i64 @test__builtin_mips_dpax_w_ph1(i32 %i0, i32, i64 %a0, i32 %a1.coerce, i32 %a2.coerce) nounwind readnone { 40*9880d681SAndroid Build Coastguard Workerentry: 41*9880d681SAndroid Build Coastguard Worker; CHECK: dpax.w.ph 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 44*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32 %a2.coerce to <2 x i16> 45*9880d681SAndroid Build Coastguard Worker %3 = tail call i64 @llvm.mips.dpax.w.ph(i64 %a0, <2 x i16> %1, <2 x i16> %2) 46*9880d681SAndroid Build Coastguard Worker ret i64 %3 47*9880d681SAndroid Build Coastguard Worker} 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.mips.dpax.w.ph(i64, <2 x i16>, <2 x i16>) nounwind readnone 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workerdefine i64 @test__builtin_mips_dpsx_w_ph1(i32 %i0, i32, i64 %a0, i32 %a1.coerce, i32 %a2.coerce) nounwind readnone { 52*9880d681SAndroid Build Coastguard Workerentry: 53*9880d681SAndroid Build Coastguard Worker; CHECK: dpsx.w.ph 54*9880d681SAndroid Build Coastguard Worker 55*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 56*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32 %a2.coerce to <2 x i16> 57*9880d681SAndroid Build Coastguard Worker %3 = tail call i64 @llvm.mips.dpsx.w.ph(i64 %a0, <2 x i16> %1, <2 x i16> %2) 58*9880d681SAndroid Build Coastguard Worker ret i64 %3 59*9880d681SAndroid Build Coastguard Worker} 60*9880d681SAndroid Build Coastguard Worker 61*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.mips.dpsx.w.ph(i64, <2 x i16>, <2 x i16>) nounwind readnone 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Workerdefine i64 @test__builtin_mips_dpaqx_s_w_ph1(i32 %i0, i32, i64 %a0, i32 %a1.coerce, i32 %a2.coerce) nounwind { 64*9880d681SAndroid Build Coastguard Workerentry: 65*9880d681SAndroid Build Coastguard Worker; CHECK: dpaqx_s.w.ph 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 68*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32 %a2.coerce to <2 x i16> 69*9880d681SAndroid Build Coastguard Worker %3 = tail call i64 @llvm.mips.dpaqx.s.w.ph(i64 %a0, <2 x i16> %1, <2 x i16> %2) 70*9880d681SAndroid Build Coastguard Worker ret i64 %3 71*9880d681SAndroid Build Coastguard Worker} 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.mips.dpaqx.s.w.ph(i64, <2 x i16>, <2 x i16>) nounwind 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerdefine i64 @test__builtin_mips_dpaqx_sa_w_ph1(i32 %i0, i32, i64 %a0, i32 %a1.coerce, i32 %a2.coerce) nounwind { 76*9880d681SAndroid Build Coastguard Workerentry: 77*9880d681SAndroid Build Coastguard Worker; CHECK: dpaqx_sa.w.ph 78*9880d681SAndroid Build Coastguard Worker 79*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 80*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32 %a2.coerce to <2 x i16> 81*9880d681SAndroid Build Coastguard Worker %3 = tail call i64 @llvm.mips.dpaqx.sa.w.ph(i64 %a0, <2 x i16> %1, <2 x i16> %2) 82*9880d681SAndroid Build Coastguard Worker ret i64 %3 83*9880d681SAndroid Build Coastguard Worker} 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.mips.dpaqx.sa.w.ph(i64, <2 x i16>, <2 x i16>) nounwind 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Workerdefine i64 @test__builtin_mips_dpsqx_s_w_ph1(i32 %i0, i32, i64 %a0, i32 %a1.coerce, i32 %a2.coerce) nounwind { 88*9880d681SAndroid Build Coastguard Workerentry: 89*9880d681SAndroid Build Coastguard Worker; CHECK: dpsqx_s.w.ph 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 92*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32 %a2.coerce to <2 x i16> 93*9880d681SAndroid Build Coastguard Worker %3 = tail call i64 @llvm.mips.dpsqx.s.w.ph(i64 %a0, <2 x i16> %1, <2 x i16> %2) 94*9880d681SAndroid Build Coastguard Worker ret i64 %3 95*9880d681SAndroid Build Coastguard Worker} 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.mips.dpsqx.s.w.ph(i64, <2 x i16>, <2 x i16>) nounwind 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Workerdefine i64 @test__builtin_mips_dpsqx_sa_w_ph1(i32 %i0, i32, i64 %a0, i32 %a1.coerce, i32 %a2.coerce) nounwind { 100*9880d681SAndroid Build Coastguard Workerentry: 101*9880d681SAndroid Build Coastguard Worker; CHECK: dpsqx_sa.w.ph 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 104*9880d681SAndroid Build Coastguard Worker %2 = bitcast i32 %a2.coerce to <2 x i16> 105*9880d681SAndroid Build Coastguard Worker %3 = tail call i64 @llvm.mips.dpsqx.sa.w.ph(i64 %a0, <2 x i16> %1, <2 x i16> %2) 106*9880d681SAndroid Build Coastguard Worker ret i64 %3 107*9880d681SAndroid Build Coastguard Worker} 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Workerdeclare i64 @llvm.mips.dpsqx.sa.w.ph(i64, <2 x i16>, <2 x i16>) nounwind 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_addu_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 112*9880d681SAndroid Build Coastguard Workerentry: 113*9880d681SAndroid Build Coastguard Worker; CHECK: addu.ph 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 116*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 117*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.addu.ph(<2 x i16> %0, <2 x i16> %1) 118*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 119*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 120*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 121*9880d681SAndroid Build Coastguard Worker} 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.addu.ph(<2 x i16>, <2 x i16>) nounwind 124*9880d681SAndroid Build Coastguard Worker 125*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_addu_s_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 126*9880d681SAndroid Build Coastguard Workerentry: 127*9880d681SAndroid Build Coastguard Worker; CHECK: addu_s.ph 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 130*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 131*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.addu.s.ph(<2 x i16> %0, <2 x i16> %1) 132*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 133*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 134*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 135*9880d681SAndroid Build Coastguard Worker} 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.addu.s.ph(<2 x i16>, <2 x i16>) nounwind 138*9880d681SAndroid Build Coastguard Worker 139*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_mulq_s_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 140*9880d681SAndroid Build Coastguard Workerentry: 141*9880d681SAndroid Build Coastguard Worker; CHECK: mulq_s.ph 142*9880d681SAndroid Build Coastguard Worker 143*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 144*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 145*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.mulq.s.ph(<2 x i16> %0, <2 x i16> %1) 146*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 147*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 148*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 149*9880d681SAndroid Build Coastguard Worker} 150*9880d681SAndroid Build Coastguard Worker 151*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.mulq.s.ph(<2 x i16>, <2 x i16>) nounwind 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_subu_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 154*9880d681SAndroid Build Coastguard Workerentry: 155*9880d681SAndroid Build Coastguard Worker; CHECK: subu.ph 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 158*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 159*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.subu.ph(<2 x i16> %0, <2 x i16> %1) 160*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 161*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 162*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 163*9880d681SAndroid Build Coastguard Worker} 164*9880d681SAndroid Build Coastguard Worker 165*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.subu.ph(<2 x i16>, <2 x i16>) nounwind 166*9880d681SAndroid Build Coastguard Worker 167*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_subu_s_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 168*9880d681SAndroid Build Coastguard Workerentry: 169*9880d681SAndroid Build Coastguard Worker; CHECK: subu_s.ph 170*9880d681SAndroid Build Coastguard Worker 171*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 172*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 173*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.subu.s.ph(<2 x i16> %0, <2 x i16> %1) 174*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 175*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 176*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 177*9880d681SAndroid Build Coastguard Worker} 178*9880d681SAndroid Build Coastguard Worker 179*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.subu.s.ph(<2 x i16>, <2 x i16>) nounwind 180*9880d681SAndroid Build Coastguard Worker 181*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_cmpgdu_eq_qb1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 182*9880d681SAndroid Build Coastguard Workerentry: 183*9880d681SAndroid Build Coastguard Worker; CHECK: cmpgdu.eq.qb 184*9880d681SAndroid Build Coastguard Worker 185*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 186*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <4 x i8> 187*9880d681SAndroid Build Coastguard Worker %2 = tail call i32 @llvm.mips.cmpgdu.eq.qb(<4 x i8> %0, <4 x i8> %1) 188*9880d681SAndroid Build Coastguard Worker ret i32 %2 189*9880d681SAndroid Build Coastguard Worker} 190*9880d681SAndroid Build Coastguard Worker 191*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.cmpgdu.eq.qb(<4 x i8>, <4 x i8>) nounwind 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_cmpgdu_lt_qb1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 194*9880d681SAndroid Build Coastguard Workerentry: 195*9880d681SAndroid Build Coastguard Worker; CHECK: cmpgdu.lt.qb 196*9880d681SAndroid Build Coastguard Worker 197*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 198*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <4 x i8> 199*9880d681SAndroid Build Coastguard Worker %2 = tail call i32 @llvm.mips.cmpgdu.lt.qb(<4 x i8> %0, <4 x i8> %1) 200*9880d681SAndroid Build Coastguard Worker ret i32 %2 201*9880d681SAndroid Build Coastguard Worker} 202*9880d681SAndroid Build Coastguard Worker 203*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.cmpgdu.lt.qb(<4 x i8>, <4 x i8>) nounwind 204*9880d681SAndroid Build Coastguard Worker 205*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_cmpgdu_le_qb1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 206*9880d681SAndroid Build Coastguard Workerentry: 207*9880d681SAndroid Build Coastguard Worker; CHECK: cmpgdu.le.qb 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 210*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <4 x i8> 211*9880d681SAndroid Build Coastguard Worker %2 = tail call i32 @llvm.mips.cmpgdu.le.qb(<4 x i8> %0, <4 x i8> %1) 212*9880d681SAndroid Build Coastguard Worker ret i32 %2 213*9880d681SAndroid Build Coastguard Worker} 214*9880d681SAndroid Build Coastguard Worker 215*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.cmpgdu.le.qb(<4 x i8>, <4 x i8>) nounwind 216*9880d681SAndroid Build Coastguard Worker 217*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_precr_qb_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 218*9880d681SAndroid Build Coastguard Workerentry: 219*9880d681SAndroid Build Coastguard Worker; CHECK: precr.qb.ph 220*9880d681SAndroid Build Coastguard Worker 221*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 222*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 223*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i8> @llvm.mips.precr.qb.ph(<2 x i16> %0, <2 x i16> %1) 224*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i8> %2 to i32 225*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 226*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 227*9880d681SAndroid Build Coastguard Worker} 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Workerdeclare <4 x i8> @llvm.mips.precr.qb.ph(<2 x i16>, <2 x i16>) nounwind 230*9880d681SAndroid Build Coastguard Worker 231*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_precr_sra_ph_w1(i32 %i0, i32 %a0, i32 %a1) nounwind readnone { 232*9880d681SAndroid Build Coastguard Workerentry: 233*9880d681SAndroid Build Coastguard Worker; CHECK: precr_sra.ph.w 234*9880d681SAndroid Build Coastguard Worker 235*9880d681SAndroid Build Coastguard Worker %0 = tail call <2 x i16> @llvm.mips.precr.sra.ph.w(i32 %a0, i32 %a1, i32 15) 236*9880d681SAndroid Build Coastguard Worker %1 = bitcast <2 x i16> %0 to i32 237*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %1, 0 238*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 239*9880d681SAndroid Build Coastguard Worker} 240*9880d681SAndroid Build Coastguard Worker 241*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.precr.sra.ph.w(i32, i32, i32) nounwind readnone 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_precr_sra_r_ph_w1(i32 %i0, i32 %a0, i32 %a1) nounwind readnone { 244*9880d681SAndroid Build Coastguard Workerentry: 245*9880d681SAndroid Build Coastguard Worker; CHECK: precr_sra_r.ph.w 246*9880d681SAndroid Build Coastguard Worker 247*9880d681SAndroid Build Coastguard Worker %0 = tail call <2 x i16> @llvm.mips.precr.sra.r.ph.w(i32 %a0, i32 %a1, i32 15) 248*9880d681SAndroid Build Coastguard Worker %1 = bitcast <2 x i16> %0 to i32 249*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %1, 0 250*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 251*9880d681SAndroid Build Coastguard Worker} 252*9880d681SAndroid Build Coastguard Worker 253*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.precr.sra.r.ph.w(i32, i32, i32) nounwind readnone 254*9880d681SAndroid Build Coastguard Worker 255*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_shra_qb1(i32 %i0, i32 %a0.coerce) nounwind readnone { 256*9880d681SAndroid Build Coastguard Workerentry: 257*9880d681SAndroid Build Coastguard Worker; CHECK: shra.qb 258*9880d681SAndroid Build Coastguard Worker 259*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 260*9880d681SAndroid Build Coastguard Worker %1 = tail call <4 x i8> @llvm.mips.shra.qb(<4 x i8> %0, i32 3) 261*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i8> %1 to i32 262*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %2, 0 263*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 264*9880d681SAndroid Build Coastguard Worker} 265*9880d681SAndroid Build Coastguard Worker 266*9880d681SAndroid Build Coastguard Workerdeclare <4 x i8> @llvm.mips.shra.qb(<4 x i8>, i32) nounwind readnone 267*9880d681SAndroid Build Coastguard Worker 268*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_shra_r_qb1(i32 %i0, i32 %a0.coerce) nounwind readnone { 269*9880d681SAndroid Build Coastguard Workerentry: 270*9880d681SAndroid Build Coastguard Worker; CHECK: shra_r.qb 271*9880d681SAndroid Build Coastguard Worker 272*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 273*9880d681SAndroid Build Coastguard Worker %1 = tail call <4 x i8> @llvm.mips.shra.r.qb(<4 x i8> %0, i32 3) 274*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i8> %1 to i32 275*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %2, 0 276*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 277*9880d681SAndroid Build Coastguard Worker} 278*9880d681SAndroid Build Coastguard Worker 279*9880d681SAndroid Build Coastguard Workerdeclare <4 x i8> @llvm.mips.shra.r.qb(<4 x i8>, i32) nounwind readnone 280*9880d681SAndroid Build Coastguard Worker 281*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_shra_qb2(i32 %i0, i32 %a0.coerce, i32 %a1) nounwind readnone { 282*9880d681SAndroid Build Coastguard Workerentry: 283*9880d681SAndroid Build Coastguard Worker; CHECK: shrav.qb 284*9880d681SAndroid Build Coastguard Worker 285*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 286*9880d681SAndroid Build Coastguard Worker %1 = tail call <4 x i8> @llvm.mips.shra.qb(<4 x i8> %0, i32 %a1) 287*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i8> %1 to i32 288*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %2, 0 289*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 290*9880d681SAndroid Build Coastguard Worker} 291*9880d681SAndroid Build Coastguard Worker 292*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_shra_r_qb2(i32 %i0, i32 %a0.coerce, i32 %a1) nounwind readnone { 293*9880d681SAndroid Build Coastguard Workerentry: 294*9880d681SAndroid Build Coastguard Worker; CHECK: shrav_r.qb 295*9880d681SAndroid Build Coastguard Worker 296*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 297*9880d681SAndroid Build Coastguard Worker %1 = tail call <4 x i8> @llvm.mips.shra.r.qb(<4 x i8> %0, i32 %a1) 298*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i8> %1 to i32 299*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %2, 0 300*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 301*9880d681SAndroid Build Coastguard Worker} 302*9880d681SAndroid Build Coastguard Worker 303*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_shrl_ph1(i32 %i0, i32 %a0.coerce) nounwind readnone { 304*9880d681SAndroid Build Coastguard Workerentry: 305*9880d681SAndroid Build Coastguard Worker; CHECK: shrl.ph 306*9880d681SAndroid Build Coastguard Worker 307*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 308*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i16> @llvm.mips.shrl.ph(<2 x i16> %0, i32 7) 309*9880d681SAndroid Build Coastguard Worker %2 = bitcast <2 x i16> %1 to i32 310*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %2, 0 311*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 312*9880d681SAndroid Build Coastguard Worker} 313*9880d681SAndroid Build Coastguard Worker 314*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.shrl.ph(<2 x i16>, i32) nounwind readnone 315*9880d681SAndroid Build Coastguard Worker 316*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_shrl_ph2(i32 %i0, i32 %a0.coerce, i32 %a1) nounwind readnone { 317*9880d681SAndroid Build Coastguard Workerentry: 318*9880d681SAndroid Build Coastguard Worker; CHECK: shrlv.ph 319*9880d681SAndroid Build Coastguard Worker 320*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 321*9880d681SAndroid Build Coastguard Worker %1 = tail call <2 x i16> @llvm.mips.shrl.ph(<2 x i16> %0, i32 %a1) 322*9880d681SAndroid Build Coastguard Worker %2 = bitcast <2 x i16> %1 to i32 323*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %2, 0 324*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 325*9880d681SAndroid Build Coastguard Worker} 326*9880d681SAndroid Build Coastguard Worker 327*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_absq_s_qb1(i32 %i0, i32 %a0.coerce) nounwind { 328*9880d681SAndroid Build Coastguard Workerentry: 329*9880d681SAndroid Build Coastguard Worker; CHECK: absq_s.qb 330*9880d681SAndroid Build Coastguard Worker 331*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 332*9880d681SAndroid Build Coastguard Worker %1 = tail call <4 x i8> @llvm.mips.absq.s.qb(<4 x i8> %0) 333*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i8> %1 to i32 334*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %2, 0 335*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 336*9880d681SAndroid Build Coastguard Worker} 337*9880d681SAndroid Build Coastguard Worker 338*9880d681SAndroid Build Coastguard Workerdeclare <4 x i8> @llvm.mips.absq.s.qb(<4 x i8>) nounwind 339*9880d681SAndroid Build Coastguard Worker 340*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_mul_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 341*9880d681SAndroid Build Coastguard Workerentry: 342*9880d681SAndroid Build Coastguard Worker; CHECK: mul.ph 343*9880d681SAndroid Build Coastguard Worker 344*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 345*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 346*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.mul.ph(<2 x i16> %0, <2 x i16> %1) 347*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 348*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 349*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 350*9880d681SAndroid Build Coastguard Worker} 351*9880d681SAndroid Build Coastguard Worker 352*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.mul.ph(<2 x i16>, <2 x i16>) nounwind 353*9880d681SAndroid Build Coastguard Worker 354*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_mul_s_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind { 355*9880d681SAndroid Build Coastguard Workerentry: 356*9880d681SAndroid Build Coastguard Worker; CHECK: mul_s.ph 357*9880d681SAndroid Build Coastguard Worker 358*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 359*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 360*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.mul.s.ph(<2 x i16> %0, <2 x i16> %1) 361*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 362*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 363*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 364*9880d681SAndroid Build Coastguard Worker} 365*9880d681SAndroid Build Coastguard Worker 366*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.mul.s.ph(<2 x i16>, <2 x i16>) nounwind 367*9880d681SAndroid Build Coastguard Worker 368*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_mulq_rs_w1(i32 %i0, i32 %a0, i32 %a1) nounwind { 369*9880d681SAndroid Build Coastguard Workerentry: 370*9880d681SAndroid Build Coastguard Worker; CHECK: mulq_rs.w 371*9880d681SAndroid Build Coastguard Worker 372*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 @llvm.mips.mulq.rs.w(i32 %a0, i32 %a1) 373*9880d681SAndroid Build Coastguard Worker ret i32 %0 374*9880d681SAndroid Build Coastguard Worker} 375*9880d681SAndroid Build Coastguard Worker 376*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.mulq.rs.w(i32, i32) nounwind 377*9880d681SAndroid Build Coastguard Worker 378*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_mulq_s_w1(i32 %i0, i32 %a0, i32 %a1) nounwind { 379*9880d681SAndroid Build Coastguard Workerentry: 380*9880d681SAndroid Build Coastguard Worker; CHECK: mulq_s.w 381*9880d681SAndroid Build Coastguard Worker 382*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 @llvm.mips.mulq.s.w(i32 %a0, i32 %a1) 383*9880d681SAndroid Build Coastguard Worker ret i32 %0 384*9880d681SAndroid Build Coastguard Worker} 385*9880d681SAndroid Build Coastguard Worker 386*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.mulq.s.w(i32, i32) nounwind 387*9880d681SAndroid Build Coastguard Worker 388*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_adduh_qb1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind readnone { 389*9880d681SAndroid Build Coastguard Workerentry: 390*9880d681SAndroid Build Coastguard Worker; CHECK: adduh.qb 391*9880d681SAndroid Build Coastguard Worker 392*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 393*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <4 x i8> 394*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i8> @llvm.mips.adduh.qb(<4 x i8> %0, <4 x i8> %1) 395*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i8> %2 to i32 396*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 397*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 398*9880d681SAndroid Build Coastguard Worker} 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Workerdeclare <4 x i8> @llvm.mips.adduh.qb(<4 x i8>, <4 x i8>) nounwind readnone 401*9880d681SAndroid Build Coastguard Worker 402*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_adduh_r_qb1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind readnone { 403*9880d681SAndroid Build Coastguard Workerentry: 404*9880d681SAndroid Build Coastguard Worker; CHECK: adduh_r.qb 405*9880d681SAndroid Build Coastguard Worker 406*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 407*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <4 x i8> 408*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i8> @llvm.mips.adduh.r.qb(<4 x i8> %0, <4 x i8> %1) 409*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i8> %2 to i32 410*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 411*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 412*9880d681SAndroid Build Coastguard Worker} 413*9880d681SAndroid Build Coastguard Worker 414*9880d681SAndroid Build Coastguard Workerdeclare <4 x i8> @llvm.mips.adduh.r.qb(<4 x i8>, <4 x i8>) nounwind readnone 415*9880d681SAndroid Build Coastguard Worker 416*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_subuh_qb1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind readnone { 417*9880d681SAndroid Build Coastguard Workerentry: 418*9880d681SAndroid Build Coastguard Worker; CHECK: subuh.qb 419*9880d681SAndroid Build Coastguard Worker 420*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 421*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <4 x i8> 422*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i8> @llvm.mips.subuh.qb(<4 x i8> %0, <4 x i8> %1) 423*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i8> %2 to i32 424*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 425*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 426*9880d681SAndroid Build Coastguard Worker} 427*9880d681SAndroid Build Coastguard Worker 428*9880d681SAndroid Build Coastguard Workerdeclare <4 x i8> @llvm.mips.subuh.qb(<4 x i8>, <4 x i8>) nounwind readnone 429*9880d681SAndroid Build Coastguard Worker 430*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_subuh_r_qb1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind readnone { 431*9880d681SAndroid Build Coastguard Workerentry: 432*9880d681SAndroid Build Coastguard Worker; CHECK: subuh_r.qb 433*9880d681SAndroid Build Coastguard Worker 434*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <4 x i8> 435*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <4 x i8> 436*9880d681SAndroid Build Coastguard Worker %2 = tail call <4 x i8> @llvm.mips.subuh.r.qb(<4 x i8> %0, <4 x i8> %1) 437*9880d681SAndroid Build Coastguard Worker %3 = bitcast <4 x i8> %2 to i32 438*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 439*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 440*9880d681SAndroid Build Coastguard Worker} 441*9880d681SAndroid Build Coastguard Worker 442*9880d681SAndroid Build Coastguard Workerdeclare <4 x i8> @llvm.mips.subuh.r.qb(<4 x i8>, <4 x i8>) nounwind readnone 443*9880d681SAndroid Build Coastguard Worker 444*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_addqh_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind readnone { 445*9880d681SAndroid Build Coastguard Workerentry: 446*9880d681SAndroid Build Coastguard Worker; CHECK: addqh.ph 447*9880d681SAndroid Build Coastguard Worker 448*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 449*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 450*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.addqh.ph(<2 x i16> %0, <2 x i16> %1) 451*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 452*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 453*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 454*9880d681SAndroid Build Coastguard Worker} 455*9880d681SAndroid Build Coastguard Worker 456*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.addqh.ph(<2 x i16>, <2 x i16>) nounwind readnone 457*9880d681SAndroid Build Coastguard Worker 458*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_addqh_r_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind readnone { 459*9880d681SAndroid Build Coastguard Workerentry: 460*9880d681SAndroid Build Coastguard Worker; CHECK: addqh_r.ph 461*9880d681SAndroid Build Coastguard Worker 462*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 463*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 464*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.addqh.r.ph(<2 x i16> %0, <2 x i16> %1) 465*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 466*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 467*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 468*9880d681SAndroid Build Coastguard Worker} 469*9880d681SAndroid Build Coastguard Worker 470*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.addqh.r.ph(<2 x i16>, <2 x i16>) nounwind readnone 471*9880d681SAndroid Build Coastguard Worker 472*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_addqh_w1(i32 %i0, i32 %a0, i32 %a1) nounwind readnone { 473*9880d681SAndroid Build Coastguard Workerentry: 474*9880d681SAndroid Build Coastguard Worker; CHECK: addqh.w 475*9880d681SAndroid Build Coastguard Worker 476*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 @llvm.mips.addqh.w(i32 %a0, i32 %a1) 477*9880d681SAndroid Build Coastguard Worker ret i32 %0 478*9880d681SAndroid Build Coastguard Worker} 479*9880d681SAndroid Build Coastguard Worker 480*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.addqh.w(i32, i32) nounwind readnone 481*9880d681SAndroid Build Coastguard Worker 482*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_addqh_r_w1(i32 %i0, i32 %a0, i32 %a1) nounwind readnone { 483*9880d681SAndroid Build Coastguard Workerentry: 484*9880d681SAndroid Build Coastguard Worker; CHECK: addqh_r.w 485*9880d681SAndroid Build Coastguard Worker 486*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 @llvm.mips.addqh.r.w(i32 %a0, i32 %a1) 487*9880d681SAndroid Build Coastguard Worker ret i32 %0 488*9880d681SAndroid Build Coastguard Worker} 489*9880d681SAndroid Build Coastguard Worker 490*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.addqh.r.w(i32, i32) nounwind readnone 491*9880d681SAndroid Build Coastguard Worker 492*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_subqh_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind readnone { 493*9880d681SAndroid Build Coastguard Workerentry: 494*9880d681SAndroid Build Coastguard Worker; CHECK: subqh.ph 495*9880d681SAndroid Build Coastguard Worker 496*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 497*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 498*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.subqh.ph(<2 x i16> %0, <2 x i16> %1) 499*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 500*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 501*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 502*9880d681SAndroid Build Coastguard Worker} 503*9880d681SAndroid Build Coastguard Worker 504*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.subqh.ph(<2 x i16>, <2 x i16>) nounwind readnone 505*9880d681SAndroid Build Coastguard Worker 506*9880d681SAndroid Build Coastguard Workerdefine { i32 } @test__builtin_mips_subqh_r_ph1(i32 %i0, i32 %a0.coerce, i32 %a1.coerce) nounwind readnone { 507*9880d681SAndroid Build Coastguard Workerentry: 508*9880d681SAndroid Build Coastguard Worker; CHECK: subqh_r.ph 509*9880d681SAndroid Build Coastguard Worker 510*9880d681SAndroid Build Coastguard Worker %0 = bitcast i32 %a0.coerce to <2 x i16> 511*9880d681SAndroid Build Coastguard Worker %1 = bitcast i32 %a1.coerce to <2 x i16> 512*9880d681SAndroid Build Coastguard Worker %2 = tail call <2 x i16> @llvm.mips.subqh.r.ph(<2 x i16> %0, <2 x i16> %1) 513*9880d681SAndroid Build Coastguard Worker %3 = bitcast <2 x i16> %2 to i32 514*9880d681SAndroid Build Coastguard Worker %.fca.0.insert = insertvalue { i32 } undef, i32 %3, 0 515*9880d681SAndroid Build Coastguard Worker ret { i32 } %.fca.0.insert 516*9880d681SAndroid Build Coastguard Worker} 517*9880d681SAndroid Build Coastguard Worker 518*9880d681SAndroid Build Coastguard Workerdeclare <2 x i16> @llvm.mips.subqh.r.ph(<2 x i16>, <2 x i16>) nounwind readnone 519*9880d681SAndroid Build Coastguard Worker 520*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_subqh_w1(i32 %i0, i32 %a0, i32 %a1) nounwind readnone { 521*9880d681SAndroid Build Coastguard Workerentry: 522*9880d681SAndroid Build Coastguard Worker; CHECK: subqh.w 523*9880d681SAndroid Build Coastguard Worker 524*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 @llvm.mips.subqh.w(i32 %a0, i32 %a1) 525*9880d681SAndroid Build Coastguard Worker ret i32 %0 526*9880d681SAndroid Build Coastguard Worker} 527*9880d681SAndroid Build Coastguard Worker 528*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.subqh.w(i32, i32) nounwind readnone 529*9880d681SAndroid Build Coastguard Worker 530*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_subqh_r_w1(i32 %i0, i32 %a0, i32 %a1) nounwind readnone { 531*9880d681SAndroid Build Coastguard Workerentry: 532*9880d681SAndroid Build Coastguard Worker; CHECK: subqh_r.w 533*9880d681SAndroid Build Coastguard Worker 534*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 @llvm.mips.subqh.r.w(i32 %a0, i32 %a1) 535*9880d681SAndroid Build Coastguard Worker ret i32 %0 536*9880d681SAndroid Build Coastguard Worker} 537*9880d681SAndroid Build Coastguard Worker 538*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.subqh.r.w(i32, i32) nounwind readnone 539*9880d681SAndroid Build Coastguard Worker 540*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_append1(i32 %i0, i32 %a0, i32 %a1) nounwind readnone { 541*9880d681SAndroid Build Coastguard Workerentry: 542*9880d681SAndroid Build Coastguard Worker; CHECK: append ${{[0-9]+}} 543*9880d681SAndroid Build Coastguard Worker 544*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 @llvm.mips.append(i32 %a0, i32 %a1, i32 15) 545*9880d681SAndroid Build Coastguard Worker ret i32 %0 546*9880d681SAndroid Build Coastguard Worker} 547*9880d681SAndroid Build Coastguard Worker 548*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.append(i32, i32, i32) nounwind readnone 549*9880d681SAndroid Build Coastguard Worker 550*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_balign1(i32 %i0, i32 %a0, i32 %a1) nounwind readnone { 551*9880d681SAndroid Build Coastguard Workerentry: 552*9880d681SAndroid Build Coastguard Worker; CHECK: balign ${{[0-9]+}} 553*9880d681SAndroid Build Coastguard Worker 554*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 @llvm.mips.balign(i32 %a0, i32 %a1, i32 1) 555*9880d681SAndroid Build Coastguard Worker ret i32 %0 556*9880d681SAndroid Build Coastguard Worker} 557*9880d681SAndroid Build Coastguard Worker 558*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.balign(i32, i32, i32) nounwind readnone 559*9880d681SAndroid Build Coastguard Worker 560*9880d681SAndroid Build Coastguard Workerdefine i32 @test__builtin_mips_prepend1(i32 %i0, i32 %a0, i32 %a1) nounwind readnone { 561*9880d681SAndroid Build Coastguard Workerentry: 562*9880d681SAndroid Build Coastguard Worker; CHECK: prepend ${{[0-9]+}} 563*9880d681SAndroid Build Coastguard Worker 564*9880d681SAndroid Build Coastguard Worker %0 = tail call i32 @llvm.mips.prepend(i32 %a0, i32 %a1, i32 15) 565*9880d681SAndroid Build Coastguard Worker ret i32 %0 566*9880d681SAndroid Build Coastguard Worker} 567*9880d681SAndroid Build Coastguard Worker 568*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.prepend(i32, i32, i32) nounwind readnone 569