summaryrefslogtreecommitdiff
path: root/test/CodeGen/ARM64
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-04-14 12:59:52 +0000
committerTim Northover <tnorthover@apple.com>2014-04-14 12:59:52 +0000
commit856ecbc0680beaff74891cac5917678acb080dc9 (patch)
tree6abc22344fdffc8101f9a229b138b3ef89e468ef /test/CodeGen/ARM64
parente90d4e2c6938686cc72f805dd887cc5ae892909b (diff)
downloadllvm-856ecbc0680beaff74891cac5917678acb080dc9.tar.gz
llvm-856ecbc0680beaff74891cac5917678acb080dc9.tar.bz2
llvm-856ecbc0680beaff74891cac5917678acb080dc9.tar.xz
ARM64: remove buggy REV16 pattern.
The 32-bit pattern is still valid: 0123 -> 3210 -> 1032. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206172 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM64')
-rw-r--r--test/CodeGen/ARM64/rev.ll5
1 files changed, 4 insertions, 1 deletions
diff --git a/test/CodeGen/ARM64/rev.ll b/test/CodeGen/ARM64/rev.ll
index 867d5b3c51..0006ea3317 100644
--- a/test/CodeGen/ARM64/rev.ll
+++ b/test/CodeGen/ARM64/rev.ll
@@ -36,10 +36,13 @@ entry:
ret i32 %tmp14
}
+; 64-bit REV16 is *not* a swap then a 16-bit rotation:
+; 01234567 ->(bswap) 76543210 ->(rotr) 10765432
+; 01234567 ->(rev16) 10325476
define i64 @test_rev16_x(i64 %a) nounwind {
entry:
; CHECK-LABEL: test_rev16_x:
-; CHECK: rev16 x0, x0
+; CHECK-NOT: rev16 x0, x0
%0 = tail call i64 @llvm.bswap.i64(i64 %a)
%1 = lshr i64 %0, 16
%2 = shl i64 %0, 48