diff options
author | Amara Emerson <aemerson@apple.com> | 2019-04-10 23:06:11 +0000 |
---|---|---|
committer | Amara Emerson <aemerson@apple.com> | 2019-04-10 23:06:11 +0000 |
commit | a7ff111b04ab2788b4de6bd13d8105577e8123bd (patch) | |
tree | 9f10440a0bb074ab130c5ec7d50738409f2ef278 /llvm/test/CodeGen/AArch64 | |
parent | ae878dab035123f34af936b8a3ad543f44665e14 (diff) | |
download | bcm5719-llvm-a7ff111b04ab2788b4de6bd13d8105577e8123bd.tar.gz bcm5719-llvm-a7ff111b04ab2788b4de6bd13d8105577e8123bd.zip |
[AArch64][GlobalISel] Add legalizer support for <8 x s16> and <16 x s8> G_ADD.
llvm-svn: 358143
Diffstat (limited to 'llvm/test/CodeGen/AArch64')
-rw-r--r-- | llvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir | 46 | ||||
-rw-r--r-- | llvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir | 61 |
2 files changed, 107 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir index c3773f50cb0..3c2a52b7f0a 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir +++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir @@ -130,3 +130,49 @@ body: | $q1 = COPY %8(<2 x s64>) $q2 = COPY %9(<2 x s64>) ... +--- +name: add_v8i16 +alignment: 2 +tracksRegLiveness: true +machineFunctionInfo: {} +body: | + bb.1: + liveins: $q0, $q1 + + ; CHECK-LABEL: name: add_v8i16 + ; CHECK: liveins: $q0, $q1 + ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0 + ; CHECK: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1 + ; CHECK: [[ADD:%[0-9]+]]:_(<8 x s16>) = G_ADD [[COPY]], [[COPY1]] + ; CHECK: $q0 = COPY [[ADD]](<8 x s16>) + ; CHECK: RET_ReallyLR implicit $q0 + %0:_(<8 x s16>) = COPY $q0 + %1:_(<8 x s16>) = COPY $q1 + %2:_(<8 x s16>) = G_ADD %0, %1 + $q0 = COPY %2(<8 x s16>) + RET_ReallyLR implicit $q0 + +... +--- +name: add_v16i8 +alignment: 2 +tracksRegLiveness: true +machineFunctionInfo: {} +body: | + bb.1: + liveins: $q0, $q1 + + ; CHECK-LABEL: name: add_v16i8 + ; CHECK: liveins: $q0, $q1 + ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0 + ; CHECK: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1 + ; CHECK: [[ADD:%[0-9]+]]:_(<16 x s8>) = G_ADD [[COPY]], [[COPY1]] + ; CHECK: $q0 = COPY [[ADD]](<16 x s8>) + ; CHECK: RET_ReallyLR implicit $q0 + %0:_(<16 x s8>) = COPY $q0 + %1:_(<16 x s8>) = COPY $q1 + %2:_(<16 x s8>) = G_ADD %0, %1 + $q0 = COPY %2(<16 x s8>) + RET_ReallyLR implicit $q0 + +... diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir b/llvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir index 8c858bcdb3e..9c4731e3b5d 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir +++ b/llvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir @@ -54,6 +54,9 @@ define void @fdiv_s32_fpr() { ret void } define void @fdiv_s64_fpr() { ret void } + define void @add_v8i16() { ret void } + define void @add_v16i8() { ret void } + ... --- @@ -912,3 +915,61 @@ body: | %2(s64) = G_FDIV %0, %1 $d0 = COPY %2(s64) ... +--- +name: add_v8i16 +alignment: 2 +legalized: true +regBankSelected: true +tracksRegLiveness: true +registers: + - { id: 0, class: fpr } + - { id: 1, class: fpr } + - { id: 2, class: fpr } +machineFunctionInfo: {} +body: | + bb.1: + liveins: $q0, $q1 + + ; CHECK-LABEL: name: add_v8i16 + ; CHECK: liveins: $q0, $q1 + ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0 + ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1 + ; CHECK: [[ADDv8i16_:%[0-9]+]]:fpr128 = ADDv8i16 [[COPY]], [[COPY1]] + ; CHECK: $q0 = COPY [[ADDv8i16_]] + ; CHECK: RET_ReallyLR implicit $q0 + %0:fpr(<8 x s16>) = COPY $q0 + %1:fpr(<8 x s16>) = COPY $q1 + %2:fpr(<8 x s16>) = G_ADD %0, %1 + $q0 = COPY %2(<8 x s16>) + RET_ReallyLR implicit $q0 + +... +--- +name: add_v16i8 +alignment: 2 +legalized: true +regBankSelected: true +tracksRegLiveness: true +registers: + - { id: 0, class: fpr } + - { id: 1, class: fpr } + - { id: 2, class: fpr } +machineFunctionInfo: {} +body: | + bb.1: + liveins: $q0, $q1 + + ; CHECK-LABEL: name: add_v16i8 + ; CHECK: liveins: $q0, $q1 + ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0 + ; CHECK: [[COPY1:%[0-9]+]]:fpr128 = COPY $q1 + ; CHECK: [[ADDv16i8_:%[0-9]+]]:fpr128 = ADDv16i8 [[COPY]], [[COPY1]] + ; CHECK: $q0 = COPY [[ADDv16i8_]] + ; CHECK: RET_ReallyLR implicit $q0 + %0:fpr(<16 x s8>) = COPY $q0 + %1:fpr(<16 x s8>) = COPY $q1 + %2:fpr(<16 x s8>) = G_ADD %0, %1 + $q0 = COPY %2(<16 x s8>) + RET_ReallyLR implicit $q0 + +... |