4
4
declare void @use.i8 (i8 )
5
5
define i1 @sdiv_exact_eq_0 (i8 %x , i8 %y ) {
6
6
; CHECK-LABEL: @sdiv_exact_eq_0(
7
- ; CHECK-NEXT: [[D:%.*]] = sdiv exact i8 [[X:%.*]], [[Y:%.*]]
8
- ; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[D]], 0
7
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[X:%.*]], 0
9
8
; CHECK-NEXT: ret i1 [[R]]
10
9
;
11
10
%d = sdiv exact i8 %x , %y
@@ -15,7 +14,7 @@ define i1 @sdiv_exact_eq_0(i8 %x, i8 %y) {
15
14
16
15
define i1 @udiv_exact_ne_0 (i8 %x , i8 %y ) {
17
16
; CHECK-LABEL: @udiv_exact_ne_0(
18
- ; CHECK-NEXT: [[R:%.*]] = icmp ule i8 [[Y :%.*]], [[X:%.*]]
17
+ ; CHECK-NEXT: [[R:%.*]] = icmp ne i8 [[X :%.*]], 0
19
18
; CHECK-NEXT: ret i1 [[R]]
20
19
;
21
20
%d = udiv exact i8 %x , %y
@@ -25,8 +24,7 @@ define i1 @udiv_exact_ne_0(i8 %x, i8 %y) {
25
24
26
25
define i1 @sdiv_exact_ne_1 (i8 %x , i8 %y ) {
27
26
; CHECK-LABEL: @sdiv_exact_ne_1(
28
- ; CHECK-NEXT: [[D:%.*]] = sdiv exact i8 [[X:%.*]], [[Y:%.*]]
29
- ; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[D]], 0
27
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[X:%.*]], 0
30
28
; CHECK-NEXT: ret i1 [[R]]
31
29
;
32
30
%d = sdiv exact i8 %x , %y
@@ -36,8 +34,7 @@ define i1 @sdiv_exact_ne_1(i8 %x, i8 %y) {
36
34
37
35
define i1 @udiv_exact_eq_1 (i8 %x , i8 %y ) {
38
36
; CHECK-LABEL: @udiv_exact_eq_1(
39
- ; CHECK-NEXT: [[D:%.*]] = udiv exact i8 [[X:%.*]], [[Y:%.*]]
40
- ; CHECK-NEXT: [[R:%.*]] = icmp ne i8 [[D]], 1
37
+ ; CHECK-NEXT: [[R:%.*]] = icmp ne i8 [[X:%.*]], [[Y:%.*]]
41
38
; CHECK-NEXT: ret i1 [[R]]
42
39
;
43
40
%d = udiv exact i8 %x , %y
@@ -48,8 +45,8 @@ define i1 @udiv_exact_eq_1(i8 %x, i8 %y) {
48
45
define i1 @sdiv_exact_eq_9_no_of (i8 %x , i8 %y ) {
49
46
; CHECK-LABEL: @sdiv_exact_eq_9_no_of(
50
47
; CHECK-NEXT: [[YY:%.*]] = and i8 [[Y:%.*]], 7
51
- ; CHECK-NEXT: [[D :%.*]] = sdiv exact i8 [[X:%.* ]], [[YY]]
52
- ; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[D ]], 9
48
+ ; CHECK-NEXT: [[TMP1 :%.*]] = mul nuw nsw i8 [[YY ]], 9
49
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[TMP1 ]], [[X:%.*]]
53
50
; CHECK-NEXT: ret i1 [[R]]
54
51
;
55
52
%yy = and i8 %y , 7
@@ -100,8 +97,8 @@ define i1 @sdiv_exact_eq_9_must_of_todo_is_false(i8 %x, i8 %y) {
100
97
define i1 @udiv_exact_ne_30_no_of (i8 %x , i8 %y ) {
101
98
; CHECK-LABEL: @udiv_exact_ne_30_no_of(
102
99
; CHECK-NEXT: [[YY:%.*]] = and i8 [[Y:%.*]], 7
103
- ; CHECK-NEXT: [[D :%.*]] = udiv exact i8 [[X:%.* ]], [[YY]]
104
- ; CHECK-NEXT: [[R:%.*]] = icmp ne i8 [[D ]], 30
100
+ ; CHECK-NEXT: [[TMP1 :%.*]] = mul nuw i8 [[YY ]], 30
101
+ ; CHECK-NEXT: [[R:%.*]] = icmp ne i8 [[TMP1 ]], [[X:%.*]]
105
102
; CHECK-NEXT: ret i1 [[R]]
106
103
;
107
104
%yy = and i8 %y , 7
0 commit comments