summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiangning Liu <jiangning.liu@arm.com>2013-12-03 05:36:55 +0000
committerJiangning Liu <jiangning.liu@arm.com>2013-12-03 05:36:55 +0000
commite82327ddd33456de6765a0880209ada1b823ba99 (patch)
tree614113622b3181cefd84d37ecd9938e5b67fc3f7
parent4b850c5e0d3beb45204c00d8a069a11334c2ca59 (diff)
downloadbcm5719-llvm-e82327ddd33456de6765a0880209ada1b823ba99.tar.gz
bcm5719-llvm-e82327ddd33456de6765a0880209ada1b823ba99.zip
Patch by Ana Pazos.
Fixed vcopy_laneq_f64 intrinsic implementation. llvm-svn: 196206
-rw-r--r--clang/include/clang/Basic/arm_neon.td4
-rw-r--r--clang/test/CodeGen/aarch64-neon-copy.c7
2 files changed, 5 insertions, 6 deletions
diff --git a/clang/include/clang/Basic/arm_neon.td b/clang/include/clang/Basic/arm_neon.td
index 333b822e385..8e7f6f52315 100644
--- a/clang/include/clang/Basic/arm_neon.td
+++ b/clang/include/clang/Basic/arm_neon.td
@@ -859,9 +859,9 @@ def COPY_LANE : IOpInst<"vcopy_lane", "ddidi",
def COPYQ_LANE : IOpInst<"vcopy_lane", "ddigi",
"QcQsQiQlQUcQUsQUiQUlQPcQPsQfQdQPl", OP_COPYQ_LN>;
def COPY_LANEQ : IOpInst<"vcopy_laneq", "ddiki",
- "csilPcPsPlUcUsUiUlf", OP_COPY_LNQ>;
+ "csilPcPsPlUcUsUiUlfd", OP_COPY_LNQ>;
def COPYQ_LANEQ : IOpInst<"vcopy_laneq", "ddidi",
- "QcQsQiQlQUcQUsQUiQUlQPcQPsQfdQdQPl", OP_COPY_LN>;
+ "QcQsQiQlQUcQUsQUiQUlQPcQPsQfQdQPl", OP_COPY_LN>;
////////////////////////////////////////////////////////////////////////////////
// Set all lanes to same value
diff --git a/clang/test/CodeGen/aarch64-neon-copy.c b/clang/test/CodeGen/aarch64-neon-copy.c
index 6bc6f005f36..077f7ce9135 100644
--- a/clang/test/CodeGen/aarch64-neon-copy.c
+++ b/clang/test/CodeGen/aarch64-neon-copy.c
@@ -1227,10 +1227,9 @@ uint64x1_t test_vcopy_laneq_u64(uint64x1_t a, uint64x2_t c) {
}
// CHECK: test_vcopy_laneq_f64
-float64x1_t test_vcopy_laneq_f64(float64x1_t a, float64x1_t c) {
- return vcopy_laneq_f64(a, 0, c, 0);
-// CHECK: fmov {{d[0-9]+}}, {{d[0-9]+}}
-// CHECK-NOT: dup {{d[0-9]+}}, {{v[0-9]+}}.d[0]
+float64x1_t test_vcopy_laneq_f64(float64x1_t a, float64x2_t c) {
+ return vcopy_laneq_f64(a, 0, c, 1);
+// CHECK: dup {{d[0-9]+}}, {{v[0-9]+}}.d[1]
}
// CHECK: test_vcopy_laneq_p64
OpenPOWER on IntegriCloud