5
5
define i8 @umax_of_add_nuw (i8 %a , i8 %b , i8 %c ) {
6
6
; CHECK-LABEL: define i8 @umax_of_add_nuw(
7
7
; CHECK-SAME: i8 [[A:%.*]], i8 [[B:%.*]], i8 [[C:%.*]]) {
8
- ; CHECK-NEXT: [[ADD1:%.*]] = add nuw i8 [[B]], [[A]]
9
- ; CHECK-NEXT: [[ADD2:%.*]] = add nuw i8 [[C]], [[A]]
10
- ; CHECK-NEXT: [[MAX:%.*]] = call i8 @llvm.umax.i8(i8 [[ADD1]], i8 [[ADD2]])
8
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.umax.i8(i8 [[B]], i8 [[C]])
9
+ ; CHECK-NEXT: [[MAX:%.*]] = add nuw i8 [[TMP1]], [[A]]
11
10
; CHECK-NEXT: ret i8 [[MAX]]
12
11
;
13
12
%add1 = add nuw i8 %b , %a
@@ -19,9 +18,8 @@ define i8 @umax_of_add_nuw(i8 %a, i8 %b, i8 %c) {
19
18
define i8 @umax_of_add_nuw_comm (i8 %a , i8 %b , i8 %c ) {
20
19
; CHECK-LABEL: define i8 @umax_of_add_nuw_comm(
21
20
; CHECK-SAME: i8 [[A:%.*]], i8 [[B:%.*]], i8 [[C:%.*]]) {
22
- ; CHECK-NEXT: [[ADD1:%.*]] = add nuw i8 [[A]], [[B]]
23
- ; CHECK-NEXT: [[ADD2:%.*]] = add nuw i8 [[A]], [[C]]
24
- ; CHECK-NEXT: [[MAX:%.*]] = call i8 @llvm.umax.i8(i8 [[ADD1]], i8 [[ADD2]])
21
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.umax.i8(i8 [[B]], i8 [[C]])
22
+ ; CHECK-NEXT: [[MAX:%.*]] = add nuw i8 [[TMP1]], [[A]]
25
23
; CHECK-NEXT: ret i8 [[MAX]]
26
24
;
27
25
%add1 = add nuw i8 %a , %b
@@ -64,9 +62,8 @@ define i8 @umax_of_add(i8 %a, i8 %b, i8 %c) {
64
62
define i8 @umin_of_add_nuw (i8 %a , i8 %b , i8 %c ) {
65
63
; CHECK-LABEL: define i8 @umin_of_add_nuw(
66
64
; CHECK-SAME: i8 [[A:%.*]], i8 [[B:%.*]], i8 [[C:%.*]]) {
67
- ; CHECK-NEXT: [[ADD1:%.*]] = add nuw i8 [[B]], [[A]]
68
- ; CHECK-NEXT: [[ADD2:%.*]] = add nuw i8 [[C]], [[A]]
69
- ; CHECK-NEXT: [[MIN:%.*]] = call i8 @llvm.umin.i8(i8 [[ADD1]], i8 [[ADD2]])
65
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.umin.i8(i8 [[B]], i8 [[C]])
66
+ ; CHECK-NEXT: [[MIN:%.*]] = add nuw i8 [[TMP1]], [[A]]
70
67
; CHECK-NEXT: ret i8 [[MIN]]
71
68
;
72
69
%add1 = add nuw i8 %b , %a
@@ -78,9 +75,8 @@ define i8 @umin_of_add_nuw(i8 %a, i8 %b, i8 %c) {
78
75
define i8 @umin_of_add_nuw_comm (i8 %a , i8 %b , i8 %c ) {
79
76
; CHECK-LABEL: define i8 @umin_of_add_nuw_comm(
80
77
; CHECK-SAME: i8 [[A:%.*]], i8 [[B:%.*]], i8 [[C:%.*]]) {
81
- ; CHECK-NEXT: [[ADD1:%.*]] = add nuw i8 [[A]], [[B]]
82
- ; CHECK-NEXT: [[ADD2:%.*]] = add nuw i8 [[A]], [[C]]
83
- ; CHECK-NEXT: [[MIN:%.*]] = call i8 @llvm.umin.i8(i8 [[ADD1]], i8 [[ADD2]])
78
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.umin.i8(i8 [[B]], i8 [[C]])
79
+ ; CHECK-NEXT: [[MIN:%.*]] = add nuw i8 [[TMP1]], [[A]]
84
80
; CHECK-NEXT: ret i8 [[MIN]]
85
81
;
86
82
%add1 = add nuw i8 %a , %b
@@ -137,9 +133,8 @@ define i8 @smax_of_add_nuw(i8 %a, i8 %b, i8 %c) {
137
133
define i8 @smax_of_add_nsw (i8 %a , i8 %b , i8 %c ) {
138
134
; CHECK-LABEL: define i8 @smax_of_add_nsw(
139
135
; CHECK-SAME: i8 [[A:%.*]], i8 [[B:%.*]], i8 [[C:%.*]]) {
140
- ; CHECK-NEXT: [[ADD1:%.*]] = add nsw i8 [[B]], [[A]]
141
- ; CHECK-NEXT: [[ADD2:%.*]] = add nsw i8 [[C]], [[A]]
142
- ; CHECK-NEXT: [[MAX:%.*]] = call i8 @llvm.smax.i8(i8 [[ADD1]], i8 [[ADD2]])
136
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.smax.i8(i8 [[B]], i8 [[C]])
137
+ ; CHECK-NEXT: [[MAX:%.*]] = add nsw i8 [[TMP1]], [[A]]
143
138
; CHECK-NEXT: ret i8 [[MAX]]
144
139
;
145
140
%add1 = add nsw i8 %b , %a
@@ -151,9 +146,8 @@ define i8 @smax_of_add_nsw(i8 %a, i8 %b, i8 %c) {
151
146
define i8 @smax_of_add_nsw_comm (i8 %a , i8 %b , i8 %c ) {
152
147
; CHECK-LABEL: define i8 @smax_of_add_nsw_comm(
153
148
; CHECK-SAME: i8 [[A:%.*]], i8 [[B:%.*]], i8 [[C:%.*]]) {
154
- ; CHECK-NEXT: [[ADD1:%.*]] = add nsw i8 [[A]], [[B]]
155
- ; CHECK-NEXT: [[ADD2:%.*]] = add nsw i8 [[A]], [[C]]
156
- ; CHECK-NEXT: [[MAX:%.*]] = call i8 @llvm.smax.i8(i8 [[ADD1]], i8 [[ADD2]])
149
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.smax.i8(i8 [[B]], i8 [[C]])
150
+ ; CHECK-NEXT: [[MAX:%.*]] = add nsw i8 [[TMP1]], [[A]]
157
151
; CHECK-NEXT: ret i8 [[MAX]]
158
152
;
159
153
%add1 = add nsw i8 %a , %b
@@ -195,9 +189,8 @@ define i8 @smin_of_add_nuw(i8 %a, i8 %b, i8 %c) {
195
189
define i8 @smin_of_add_nsw (i8 %a , i8 %b , i8 %c ) {
196
190
; CHECK-LABEL: define i8 @smin_of_add_nsw(
197
191
; CHECK-SAME: i8 [[A:%.*]], i8 [[B:%.*]], i8 [[C:%.*]]) {
198
- ; CHECK-NEXT: [[ADD1:%.*]] = add nsw i8 [[B]], [[A]]
199
- ; CHECK-NEXT: [[ADD2:%.*]] = add nsw i8 [[C]], [[A]]
200
- ; CHECK-NEXT: [[MIN:%.*]] = call i8 @llvm.smin.i8(i8 [[ADD1]], i8 [[ADD2]])
192
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.smin.i8(i8 [[B]], i8 [[C]])
193
+ ; CHECK-NEXT: [[MIN:%.*]] = add nsw i8 [[TMP1]], [[A]]
201
194
; CHECK-NEXT: ret i8 [[MIN]]
202
195
;
203
196
%add1 = add nsw i8 %b , %a
@@ -209,9 +202,8 @@ define i8 @smin_of_add_nsw(i8 %a, i8 %b, i8 %c) {
209
202
define i8 @smin_of_add_nsw_comm (i8 %a , i8 %b , i8 %c ) {
210
203
; CHECK-LABEL: define i8 @smin_of_add_nsw_comm(
211
204
; CHECK-SAME: i8 [[A:%.*]], i8 [[B:%.*]], i8 [[C:%.*]]) {
212
- ; CHECK-NEXT: [[ADD1:%.*]] = add nsw i8 [[A]], [[B]]
213
- ; CHECK-NEXT: [[ADD2:%.*]] = add nsw i8 [[A]], [[C]]
214
- ; CHECK-NEXT: [[MIN:%.*]] = call i8 @llvm.smin.i8(i8 [[ADD1]], i8 [[ADD2]])
205
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.smin.i8(i8 [[B]], i8 [[C]])
206
+ ; CHECK-NEXT: [[MIN:%.*]] = add nsw i8 [[TMP1]], [[A]]
215
207
; CHECK-NEXT: ret i8 [[MIN]]
216
208
;
217
209
%add1 = add nsw i8 %a , %b
0 commit comments