summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2018-11-27 00:08:21 +0000
committerSanjay Patel <spatel@rotateright.com>2018-11-27 00:08:21 +0000
commit703299e5e944e4dc7a44bbcff6df03bb74b2ab62 (patch)
tree8a0daf454cafebf6600396924b35b0dc902bd7d2 /llvm/test/Transforms
parent3b47649fa8c27496892be4f687672d7dc447215b (diff)
downloadbcm5719-llvm-703299e5e944e4dc7a44bbcff6df03bb74b2ab62.tar.gz
bcm5719-llvm-703299e5e944e4dc7a44bbcff6df03bb74b2ab62.zip
[InstCombine] add tests for rotate/bswap equality; NFC
llvm-svn: 347618
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/InstCombine/fsh.ll23
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/fsh.ll b/llvm/test/Transforms/InstCombine/fsh.ll
index a9fb826cddc..f4c54ad3c92 100644
--- a/llvm/test/Transforms/InstCombine/fsh.ll
+++ b/llvm/test/Transforms/InstCombine/fsh.ll
@@ -405,3 +405,26 @@ define i33 @expanded_fshr_multi_use(i33 %a) {
ret i33 %e
}
+declare i16 @llvm.fshl.i16(i16, i16, i16)
+declare i16 @llvm.fshr.i16(i16, i16, i16)
+
+; Special-case: rotate a 16-bit value left/right by 8-bits is bswap.
+
+define i16 @fshl_bswap(i16 %x) {
+; CHECK-LABEL: @fshl_bswap(
+; CHECK-NEXT: [[R:%.*]] = call i16 @llvm.fshl.i16(i16 [[X:%.*]], i16 [[X]], i16 8)
+; CHECK-NEXT: ret i16 [[R]]
+;
+ %r = call i16 @llvm.fshl.i16(i16 %x, i16 %x, i16 8)
+ ret i16 %r
+}
+
+define i16 @fshr_bswap(i16 %x) {
+; CHECK-LABEL: @fshr_bswap(
+; CHECK-NEXT: [[R:%.*]] = call i16 @llvm.fshr.i16(i16 [[X:%.*]], i16 [[X]], i16 8)
+; CHECK-NEXT: ret i16 [[R]]
+;
+ %r = call i16 @llvm.fshr.i16(i16 %x, i16 %x, i16 8)
+ ret i16 %r
+}
+
OpenPOWER on IntegriCloud