Skip to content

Commit 6d98d2a

Browse files
committed
pre-commit tests
1 parent dd30aa8 commit 6d98d2a

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

llvm/test/Transforms/InstCombine/rotate.ll

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,3 +981,33 @@ define i16 @check_rotate_masked_16bit(i8 %shamt, i32 %cond) {
981981
%trunc = trunc i32 %or to i16
982982
ret i16 %trunc
983983
}
984+
985+
define i32 @rotl_i32_add(i32 %x, i32 %y) {
986+
; CHECK-LABEL: @rotl_i32_add(
987+
; CHECK-NEXT: [[SUB:%.*]] = sub i32 32, [[Y:%.*]]
988+
; CHECK-NEXT: [[SHL:%.*]] = shl i32 [[X:%.*]], [[Y]]
989+
; CHECK-NEXT: [[SHR:%.*]] = lshr i32 [[X]], [[SUB]]
990+
; CHECK-NEXT: [[R:%.*]] = add i32 [[SHR]], [[SHL]]
991+
; CHECK-NEXT: ret i32 [[R]]
992+
;
993+
%sub = sub i32 32, %y
994+
%shl = shl i32 %x, %y
995+
%shr = lshr i32 %x, %sub
996+
%r = add i32 %shr, %shl
997+
ret i32 %r
998+
}
999+
1000+
define i32 @rotr_i32_add(i32 %x, i32 %y) {
1001+
; CHECK-LABEL: @rotr_i32_add(
1002+
; CHECK-NEXT: [[SUB:%.*]] = sub i32 32, [[Y:%.*]]
1003+
; CHECK-NEXT: [[SHL:%.*]] = lshr i32 [[X:%.*]], [[Y]]
1004+
; CHECK-NEXT: [[SHR:%.*]] = shl i32 [[X]], [[SUB]]
1005+
; CHECK-NEXT: [[R:%.*]] = add i32 [[SHR]], [[SHL]]
1006+
; CHECK-NEXT: ret i32 [[R]]
1007+
;
1008+
%sub = sub i32 32, %y
1009+
%shl = lshr i32 %x, %y
1010+
%shr = shl i32 %x, %sub
1011+
%r = add i32 %shr, %shl
1012+
ret i32 %r
1013+
}

0 commit comments

Comments
 (0)