1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=arm-unknown-unknown 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i8 @test_minsize_uu8(i8 %x) minsize optsize { 4*9880d681SAndroid Build Coastguard Workerentry: 5*9880d681SAndroid Build Coastguard Worker %0 = udiv i8 %x, 10 6*9880d681SAndroid Build Coastguard Worker %1 = urem i8 %x, 10 7*9880d681SAndroid Build Coastguard Worker %res = add i8 %0, %1 8*9880d681SAndroid Build Coastguard Worker ret i8 %res 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine i8 @test_minsize_ss8(i8 %x) minsize optsize { 12*9880d681SAndroid Build Coastguard Workerentry: 13*9880d681SAndroid Build Coastguard Worker %0 = sdiv i8 %x, 10 14*9880d681SAndroid Build Coastguard Worker %1 = srem i8 %x, 10 15*9880d681SAndroid Build Coastguard Worker %res = add i8 %0, %1 16*9880d681SAndroid Build Coastguard Worker ret i8 %res 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerdefine i8 @test_minsize_us8(i8 %x) minsize optsize { 20*9880d681SAndroid Build Coastguard Workerentry: 21*9880d681SAndroid Build Coastguard Worker %0 = udiv i8 %x, 10 22*9880d681SAndroid Build Coastguard Worker %1 = srem i8 %x, 10 23*9880d681SAndroid Build Coastguard Worker %res = add i8 %0, %1 24*9880d681SAndroid Build Coastguard Worker ret i8 %res 25*9880d681SAndroid Build Coastguard Worker} 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine i8 @test_minsize_su8(i8 %x) minsize optsize { 28*9880d681SAndroid Build Coastguard Workerentry: 29*9880d681SAndroid Build Coastguard Worker %0 = sdiv i8 %x, 10 30*9880d681SAndroid Build Coastguard Worker %1 = urem i8 %x, 10 31*9880d681SAndroid Build Coastguard Worker %res = add i8 %0, %1 32*9880d681SAndroid Build Coastguard Worker ret i8 %res 33*9880d681SAndroid Build Coastguard Worker} 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdefine i16 @test_minsize_uu16(i16 %x) minsize optsize { 36*9880d681SAndroid Build Coastguard Workerentry: 37*9880d681SAndroid Build Coastguard Worker %0 = udiv i16 %x, 10 38*9880d681SAndroid Build Coastguard Worker %1 = urem i16 %x, 10 39*9880d681SAndroid Build Coastguard Worker %res = add i16 %0, %1 40*9880d681SAndroid Build Coastguard Worker ret i16 %res 41*9880d681SAndroid Build Coastguard Worker} 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerdefine i16 @test_minsize_ss16(i16 %x) minsize optsize { 44*9880d681SAndroid Build Coastguard Workerentry: 45*9880d681SAndroid Build Coastguard Worker %0 = sdiv i16 %x, 10 46*9880d681SAndroid Build Coastguard Worker %1 = srem i16 %x, 10 47*9880d681SAndroid Build Coastguard Worker %res = add i16 %0, %1 48*9880d681SAndroid Build Coastguard Worker ret i16 %res 49*9880d681SAndroid Build Coastguard Worker} 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workerdefine i16 @test_minsize_us16(i16 %x) minsize optsize { 52*9880d681SAndroid Build Coastguard Workerentry: 53*9880d681SAndroid Build Coastguard Worker %0 = udiv i16 %x, 10 54*9880d681SAndroid Build Coastguard Worker %1 = srem i16 %x, 10 55*9880d681SAndroid Build Coastguard Worker %res = add i16 %0, %1 56*9880d681SAndroid Build Coastguard Worker ret i16 %res 57*9880d681SAndroid Build Coastguard Worker} 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerdefine i16 @test_minsize_su16(i16 %x) minsize optsize { 60*9880d681SAndroid Build Coastguard Workerentry: 61*9880d681SAndroid Build Coastguard Worker %0 = sdiv i16 %x, 10 62*9880d681SAndroid Build Coastguard Worker %1 = urem i16 %x, 10 63*9880d681SAndroid Build Coastguard Worker %res = add i16 %0, %1 64*9880d681SAndroid Build Coastguard Worker ret i16 %res 65*9880d681SAndroid Build Coastguard Worker} 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workerdefine i32 @test_minsize_uu32(i32 %x) minsize optsize { 68*9880d681SAndroid Build Coastguard Workerentry: 69*9880d681SAndroid Build Coastguard Worker %0 = udiv i32 %x, 10 70*9880d681SAndroid Build Coastguard Worker %1 = urem i32 %x, 10 71*9880d681SAndroid Build Coastguard Worker %res = add i32 %0, %1 72*9880d681SAndroid Build Coastguard Worker ret i32 %res 73*9880d681SAndroid Build Coastguard Worker} 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerdefine i32 @test_minsize_ss32(i32 %x) minsize optsize { 76*9880d681SAndroid Build Coastguard Workerentry: 77*9880d681SAndroid Build Coastguard Worker %0 = sdiv i32 %x, 10 78*9880d681SAndroid Build Coastguard Worker %1 = srem i32 %x, 10 79*9880d681SAndroid Build Coastguard Worker %res = add i32 %0, %1 80*9880d681SAndroid Build Coastguard Worker ret i32 %res 81*9880d681SAndroid Build Coastguard Worker} 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Workerdefine i32 @test_minsize_us32(i32 %x) minsize optsize { 84*9880d681SAndroid Build Coastguard Workerentry: 85*9880d681SAndroid Build Coastguard Worker %0 = udiv i32 %x, 10 86*9880d681SAndroid Build Coastguard Worker %1 = srem i32 %x, 10 87*9880d681SAndroid Build Coastguard Worker %res = add i32 %0, %1 88*9880d681SAndroid Build Coastguard Worker ret i32 %res 89*9880d681SAndroid Build Coastguard Worker} 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Workerdefine i32 @test_minsize_su32(i32 %x) minsize optsize { 92*9880d681SAndroid Build Coastguard Workerentry: 93*9880d681SAndroid Build Coastguard Worker %0 = sdiv i32 %x, 10 94*9880d681SAndroid Build Coastguard Worker %1 = urem i32 %x, 10 95*9880d681SAndroid Build Coastguard Worker %res = add i32 %0, %1 96*9880d681SAndroid Build Coastguard Worker ret i32 %res 97*9880d681SAndroid Build Coastguard Worker} 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Workerdefine i64 @test_minsize_uu64(i64 %x) minsize optsize { 100*9880d681SAndroid Build Coastguard Workerentry: 101*9880d681SAndroid Build Coastguard Worker %0 = udiv i64 %x, 10 102*9880d681SAndroid Build Coastguard Worker %1 = urem i64 %x, 10 103*9880d681SAndroid Build Coastguard Worker %res = add i64 %0, %1 104*9880d681SAndroid Build Coastguard Worker ret i64 %res 105*9880d681SAndroid Build Coastguard Worker} 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Workerdefine i64 @test_minsize_ss64(i64 %x) minsize optsize { 108*9880d681SAndroid Build Coastguard Workerentry: 109*9880d681SAndroid Build Coastguard Worker %0 = sdiv i64 %x, 10 110*9880d681SAndroid Build Coastguard Worker %1 = srem i64 %x, 10 111*9880d681SAndroid Build Coastguard Worker %res = add i64 %0, %1 112*9880d681SAndroid Build Coastguard Worker ret i64 %res 113*9880d681SAndroid Build Coastguard Worker} 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Workerdefine i64 @test_minsize_us64(i64 %x) minsize optsize { 116*9880d681SAndroid Build Coastguard Workerentry: 117*9880d681SAndroid Build Coastguard Worker %0 = udiv i64 %x, 10 118*9880d681SAndroid Build Coastguard Worker %1 = srem i64 %x, 10 119*9880d681SAndroid Build Coastguard Worker %res = add i64 %0, %1 120*9880d681SAndroid Build Coastguard Worker ret i64 %res 121*9880d681SAndroid Build Coastguard Worker} 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Workerdefine i64 @test_minsize_su64(i64 %x) minsize optsize { 124*9880d681SAndroid Build Coastguard Workerentry: 125*9880d681SAndroid Build Coastguard Worker %0 = sdiv i64 %x, 10 126*9880d681SAndroid Build Coastguard Worker %1 = urem i64 %x, 10 127*9880d681SAndroid Build Coastguard Worker %res = add i64 %0, %1 128*9880d681SAndroid Build Coastguard Worker ret i64 %res 129*9880d681SAndroid Build Coastguard Worker} 130*9880d681SAndroid Build Coastguard Worker 131*9880d681SAndroid Build Coastguard Workerdefine i8 @test_uu8(i8 %x) optsize { 132*9880d681SAndroid Build Coastguard Workerentry: 133*9880d681SAndroid Build Coastguard Worker %0 = udiv i8 %x, 10 134*9880d681SAndroid Build Coastguard Worker %1 = urem i8 %x, 10 135*9880d681SAndroid Build Coastguard Worker %res = add i8 %0, %1 136*9880d681SAndroid Build Coastguard Worker ret i8 %res 137*9880d681SAndroid Build Coastguard Worker} 138*9880d681SAndroid Build Coastguard Worker 139*9880d681SAndroid Build Coastguard Workerdefine i8 @test_ss8(i8 %x) optsize { 140*9880d681SAndroid Build Coastguard Workerentry: 141*9880d681SAndroid Build Coastguard Worker %0 = sdiv i8 %x, 10 142*9880d681SAndroid Build Coastguard Worker %1 = srem i8 %x, 10 143*9880d681SAndroid Build Coastguard Worker %res = add i8 %0, %1 144*9880d681SAndroid Build Coastguard Worker ret i8 %res 145*9880d681SAndroid Build Coastguard Worker} 146*9880d681SAndroid Build Coastguard Worker 147*9880d681SAndroid Build Coastguard Workerdefine i8 @test_us8(i8 %x) optsize { 148*9880d681SAndroid Build Coastguard Workerentry: 149*9880d681SAndroid Build Coastguard Worker %0 = udiv i8 %x, 10 150*9880d681SAndroid Build Coastguard Worker %1 = srem i8 %x, 10 151*9880d681SAndroid Build Coastguard Worker %res = add i8 %0, %1 152*9880d681SAndroid Build Coastguard Worker ret i8 %res 153*9880d681SAndroid Build Coastguard Worker} 154*9880d681SAndroid Build Coastguard Worker 155*9880d681SAndroid Build Coastguard Workerdefine i8 @test_su8(i8 %x) optsize { 156*9880d681SAndroid Build Coastguard Workerentry: 157*9880d681SAndroid Build Coastguard Worker %0 = sdiv i8 %x, 10 158*9880d681SAndroid Build Coastguard Worker %1 = urem i8 %x, 10 159*9880d681SAndroid Build Coastguard Worker %res = add i8 %0, %1 160*9880d681SAndroid Build Coastguard Worker ret i8 %res 161*9880d681SAndroid Build Coastguard Worker} 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Workerdefine i16 @test_uu16(i16 %x) optsize { 164*9880d681SAndroid Build Coastguard Workerentry: 165*9880d681SAndroid Build Coastguard Worker %0 = udiv i16 %x, 10 166*9880d681SAndroid Build Coastguard Worker %1 = urem i16 %x, 10 167*9880d681SAndroid Build Coastguard Worker %res = add i16 %0, %1 168*9880d681SAndroid Build Coastguard Worker ret i16 %res 169*9880d681SAndroid Build Coastguard Worker} 170*9880d681SAndroid Build Coastguard Worker 171*9880d681SAndroid Build Coastguard Workerdefine i16 @test_ss16(i16 %x) optsize { 172*9880d681SAndroid Build Coastguard Workerentry: 173*9880d681SAndroid Build Coastguard Worker %0 = sdiv i16 %x, 10 174*9880d681SAndroid Build Coastguard Worker %1 = srem i16 %x, 10 175*9880d681SAndroid Build Coastguard Worker %res = add i16 %0, %1 176*9880d681SAndroid Build Coastguard Worker ret i16 %res 177*9880d681SAndroid Build Coastguard Worker} 178*9880d681SAndroid Build Coastguard Worker 179*9880d681SAndroid Build Coastguard Workerdefine i16 @test_us16(i16 %x) optsize { 180*9880d681SAndroid Build Coastguard Workerentry: 181*9880d681SAndroid Build Coastguard Worker %0 = udiv i16 %x, 10 182*9880d681SAndroid Build Coastguard Worker %1 = srem i16 %x, 10 183*9880d681SAndroid Build Coastguard Worker %res = add i16 %0, %1 184*9880d681SAndroid Build Coastguard Worker ret i16 %res 185*9880d681SAndroid Build Coastguard Worker} 186*9880d681SAndroid Build Coastguard Worker 187*9880d681SAndroid Build Coastguard Workerdefine i16 @test_su16(i16 %x) optsize { 188*9880d681SAndroid Build Coastguard Workerentry: 189*9880d681SAndroid Build Coastguard Worker %0 = sdiv i16 %x, 10 190*9880d681SAndroid Build Coastguard Worker %1 = urem i16 %x, 10 191*9880d681SAndroid Build Coastguard Worker %res = add i16 %0, %1 192*9880d681SAndroid Build Coastguard Worker ret i16 %res 193*9880d681SAndroid Build Coastguard Worker} 194*9880d681SAndroid Build Coastguard Worker 195*9880d681SAndroid Build Coastguard Workerdefine i32 @test_uu32(i32 %x) optsize { 196*9880d681SAndroid Build Coastguard Workerentry: 197*9880d681SAndroid Build Coastguard Worker %0 = udiv i32 %x, 10 198*9880d681SAndroid Build Coastguard Worker %1 = urem i32 %x, 10 199*9880d681SAndroid Build Coastguard Worker %res = add i32 %0, %1 200*9880d681SAndroid Build Coastguard Worker ret i32 %res 201*9880d681SAndroid Build Coastguard Worker} 202*9880d681SAndroid Build Coastguard Worker 203*9880d681SAndroid Build Coastguard Workerdefine i32 @test_ss32(i32 %x) optsize { 204*9880d681SAndroid Build Coastguard Workerentry: 205*9880d681SAndroid Build Coastguard Worker %0 = sdiv i32 %x, 10 206*9880d681SAndroid Build Coastguard Worker %1 = srem i32 %x, 10 207*9880d681SAndroid Build Coastguard Worker %res = add i32 %0, %1 208*9880d681SAndroid Build Coastguard Worker ret i32 %res 209*9880d681SAndroid Build Coastguard Worker} 210*9880d681SAndroid Build Coastguard Worker 211*9880d681SAndroid Build Coastguard Workerdefine i32 @test_us32(i32 %x) optsize { 212*9880d681SAndroid Build Coastguard Workerentry: 213*9880d681SAndroid Build Coastguard Worker %0 = udiv i32 %x, 10 214*9880d681SAndroid Build Coastguard Worker %1 = srem i32 %x, 10 215*9880d681SAndroid Build Coastguard Worker %res = add i32 %0, %1 216*9880d681SAndroid Build Coastguard Worker ret i32 %res 217*9880d681SAndroid Build Coastguard Worker} 218*9880d681SAndroid Build Coastguard Worker 219*9880d681SAndroid Build Coastguard Workerdefine i32 @test_su32(i32 %x) optsize { 220*9880d681SAndroid Build Coastguard Workerentry: 221*9880d681SAndroid Build Coastguard Worker %0 = sdiv i32 %x, 10 222*9880d681SAndroid Build Coastguard Worker %1 = urem i32 %x, 10 223*9880d681SAndroid Build Coastguard Worker %res = add i32 %0, %1 224*9880d681SAndroid Build Coastguard Worker ret i32 %res 225*9880d681SAndroid Build Coastguard Worker} 226*9880d681SAndroid Build Coastguard Worker 227*9880d681SAndroid Build Coastguard Workerdefine i64 @test_uu64(i64 %x) optsize { 228*9880d681SAndroid Build Coastguard Workerentry: 229*9880d681SAndroid Build Coastguard Worker %0 = udiv i64 %x, 10 230*9880d681SAndroid Build Coastguard Worker %1 = urem i64 %x, 10 231*9880d681SAndroid Build Coastguard Worker %res = add i64 %0, %1 232*9880d681SAndroid Build Coastguard Worker ret i64 %res 233*9880d681SAndroid Build Coastguard Worker} 234*9880d681SAndroid Build Coastguard Worker 235*9880d681SAndroid Build Coastguard Workerdefine i64 @test_ss64(i64 %x) optsize { 236*9880d681SAndroid Build Coastguard Workerentry: 237*9880d681SAndroid Build Coastguard Worker %0 = sdiv i64 %x, 10 238*9880d681SAndroid Build Coastguard Worker %1 = srem i64 %x, 10 239*9880d681SAndroid Build Coastguard Worker %res = add i64 %0, %1 240*9880d681SAndroid Build Coastguard Worker ret i64 %res 241*9880d681SAndroid Build Coastguard Worker} 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Workerdefine i64 @test_us64(i64 %x) optsize { 244*9880d681SAndroid Build Coastguard Workerentry: 245*9880d681SAndroid Build Coastguard Worker %0 = udiv i64 %x, 10 246*9880d681SAndroid Build Coastguard Worker %1 = srem i64 %x, 10 247*9880d681SAndroid Build Coastguard Worker %res = add i64 %0, %1 248*9880d681SAndroid Build Coastguard Worker ret i64 %res 249*9880d681SAndroid Build Coastguard Worker} 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerdefine i64 @test_su64(i64 %x) optsize { 252*9880d681SAndroid Build Coastguard Workerentry: 253*9880d681SAndroid Build Coastguard Worker %0 = sdiv i64 %x, 10 254*9880d681SAndroid Build Coastguard Worker %1 = urem i64 %x, 10 255*9880d681SAndroid Build Coastguard Worker %res = add i64 %0, %1 256*9880d681SAndroid Build Coastguard Worker ret i64 %res 257*9880d681SAndroid Build Coastguard Worker} 258