Skip to content
This repository was archived by the owner on Mar 28, 2020. It is now read-only.

Commit de55cfe

Browse files
committed
[InstCombine] add tests for icmp with bitreversed ops; NFC
This is similar enough to bswap that we might as well handle them together in one patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306591 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent d9e1a18 commit de55cfe

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

test/Transforms/InstCombine/icmp.ll

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3005,3 +3005,33 @@ define <8 x i1> @bswap_vec_eq(<8 x i16> %x, <8 x i16> %y) {
30053005
ret <8 x i1> %cmp
30063006
}
30073007

3008+
declare i64 @llvm.bitreverse.i64(i64)
3009+
3010+
define i1 @bitreverse_eq(i64 %x, i64 %y) {
3011+
; CHECK-LABEL: @bitreverse_eq(
3012+
; CHECK-NEXT: [[REVX:%.*]] = call i64 @llvm.bitreverse.i64(i64 %x)
3013+
; CHECK-NEXT: [[REVY:%.*]] = call i64 @llvm.bitreverse.i64(i64 %y)
3014+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[REVX]], [[REVY]]
3015+
; CHECK-NEXT: ret i1 [[CMP]]
3016+
;
3017+
%revx = call i64 @llvm.bitreverse.i64(i64 %x)
3018+
%revy = call i64 @llvm.bitreverse.i64(i64 %y)
3019+
%cmp = icmp eq i64 %revx, %revy
3020+
ret i1 %cmp
3021+
}
3022+
3023+
declare <8 x i16> @llvm.bitreverse.v8i16(<8 x i16>)
3024+
3025+
define <8 x i1> @bitreverse_vec_ne(<8 x i16> %x, <8 x i16> %y) {
3026+
; CHECK-LABEL: @bitreverse_vec_ne(
3027+
; CHECK-NEXT: [[REVX:%.*]] = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %x)
3028+
; CHECK-NEXT: [[REVY:%.*]] = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %y)
3029+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne <8 x i16> [[REVX]], [[REVY]]
3030+
; CHECK-NEXT: ret <8 x i1> [[CMP]]
3031+
;
3032+
%revx = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %x)
3033+
%revy = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %y)
3034+
%cmp = icmp ne <8 x i16> %revx, %revy
3035+
ret <8 x i1> %cmp
3036+
}
3037+

0 commit comments

Comments
 (0)