55define i8 @umax_of_add_nuw (i8 %a , i8 %b , i8 %c ) {
66; CHECK-LABEL: define i8 @umax_of_add_nuw(
77; 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]]
1110; CHECK-NEXT: ret i8 [[MAX]]
1211;
1312 %add1 = add nuw i8 %b , %a
@@ -19,9 +18,8 @@ define i8 @umax_of_add_nuw(i8 %a, i8 %b, i8 %c) {
1918define i8 @umax_of_add_nuw_comm (i8 %a , i8 %b , i8 %c ) {
2019; CHECK-LABEL: define i8 @umax_of_add_nuw_comm(
2120; 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]]
2523; CHECK-NEXT: ret i8 [[MAX]]
2624;
2725 %add1 = add nuw i8 %a , %b
@@ -64,9 +62,8 @@ define i8 @umax_of_add(i8 %a, i8 %b, i8 %c) {
6462define i8 @umin_of_add_nuw (i8 %a , i8 %b , i8 %c ) {
6563; CHECK-LABEL: define i8 @umin_of_add_nuw(
6664; 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]]
7067; CHECK-NEXT: ret i8 [[MIN]]
7168;
7269 %add1 = add nuw i8 %b , %a
@@ -78,9 +75,8 @@ define i8 @umin_of_add_nuw(i8 %a, i8 %b, i8 %c) {
7875define i8 @umin_of_add_nuw_comm (i8 %a , i8 %b , i8 %c ) {
7976; CHECK-LABEL: define i8 @umin_of_add_nuw_comm(
8077; 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]]
8480; CHECK-NEXT: ret i8 [[MIN]]
8581;
8682 %add1 = add nuw i8 %a , %b
@@ -137,9 +133,8 @@ define i8 @smax_of_add_nuw(i8 %a, i8 %b, i8 %c) {
137133define i8 @smax_of_add_nsw (i8 %a , i8 %b , i8 %c ) {
138134; CHECK-LABEL: define i8 @smax_of_add_nsw(
139135; 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]]
143138; CHECK-NEXT: ret i8 [[MAX]]
144139;
145140 %add1 = add nsw i8 %b , %a
@@ -151,9 +146,8 @@ define i8 @smax_of_add_nsw(i8 %a, i8 %b, i8 %c) {
151146define i8 @smax_of_add_nsw_comm (i8 %a , i8 %b , i8 %c ) {
152147; CHECK-LABEL: define i8 @smax_of_add_nsw_comm(
153148; 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]]
157151; CHECK-NEXT: ret i8 [[MAX]]
158152;
159153 %add1 = add nsw i8 %a , %b
@@ -195,9 +189,8 @@ define i8 @smin_of_add_nuw(i8 %a, i8 %b, i8 %c) {
195189define i8 @smin_of_add_nsw (i8 %a , i8 %b , i8 %c ) {
196190; CHECK-LABEL: define i8 @smin_of_add_nsw(
197191; 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]]
201194; CHECK-NEXT: ret i8 [[MIN]]
202195;
203196 %add1 = add nsw i8 %b , %a
@@ -209,9 +202,8 @@ define i8 @smin_of_add_nsw(i8 %a, i8 %b, i8 %c) {
209202define i8 @smin_of_add_nsw_comm (i8 %a , i8 %b , i8 %c ) {
210203; CHECK-LABEL: define i8 @smin_of_add_nsw_comm(
211204; 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]]
215207; CHECK-NEXT: ret i8 [[MIN]]
216208;
217209 %add1 = add nsw i8 %a , %b
0 commit comments