summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Mips/msa/basic_operations.ll
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2015-05-05 10:32:24 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2015-05-05 10:32:24 +0000
commiteda60d217bef79adde4c4a9c384f3a66582fc19e (patch)
tree77180979724739cbef06d50a938f60fa575e4a8a /llvm/test/CodeGen/Mips/msa/basic_operations.ll
parentc89567979ac6abc12391bc0bb5bf756b048b500e (diff)
downloadbcm5719-llvm-eda60d217bef79adde4c4a9c384f3a66582fc19e.tar.gz
bcm5719-llvm-eda60d217bef79adde4c4a9c384f3a66582fc19e.zip
[mips] Generate code for insert/extract operations when using the N64 ABI and MSA.
Summary: When using the N64 ABI, element-indices use the i64 type instead of i32. In many cases, we can use iPTR to account for this but additional patterns and pseudo's are also required. This fixes most (but not quite all) failures in the test-suite when using N64 and MSA together. Reviewers: vkalintiris Reviewed By: vkalintiris Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9342 llvm-svn: 236494
Diffstat (limited to 'llvm/test/CodeGen/Mips/msa/basic_operations.ll')
-rw-r--r--llvm/test/CodeGen/Mips/msa/basic_operations.ll6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/Mips/msa/basic_operations.ll b/llvm/test/CodeGen/Mips/msa/basic_operations.ll
index 3e42c3e4b10..2efec291193 100644
--- a/llvm/test/CodeGen/Mips/msa/basic_operations.ll
+++ b/llvm/test/CodeGen/Mips/msa/basic_operations.ll
@@ -2,6 +2,8 @@
; RUN: llc -march=mipsel -mattr=+msa,+fp64 < %s | FileCheck -check-prefix=ALL -check-prefix=O32 -check-prefix=MIPS32 -check-prefix=ALL-LE %s
; RUN: llc -march=mips64 -target-abi n32 -mattr=+msa,+fp64 < %s | FileCheck -check-prefix=ALL -check-prefix=N32 -check-prefix=MIPS64 -check-prefix=ALL-BE %s
; RUN: llc -march=mips64el -target-abi n32 -mattr=+msa,+fp64 < %s | FileCheck -check-prefix=ALL -check-prefix=N32 -check-prefix=MIPS64 -check-prefix=ALL-LE %s
+; RUN: llc -march=mips64 -mattr=+msa,+fp64 < %s | FileCheck -check-prefix=ALL -check-prefix=N64 -check-prefix=MIPS64 -check-prefix=ALL-BE %s
+; RUN: llc -march=mips64el -mattr=+msa,+fp64 < %s | FileCheck -check-prefix=ALL -check-prefix=N64 -check-prefix=MIPS64 -check-prefix=ALL-LE %s
@v4i8 = global <4 x i8> <i8 0, i8 0, i8 0, i8 0>
@v16i8 = global <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>
@@ -796,7 +798,9 @@ define void @insert_v4i32_vidx(i32 signext %a) nounwind {
; ALL-DAG: sll [[BIDX:\$[0-9]+]], [[IDX]], 2
; ALL-DAG: sld.b [[R1]], [[R1]]{{\[}}[[BIDX]]]
; ALL-DAG: insert.w [[R1]][0], $4
- ; ALL-DAG: neg [[NIDX:\$[0-9]+]], [[BIDX]]
+ ; O32-DAG: neg [[NIDX:\$[0-9]+]], [[BIDX]]
+ ; N32-DAG: neg [[NIDX:\$[0-9]+]], [[BIDX]]
+ ; N64-DAG: dneg [[NIDX:\$[0-9]+]], [[BIDX]]
; ALL-DAG: sld.b [[R1]], [[R1]]{{\[}}[[NIDX]]]
store <4 x i32> %3, <4 x i32>* @v4i32
OpenPOWER on IntegriCloud