1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=mipsel-linux-gnu -mcpu=mips32r5 -mattr=+msa,+fp64,+nan2008 -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=P5600 3--- | 4 5 define void @sdiv_v16i8(ptr %a, ptr %b, ptr %c) { entry: ret void } 6 define void @sdiv_v8i16(ptr %a, ptr %b, ptr %c) { entry: ret void } 7 define void @sdiv_v4i32(ptr %a, ptr %b, ptr %c) { entry: ret void } 8 define void @sdiv_v2i64(ptr %a, ptr %b, ptr %c) { entry: ret void } 9 10 define void @srem_v16i8(ptr %a, ptr %b, ptr %c) { entry: ret void } 11 define void @srem_v8i16(ptr %a, ptr %b, ptr %c) { entry: ret void } 12 define void @srem_v4i32(ptr %a, ptr %b, ptr %c) { entry: ret void } 13 define void @srem_v2i64(ptr %a, ptr %b, ptr %c) { entry: ret void } 14 15 define void @udiv_v16u8(ptr %a, ptr %b, ptr %c) { entry: ret void } 16 define void @udiv_v8u16(ptr %a, ptr %b, ptr %c) { entry: ret void } 17 define void @udiv_v4u32(ptr %a, ptr %b, ptr %c) { entry: ret void } 18 define void @udiv_v2u64(ptr %a, ptr %b, ptr %c) { entry: ret void } 19 20 define void @urem_v16u8(ptr %a, ptr %b, ptr %c) { entry: ret void } 21 define void @urem_v8u16(ptr %a, ptr %b, ptr %c) { entry: ret void } 22 define void @urem_v4u32(ptr %a, ptr %b, ptr %c) { entry: ret void } 23 define void @urem_v2u64(ptr %a, ptr %b, ptr %c) { entry: ret void } 24 25... 26--- 27name: sdiv_v16i8 28alignment: 4 29tracksRegLiveness: true 30body: | 31 bb.1.entry: 32 liveins: $a0, $a1, $a2 33 34 ; P5600-LABEL: name: sdiv_v16i8 35 ; P5600: liveins: $a0, $a1, $a2 36 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 37 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 38 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 39 ; P5600: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a) 40 ; P5600: [[LOAD1:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b) 41 ; P5600: [[SDIV:%[0-9]+]]:_(<16 x s8>) = G_SDIV [[LOAD]], [[LOAD1]] 42 ; P5600: G_STORE [[SDIV]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c) 43 ; P5600: RetRA 44 %0:_(p0) = COPY $a0 45 %1:_(p0) = COPY $a1 46 %2:_(p0) = COPY $a2 47 %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a) 48 %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b) 49 %5:_(<16 x s8>) = G_SDIV %3, %4 50 G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c) 51 RetRA 52 53... 54--- 55name: sdiv_v8i16 56alignment: 4 57tracksRegLiveness: true 58body: | 59 bb.1.entry: 60 liveins: $a0, $a1, $a2 61 62 ; P5600-LABEL: name: sdiv_v8i16 63 ; P5600: liveins: $a0, $a1, $a2 64 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 65 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 66 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 67 ; P5600: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a) 68 ; P5600: [[LOAD1:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b) 69 ; P5600: [[SDIV:%[0-9]+]]:_(<8 x s16>) = G_SDIV [[LOAD]], [[LOAD1]] 70 ; P5600: G_STORE [[SDIV]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c) 71 ; P5600: RetRA 72 %0:_(p0) = COPY $a0 73 %1:_(p0) = COPY $a1 74 %2:_(p0) = COPY $a2 75 %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a) 76 %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b) 77 %5:_(<8 x s16>) = G_SDIV %3, %4 78 G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c) 79 RetRA 80 81... 82--- 83name: sdiv_v4i32 84alignment: 4 85tracksRegLiveness: true 86body: | 87 bb.1.entry: 88 liveins: $a0, $a1, $a2 89 90 ; P5600-LABEL: name: sdiv_v4i32 91 ; P5600: liveins: $a0, $a1, $a2 92 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 93 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 94 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 95 ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a) 96 ; P5600: [[LOAD1:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b) 97 ; P5600: [[SDIV:%[0-9]+]]:_(<4 x s32>) = G_SDIV [[LOAD]], [[LOAD1]] 98 ; P5600: G_STORE [[SDIV]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c) 99 ; P5600: RetRA 100 %0:_(p0) = COPY $a0 101 %1:_(p0) = COPY $a1 102 %2:_(p0) = COPY $a2 103 %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a) 104 %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b) 105 %5:_(<4 x s32>) = G_SDIV %3, %4 106 G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c) 107 RetRA 108 109... 110--- 111name: sdiv_v2i64 112alignment: 4 113tracksRegLiveness: true 114body: | 115 bb.1.entry: 116 liveins: $a0, $a1, $a2 117 118 ; P5600-LABEL: name: sdiv_v2i64 119 ; P5600: liveins: $a0, $a1, $a2 120 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 121 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 122 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 123 ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a) 124 ; P5600: [[LOAD1:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b) 125 ; P5600: [[SDIV:%[0-9]+]]:_(<2 x s64>) = G_SDIV [[LOAD]], [[LOAD1]] 126 ; P5600: G_STORE [[SDIV]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c) 127 ; P5600: RetRA 128 %0:_(p0) = COPY $a0 129 %1:_(p0) = COPY $a1 130 %2:_(p0) = COPY $a2 131 %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a) 132 %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b) 133 %5:_(<2 x s64>) = G_SDIV %3, %4 134 G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c) 135 RetRA 136 137... 138--- 139name: srem_v16i8 140alignment: 4 141tracksRegLiveness: true 142body: | 143 bb.1.entry: 144 liveins: $a0, $a1, $a2 145 146 ; P5600-LABEL: name: srem_v16i8 147 ; P5600: liveins: $a0, $a1, $a2 148 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 149 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 150 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 151 ; P5600: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a) 152 ; P5600: [[LOAD1:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b) 153 ; P5600: [[SREM:%[0-9]+]]:_(<16 x s8>) = G_SREM [[LOAD]], [[LOAD1]] 154 ; P5600: G_STORE [[SREM]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c) 155 ; P5600: RetRA 156 %0:_(p0) = COPY $a0 157 %1:_(p0) = COPY $a1 158 %2:_(p0) = COPY $a2 159 %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a) 160 %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b) 161 %5:_(<16 x s8>) = G_SREM %3, %4 162 G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c) 163 RetRA 164 165... 166--- 167name: srem_v8i16 168alignment: 4 169tracksRegLiveness: true 170body: | 171 bb.1.entry: 172 liveins: $a0, $a1, $a2 173 174 ; P5600-LABEL: name: srem_v8i16 175 ; P5600: liveins: $a0, $a1, $a2 176 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 177 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 178 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 179 ; P5600: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a) 180 ; P5600: [[LOAD1:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b) 181 ; P5600: [[SREM:%[0-9]+]]:_(<8 x s16>) = G_SREM [[LOAD]], [[LOAD1]] 182 ; P5600: G_STORE [[SREM]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c) 183 ; P5600: RetRA 184 %0:_(p0) = COPY $a0 185 %1:_(p0) = COPY $a1 186 %2:_(p0) = COPY $a2 187 %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a) 188 %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b) 189 %5:_(<8 x s16>) = G_SREM %3, %4 190 G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c) 191 RetRA 192 193... 194--- 195name: srem_v4i32 196alignment: 4 197tracksRegLiveness: true 198body: | 199 bb.1.entry: 200 liveins: $a0, $a1, $a2 201 202 ; P5600-LABEL: name: srem_v4i32 203 ; P5600: liveins: $a0, $a1, $a2 204 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 205 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 206 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 207 ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a) 208 ; P5600: [[LOAD1:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b) 209 ; P5600: [[SREM:%[0-9]+]]:_(<4 x s32>) = G_SREM [[LOAD]], [[LOAD1]] 210 ; P5600: G_STORE [[SREM]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c) 211 ; P5600: RetRA 212 %0:_(p0) = COPY $a0 213 %1:_(p0) = COPY $a1 214 %2:_(p0) = COPY $a2 215 %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a) 216 %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b) 217 %5:_(<4 x s32>) = G_SREM %3, %4 218 G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c) 219 RetRA 220 221... 222--- 223name: srem_v2i64 224alignment: 4 225tracksRegLiveness: true 226body: | 227 bb.1.entry: 228 liveins: $a0, $a1, $a2 229 230 ; P5600-LABEL: name: srem_v2i64 231 ; P5600: liveins: $a0, $a1, $a2 232 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 233 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 234 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 235 ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a) 236 ; P5600: [[LOAD1:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b) 237 ; P5600: [[SREM:%[0-9]+]]:_(<2 x s64>) = G_SREM [[LOAD]], [[LOAD1]] 238 ; P5600: G_STORE [[SREM]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c) 239 ; P5600: RetRA 240 %0:_(p0) = COPY $a0 241 %1:_(p0) = COPY $a1 242 %2:_(p0) = COPY $a2 243 %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a) 244 %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b) 245 %5:_(<2 x s64>) = G_SREM %3, %4 246 G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c) 247 RetRA 248 249... 250--- 251name: udiv_v16u8 252alignment: 4 253tracksRegLiveness: true 254body: | 255 bb.1.entry: 256 liveins: $a0, $a1, $a2 257 258 ; P5600-LABEL: name: udiv_v16u8 259 ; P5600: liveins: $a0, $a1, $a2 260 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 261 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 262 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 263 ; P5600: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a) 264 ; P5600: [[LOAD1:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b) 265 ; P5600: [[UDIV:%[0-9]+]]:_(<16 x s8>) = G_UDIV [[LOAD]], [[LOAD1]] 266 ; P5600: G_STORE [[UDIV]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c) 267 ; P5600: RetRA 268 %0:_(p0) = COPY $a0 269 %1:_(p0) = COPY $a1 270 %2:_(p0) = COPY $a2 271 %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a) 272 %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b) 273 %5:_(<16 x s8>) = G_UDIV %3, %4 274 G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c) 275 RetRA 276 277... 278--- 279name: udiv_v8u16 280alignment: 4 281tracksRegLiveness: true 282body: | 283 bb.1.entry: 284 liveins: $a0, $a1, $a2 285 286 ; P5600-LABEL: name: udiv_v8u16 287 ; P5600: liveins: $a0, $a1, $a2 288 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 289 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 290 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 291 ; P5600: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a) 292 ; P5600: [[LOAD1:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b) 293 ; P5600: [[UDIV:%[0-9]+]]:_(<8 x s16>) = G_UDIV [[LOAD]], [[LOAD1]] 294 ; P5600: G_STORE [[UDIV]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c) 295 ; P5600: RetRA 296 %0:_(p0) = COPY $a0 297 %1:_(p0) = COPY $a1 298 %2:_(p0) = COPY $a2 299 %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a) 300 %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b) 301 %5:_(<8 x s16>) = G_UDIV %3, %4 302 G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c) 303 RetRA 304 305... 306--- 307name: udiv_v4u32 308alignment: 4 309tracksRegLiveness: true 310body: | 311 bb.1.entry: 312 liveins: $a0, $a1, $a2 313 314 ; P5600-LABEL: name: udiv_v4u32 315 ; P5600: liveins: $a0, $a1, $a2 316 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 317 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 318 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 319 ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a) 320 ; P5600: [[LOAD1:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b) 321 ; P5600: [[UDIV:%[0-9]+]]:_(<4 x s32>) = G_UDIV [[LOAD]], [[LOAD1]] 322 ; P5600: G_STORE [[UDIV]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c) 323 ; P5600: RetRA 324 %0:_(p0) = COPY $a0 325 %1:_(p0) = COPY $a1 326 %2:_(p0) = COPY $a2 327 %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a) 328 %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b) 329 %5:_(<4 x s32>) = G_UDIV %3, %4 330 G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c) 331 RetRA 332 333... 334--- 335name: udiv_v2u64 336alignment: 4 337tracksRegLiveness: true 338body: | 339 bb.1.entry: 340 liveins: $a0, $a1, $a2 341 342 ; P5600-LABEL: name: udiv_v2u64 343 ; P5600: liveins: $a0, $a1, $a2 344 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 345 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 346 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 347 ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a) 348 ; P5600: [[LOAD1:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b) 349 ; P5600: [[UDIV:%[0-9]+]]:_(<2 x s64>) = G_UDIV [[LOAD]], [[LOAD1]] 350 ; P5600: G_STORE [[UDIV]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c) 351 ; P5600: RetRA 352 %0:_(p0) = COPY $a0 353 %1:_(p0) = COPY $a1 354 %2:_(p0) = COPY $a2 355 %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a) 356 %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b) 357 %5:_(<2 x s64>) = G_UDIV %3, %4 358 G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c) 359 RetRA 360 361... 362--- 363name: urem_v16u8 364alignment: 4 365tracksRegLiveness: true 366body: | 367 bb.1.entry: 368 liveins: $a0, $a1, $a2 369 370 ; P5600-LABEL: name: urem_v16u8 371 ; P5600: liveins: $a0, $a1, $a2 372 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 373 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 374 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 375 ; P5600: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a) 376 ; P5600: [[LOAD1:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b) 377 ; P5600: [[UREM:%[0-9]+]]:_(<16 x s8>) = G_UREM [[LOAD]], [[LOAD1]] 378 ; P5600: G_STORE [[UREM]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c) 379 ; P5600: RetRA 380 %0:_(p0) = COPY $a0 381 %1:_(p0) = COPY $a1 382 %2:_(p0) = COPY $a2 383 %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a) 384 %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b) 385 %5:_(<16 x s8>) = G_UREM %3, %4 386 G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c) 387 RetRA 388 389... 390--- 391name: urem_v8u16 392alignment: 4 393tracksRegLiveness: true 394body: | 395 bb.1.entry: 396 liveins: $a0, $a1, $a2 397 398 ; P5600-LABEL: name: urem_v8u16 399 ; P5600: liveins: $a0, $a1, $a2 400 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 401 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 402 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 403 ; P5600: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a) 404 ; P5600: [[LOAD1:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b) 405 ; P5600: [[UREM:%[0-9]+]]:_(<8 x s16>) = G_UREM [[LOAD]], [[LOAD1]] 406 ; P5600: G_STORE [[UREM]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c) 407 ; P5600: RetRA 408 %0:_(p0) = COPY $a0 409 %1:_(p0) = COPY $a1 410 %2:_(p0) = COPY $a2 411 %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a) 412 %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b) 413 %5:_(<8 x s16>) = G_UREM %3, %4 414 G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c) 415 RetRA 416 417... 418--- 419name: urem_v4u32 420alignment: 4 421tracksRegLiveness: true 422body: | 423 bb.1.entry: 424 liveins: $a0, $a1, $a2 425 426 ; P5600-LABEL: name: urem_v4u32 427 ; P5600: liveins: $a0, $a1, $a2 428 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 429 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 430 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 431 ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a) 432 ; P5600: [[LOAD1:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b) 433 ; P5600: [[UREM:%[0-9]+]]:_(<4 x s32>) = G_UREM [[LOAD]], [[LOAD1]] 434 ; P5600: G_STORE [[UREM]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c) 435 ; P5600: RetRA 436 %0:_(p0) = COPY $a0 437 %1:_(p0) = COPY $a1 438 %2:_(p0) = COPY $a2 439 %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a) 440 %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b) 441 %5:_(<4 x s32>) = G_UREM %3, %4 442 G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c) 443 RetRA 444 445... 446--- 447name: urem_v2u64 448alignment: 4 449tracksRegLiveness: true 450body: | 451 bb.1.entry: 452 liveins: $a0, $a1, $a2 453 454 ; P5600-LABEL: name: urem_v2u64 455 ; P5600: liveins: $a0, $a1, $a2 456 ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 457 ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 458 ; P5600: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2 459 ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a) 460 ; P5600: [[LOAD1:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b) 461 ; P5600: [[UREM:%[0-9]+]]:_(<2 x s64>) = G_UREM [[LOAD]], [[LOAD1]] 462 ; P5600: G_STORE [[UREM]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c) 463 ; P5600: RetRA 464 %0:_(p0) = COPY $a0 465 %1:_(p0) = COPY $a1 466 %2:_(p0) = COPY $a2 467 %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a) 468 %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b) 469 %5:_(<2 x s64>) = G_UREM %3, %4 470 G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c) 471 RetRA 472 473... 474