1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck --check-prefix=SI --check-prefix=FUNC %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck --check-prefix=SI --check-prefix=FUNC %s 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck --check-prefix=EG --check-prefix=FUNC %s 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}test_udivrem: 6*9880d681SAndroid Build Coastguard Worker; EG: RECIP_UINT 7*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 8*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 9*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 10*9880d681SAndroid Build Coastguard Worker; EG: CNDE_INT 11*9880d681SAndroid Build Coastguard Worker; EG: MULHI 12*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 13*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 14*9880d681SAndroid Build Coastguard Worker; EG: CNDE_INT 15*9880d681SAndroid Build Coastguard Worker; EG: MULHI 16*9880d681SAndroid Build Coastguard Worker; EG: MULLO_INT 17*9880d681SAndroid Build Coastguard Worker; EG: SUB_INT 18*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 19*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 20*9880d681SAndroid Build Coastguard Worker; EG: AND_INT 21*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 22*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 23*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 24*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 25*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 26*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 27*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 28*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker; SI: v_rcp_iflag_f32_e32 [[RCP:v[0-9]+]] 31*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 [[RCP_HI:v[0-9]+]], [[RCP]] 32*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 [[RCP_LO:v[0-9]+]], [[RCP]] 33*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_sub_i32_e32 [[NEG_RCP_LO:v[0-9]+]], vcc, 0, [[RCP_LO]] 34*9880d681SAndroid Build Coastguard Worker; SI: v_cndmask_b32_e64 35*9880d681SAndroid Build Coastguard Worker; SI: v_mul_hi_u32 [[E:v[0-9]+]], {{v[0-9]+}}, [[RCP]] 36*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 [[RCP_A_E:v[0-9]+]], vcc, [[E]], [[RCP]] 37*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 [[RCP_S_E:v[0-9]+]], vcc, [[E]], [[RCP]] 38*9880d681SAndroid Build Coastguard Worker; SI: v_cndmask_b32_e64 39*9880d681SAndroid Build Coastguard Worker; SI: v_mul_hi_u32 [[Quotient:v[0-9]+]] 40*9880d681SAndroid Build Coastguard Worker; SI: v_mul_lo_i32 [[Num_S_Remainder:v[0-9]+]] 41*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_sub_i32_e32 [[Remainder:v[0-9]+]], vcc, {{[vs][0-9]+}}, [[Num_S_Remainder]] 42*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 43*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 44*9880d681SAndroid Build Coastguard Worker; SI: v_and_b32_e32 [[Tmp1:v[0-9]+]] 45*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 [[Quotient_A_One:v[0-9]+]], vcc, 1, [[Quotient]] 46*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 [[Quotient_S_One:v[0-9]+]], 47*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 48*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 49*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 [[Remainder_A_Den:v[0-9]+]], 50*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 [[Remainder_S_Den:v[0-9]+]], 51*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 52*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 53*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 54*9880d681SAndroid Build Coastguard Workerdefine void @test_udivrem(i32 addrspace(1)* %out0, i32 addrspace(1)* %out1, i32 %x, i32 %y) { 55*9880d681SAndroid Build Coastguard Worker %result0 = udiv i32 %x, %y 56*9880d681SAndroid Build Coastguard Worker store i32 %result0, i32 addrspace(1)* %out0 57*9880d681SAndroid Build Coastguard Worker %result1 = urem i32 %x, %y 58*9880d681SAndroid Build Coastguard Worker store i32 %result1, i32 addrspace(1)* %out1 59*9880d681SAndroid Build Coastguard Worker ret void 60*9880d681SAndroid Build Coastguard Worker} 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}test_udivrem_v2: 63*9880d681SAndroid Build Coastguard Worker; EG-DAG: RECIP_UINT 64*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 65*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 66*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 67*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 68*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 69*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 70*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 71*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 72*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 73*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 74*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 75*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 76*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 77*9880d681SAndroid Build Coastguard Worker; EG-DAG: AND_INT 78*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 79*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 80*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 81*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 82*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 83*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 84*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 85*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 86*9880d681SAndroid Build Coastguard Worker; EG-DAG: RECIP_UINT 87*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 88*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 89*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 90*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 91*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 92*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 93*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 94*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 95*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 96*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 97*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 98*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 99*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 100*9880d681SAndroid Build Coastguard Worker; EG-DAG: AND_INT 101*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 102*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 103*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 104*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 105*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 106*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 107*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 108*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Worker; For SI, we used to have checks for the input and output registers 111*9880d681SAndroid Build Coastguard Worker; of the instructions, but these are way too fragile. The division for 112*9880d681SAndroid Build Coastguard Worker; the two vector elements can be intermixed which makes it impossible to 113*9880d681SAndroid Build Coastguard Worker; accurately check all the operands. 114*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_rcp_iflag_f32_e32 115*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 116*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 117*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_sub_i32_e32 118*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 119*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 120*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 121*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 122*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 123*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 124*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 125*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 126*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 127*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 128*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_and_b32_e32 129*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 130*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 131*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 132*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 133*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 134*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 135*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 136*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 137*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_rcp_iflag_f32_e32 138*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 139*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 140*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_sub_i32_e32 141*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 142*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 143*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 144*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 145*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 146*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 147*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 148*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 149*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 150*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 151*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_and_b32_e32 152*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 153*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 154*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 155*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 156*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 157*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 158*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 159*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 160*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 161*9880d681SAndroid Build Coastguard Workerdefine void @test_udivrem_v2(<2 x i32> addrspace(1)* %out, <2 x i32> %x, <2 x i32> %y) { 162*9880d681SAndroid Build Coastguard Worker %result0 = udiv <2 x i32> %x, %y 163*9880d681SAndroid Build Coastguard Worker store <2 x i32> %result0, <2 x i32> addrspace(1)* %out 164*9880d681SAndroid Build Coastguard Worker %result1 = urem <2 x i32> %x, %y 165*9880d681SAndroid Build Coastguard Worker store <2 x i32> %result1, <2 x i32> addrspace(1)* %out 166*9880d681SAndroid Build Coastguard Worker ret void 167*9880d681SAndroid Build Coastguard Worker} 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Worker 170*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}test_udivrem_v4: 171*9880d681SAndroid Build Coastguard Worker; EG-DAG: RECIP_UINT 172*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 173*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 174*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 175*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 176*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 177*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 178*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 179*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 180*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 181*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 182*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 183*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 184*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 185*9880d681SAndroid Build Coastguard Worker; EG-DAG: AND_INT 186*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 187*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 188*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 189*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 190*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 191*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 192*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 193*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 194*9880d681SAndroid Build Coastguard Worker; EG-DAG: RECIP_UINT 195*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 196*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 197*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 198*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 199*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 200*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 201*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 202*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 203*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 204*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 205*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 206*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 207*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 208*9880d681SAndroid Build Coastguard Worker; EG-DAG: AND_INT 209*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 210*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 211*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 212*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 213*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 214*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 215*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 216*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 217*9880d681SAndroid Build Coastguard Worker; EG-DAG: RECIP_UINT 218*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 219*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 220*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 221*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 222*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 223*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 224*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 225*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 226*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 227*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 228*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 229*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 230*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 231*9880d681SAndroid Build Coastguard Worker; EG-DAG: AND_INT 232*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 233*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 234*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 235*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 236*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 237*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 238*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 239*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 240*9880d681SAndroid Build Coastguard Worker; EG-DAG: RECIP_UINT 241*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 242*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 243*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 244*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 245*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 246*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 247*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 248*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 249*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULHI 250*9880d681SAndroid Build Coastguard Worker; EG-DAG: MULLO_INT 251*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 252*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 253*9880d681SAndroid Build Coastguard Worker; EG-DAG: SETGE_UINT 254*9880d681SAndroid Build Coastguard Worker; EG-DAG: AND_INT 255*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 256*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 257*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 258*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 259*9880d681SAndroid Build Coastguard Worker; EG-DAG: ADD_INT 260*9880d681SAndroid Build Coastguard Worker; EG-DAG: SUB_INT 261*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 262*9880d681SAndroid Build Coastguard Worker; EG-DAG: CNDE_INT 263*9880d681SAndroid Build Coastguard Worker 264*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_rcp_iflag_f32_e32 265*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 266*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 267*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_sub_i32_e32 268*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 269*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 270*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 271*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 272*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 273*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 274*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 275*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 276*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 277*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 278*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_and_b32_e32 279*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 280*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 281*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 282*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 283*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 284*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 285*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 286*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 287*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_rcp_iflag_f32_e32 288*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 289*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 290*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_sub_i32_e32 291*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 292*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 293*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 294*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 295*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 296*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 297*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 298*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 299*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 300*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 301*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_and_b32_e32 302*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 303*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 304*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 305*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 306*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 307*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 308*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 309*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 310*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_rcp_iflag_f32_e32 311*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 312*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 313*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_sub_i32_e32 314*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 315*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 316*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 317*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 318*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 319*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 320*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 321*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 322*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 323*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 324*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_and_b32_e32 325*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 326*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 327*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 328*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 329*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 330*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 331*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 332*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 333*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_rcp_iflag_f32_e32 334*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 335*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_lo_i32 336*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_sub_i32_e32 337*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 338*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mul_hi_u32 339*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_add_i32_e32 340*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_subrev_i32_e32 341*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_cndmask_b32_e64 342*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 343*9880d681SAndroid Build Coastguard Workerdefine void @test_udivrem_v4(<4 x i32> addrspace(1)* %out, <4 x i32> %x, <4 x i32> %y) { 344*9880d681SAndroid Build Coastguard Worker %result0 = udiv <4 x i32> %x, %y 345*9880d681SAndroid Build Coastguard Worker store <4 x i32> %result0, <4 x i32> addrspace(1)* %out 346*9880d681SAndroid Build Coastguard Worker %result1 = urem <4 x i32> %x, %y 347*9880d681SAndroid Build Coastguard Worker store <4 x i32> %result1, <4 x i32> addrspace(1)* %out 348*9880d681SAndroid Build Coastguard Worker ret void 349*9880d681SAndroid Build Coastguard Worker} 350