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