summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine
diff options
context:
space:
mode:
authorBrian Gesiak <modocache@gmail.com>2017-03-19 04:40:42 +0000
committerBrian Gesiak <modocache@gmail.com>2017-03-19 04:40:42 +0000
commit1640e687280e653947811f4305f021be8f9472e5 (patch)
treee21109cae181ee557a35c5ece1c1b502d43bb915 /llvm/test/Transforms/InstCombine
parent662c9b1e81ae198cf6b609f4348d9e469ceba6a9 (diff)
downloadbcm5719-llvm-1640e687280e653947811f4305f021be8f9472e5.tar.gz
bcm5719-llvm-1640e687280e653947811f4305f021be8f9472e5.zip
[Analysis] bitreverse(undef) returns undef
Summary: The reverse of an artbitrary bitpattern is also an arbitrary bitpattern. Reviewers: trentxintong, arsenm, majnemer Reviewed By: majnemer Subscribers: majnemer, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D31118 llvm-svn: 298201
Diffstat (limited to 'llvm/test/Transforms/InstCombine')
-rw-r--r--llvm/test/Transforms/InstCombine/bitreverse-fold.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/bitreverse-fold.ll b/llvm/test/Transforms/InstCombine/bitreverse-fold.ll
index ecdfbc8cb5f..b798ad33b3f 100644
--- a/llvm/test/Transforms/InstCombine/bitreverse-fold.ll
+++ b/llvm/test/Transforms/InstCombine/bitreverse-fold.ll
@@ -37,6 +37,13 @@ define i32 @reverse_neg1_i32() {
ret i32 %x
}
+; CHECK-LABEL: @reverse_undef_i32(
+; CHECK-NEXT: ret i32 undef
+define i32 @reverse_undef_i32() {
+ %x = call i32 @llvm.bitreverse.i32(i32 undef)
+ ret i32 %x
+}
+
; CHECK-LABEL: @reverse_false_i1(
; CHECK-NEXT: ret i1 false
define i1 @reverse_false_i1() {
@@ -51,6 +58,13 @@ define i1 @reverse_true_i1() {
ret i1 %x
}
+; CHECK-LABEL: @reverse_undef_i1(
+; CHECK-NEXT: ret i1 undef
+define i1 @reverse_undef_i1() {
+ %x = call i1 @llvm.bitreverse.i1(i1 undef)
+ ret i1 %x
+}
+
; CHECK-LABEL: @reverse_false_v2i1(
; CHECK-NEXT: ret <2 x i1> zeroinitializer
define <2 x i1> @reverse_false_v2i1() {
OpenPOWER on IntegriCloud