127 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=mipsel-linux-gnu -mcpu=mips32r5 -mattr=+msa,+fp64,+nan2008 -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=P56003--- |4 5 define void @add_v16i8(ptr %a, ptr %b, ptr %c) { entry: ret void }6 define void @add_v8i16(ptr %a, ptr %b, ptr %c) { entry: ret void }7 define void @add_v4i32(ptr %a, ptr %b, ptr %c) { entry: ret void }8 define void @add_v2i64(ptr %a, ptr %b, ptr %c) { entry: ret void }9 10...11---12name: add_v16i813alignment: 414legalized: true15tracksRegLiveness: true16body: |17 bb.1.entry:18 liveins: $a0, $a1, $a219 20 ; P5600-LABEL: name: add_v16i821 ; P5600: liveins: $a0, $a1, $a222 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a023 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a124 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a225 ; P5600: [[LOAD:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY]](p0) :: (load (<16 x s8>) from %ir.a)26 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>) from %ir.b)27 ; P5600: [[ADD:%[0-9]+]]:fprb(<16 x s8>) = G_ADD [[LOAD1]], [[LOAD]]28 ; P5600: G_STORE [[ADD]](<16 x s8>), [[COPY2]](p0) :: (store (<16 x s8>) into %ir.c)29 ; P5600: RetRA30 %0:_(p0) = COPY $a031 %1:_(p0) = COPY $a132 %2:_(p0) = COPY $a233 %3:_(<16 x s8>) = G_LOAD %0(p0) :: (load (<16 x s8>) from %ir.a)34 %4:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>) from %ir.b)35 %5:_(<16 x s8>) = G_ADD %4, %336 G_STORE %5(<16 x s8>), %2(p0) :: (store (<16 x s8>) into %ir.c)37 RetRA38 39...40---41name: add_v8i1642alignment: 443legalized: true44tracksRegLiveness: true45body: |46 bb.1.entry:47 liveins: $a0, $a1, $a248 49 ; P5600-LABEL: name: add_v8i1650 ; P5600: liveins: $a0, $a1, $a251 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a052 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a153 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a254 ; P5600: [[LOAD:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY]](p0) :: (load (<8 x s16>) from %ir.a)55 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>) from %ir.b)56 ; P5600: [[ADD:%[0-9]+]]:fprb(<8 x s16>) = G_ADD [[LOAD1]], [[LOAD]]57 ; P5600: G_STORE [[ADD]](<8 x s16>), [[COPY2]](p0) :: (store (<8 x s16>) into %ir.c)58 ; P5600: RetRA59 %0:_(p0) = COPY $a060 %1:_(p0) = COPY $a161 %2:_(p0) = COPY $a262 %3:_(<8 x s16>) = G_LOAD %0(p0) :: (load (<8 x s16>) from %ir.a)63 %4:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>) from %ir.b)64 %5:_(<8 x s16>) = G_ADD %4, %365 G_STORE %5(<8 x s16>), %2(p0) :: (store (<8 x s16>) into %ir.c)66 RetRA67 68...69---70name: add_v4i3271alignment: 472legalized: true73tracksRegLiveness: true74body: |75 bb.1.entry:76 liveins: $a0, $a1, $a277 78 ; P5600-LABEL: name: add_v4i3279 ; P5600: liveins: $a0, $a1, $a280 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a081 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a182 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a283 ; P5600: [[LOAD:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY]](p0) :: (load (<4 x s32>) from %ir.a)84 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>) from %ir.b)85 ; P5600: [[ADD:%[0-9]+]]:fprb(<4 x s32>) = G_ADD [[LOAD1]], [[LOAD]]86 ; P5600: G_STORE [[ADD]](<4 x s32>), [[COPY2]](p0) :: (store (<4 x s32>) into %ir.c)87 ; P5600: RetRA88 %0:_(p0) = COPY $a089 %1:_(p0) = COPY $a190 %2:_(p0) = COPY $a291 %3:_(<4 x s32>) = G_LOAD %0(p0) :: (load (<4 x s32>) from %ir.a)92 %4:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>) from %ir.b)93 %5:_(<4 x s32>) = G_ADD %4, %394 G_STORE %5(<4 x s32>), %2(p0) :: (store (<4 x s32>) into %ir.c)95 RetRA96 97...98---99name: add_v2i64100alignment: 4101legalized: true102tracksRegLiveness: true103body: |104 bb.1.entry:105 liveins: $a0, $a1, $a2106 107 ; P5600-LABEL: name: add_v2i64108 ; P5600: liveins: $a0, $a1, $a2109 ; P5600: [[COPY:%[0-9]+]]:gprb(p0) = COPY $a0110 ; P5600: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $a1111 ; P5600: [[COPY2:%[0-9]+]]:gprb(p0) = COPY $a2112 ; P5600: [[LOAD:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY]](p0) :: (load (<2 x s64>) from %ir.a)113 ; P5600: [[LOAD1:%[0-9]+]]:fprb(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>) from %ir.b)114 ; P5600: [[ADD:%[0-9]+]]:fprb(<2 x s64>) = G_ADD [[LOAD1]], [[LOAD]]115 ; P5600: G_STORE [[ADD]](<2 x s64>), [[COPY2]](p0) :: (store (<2 x s64>) into %ir.c)116 ; P5600: RetRA117 %0:_(p0) = COPY $a0118 %1:_(p0) = COPY $a1119 %2:_(p0) = COPY $a2120 %3:_(<2 x s64>) = G_LOAD %0(p0) :: (load (<2 x s64>) from %ir.a)121 %4:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>) from %ir.b)122 %5:_(<2 x s64>) = G_ADD %4, %3123 G_STORE %5(<2 x s64>), %2(p0) :: (store (<2 x s64>) into %ir.c)124 RetRA125 126...127