88define i16 @smax_smin (i16 %x ) {
99; CHECK-LABEL: define i16 @smax_smin(
1010; CHECK-SAME: i16 [[X:%.*]]) {
11- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.smin .i16(i16 [[X]], i16 255 )
12- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smax .i16(i16 [[MIN ]], i16 -1 )
11+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.smax .i16(i16 [[X]], i16 -1 )
12+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smin .i16(i16 [[TMP1 ]], i16 255 )
1313; CHECK-NEXT: ret i16 [[MAX]]
1414;
1515 %min = call i16 @llvm.smin.i16 (i16 %x , i16 255 )
@@ -20,8 +20,8 @@ define i16 @smax_smin(i16 %x) {
2020define i16 @umax_umin (i16 %x ) {
2121; CHECK-LABEL: define i16 @umax_umin(
2222; CHECK-SAME: i16 [[X:%.*]]) {
23- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.umin .i16(i16 [[X]], i16 255 )
24- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umax .i16(i16 [[MIN ]], i16 63 )
23+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.umax .i16(i16 [[X]], i16 63 )
24+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umin .i16(i16 [[TMP1 ]], i16 255 )
2525; CHECK-NEXT: ret i16 [[MAX]]
2626;
2727 %min = call i16 @llvm.umin.i16 (i16 %x , i16 255 )
@@ -32,8 +32,8 @@ define i16 @umax_umin(i16 %x) {
3232define i16 @smax_smin_commute0 (i16 %x ) {
3333; CHECK-LABEL: define i16 @smax_smin_commute0(
3434; CHECK-SAME: i16 [[X:%.*]]) {
35- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.smin .i16(i16 [[X]], i16 127 )
36- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smax .i16(i16 [[MIN ]], i16 -128 )
35+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.smax .i16(i16 [[X]], i16 -128 )
36+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smin .i16(i16 [[TMP1 ]], i16 127 )
3737; CHECK-NEXT: ret i16 [[MAX]]
3838;
3939 %min = call i16 @llvm.smin.i16 (i16 %x , i16 127 )
@@ -44,8 +44,8 @@ define i16 @smax_smin_commute0(i16 %x) {
4444define i16 @umax_umin_commute0 (i16 %x ) {
4545; CHECK-LABEL: define i16 @umax_umin_commute0(
4646; CHECK-SAME: i16 [[X:%.*]]) {
47- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.umin .i16(i16 [[X]], i16 255 )
48- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umax .i16(i16 [[MIN ]], i16 127 )
47+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.umax .i16(i16 [[X]], i16 127 )
48+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umin .i16(i16 [[TMP1 ]], i16 255 )
4949; CHECK-NEXT: ret i16 [[MAX]]
5050;
5151 %min = call i16 @llvm.umin.i16 (i16 %x , i16 255 )
@@ -56,8 +56,8 @@ define i16 @umax_umin_commute0(i16 %x) {
5656define i16 @smax_smin_commute1 (i16 %x ) {
5757; CHECK-LABEL: define i16 @smax_smin_commute1(
5858; CHECK-SAME: i16 [[X:%.*]]) {
59- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.smin .i16(i16 [[X]], i16 127 )
60- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smax .i16(i16 [[MIN ]], i16 -128 )
59+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.smax .i16(i16 [[X]], i16 -128 )
60+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smin .i16(i16 [[TMP1 ]], i16 127 )
6161; CHECK-NEXT: ret i16 [[MAX]]
6262;
6363 %min = call i16 @llvm.smin.i16 (i16 127 , i16 %x )
@@ -68,8 +68,8 @@ define i16 @smax_smin_commute1(i16 %x) {
6868define i16 @umax_umin_commute1 (i16 %x ) {
6969; CHECK-LABEL: define i16 @umax_umin_commute1(
7070; CHECK-SAME: i16 [[X:%.*]]) {
71- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.umin .i16(i16 [[X]], i16 255 )
72- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umax .i16(i16 [[MIN ]], i16 127 )
71+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.umax .i16(i16 [[X]], i16 127 )
72+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umin .i16(i16 [[TMP1 ]], i16 255 )
7373; CHECK-NEXT: ret i16 [[MAX]]
7474;
7575 %min = call i16 @llvm.umin.i16 (i16 255 , i16 %x )
@@ -80,8 +80,8 @@ define i16 @umax_umin_commute1(i16 %x) {
8080define i16 @smax_smin_commute2 (i16 %x ) {
8181; CHECK-LABEL: define i16 @smax_smin_commute2(
8282; CHECK-SAME: i16 [[X:%.*]]) {
83- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.smin .i16(i16 [[X]], i16 127 )
84- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smax .i16(i16 [[MIN ]], i16 -128 )
83+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.smax .i16(i16 [[X]], i16 -128 )
84+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smin .i16(i16 [[TMP1 ]], i16 127 )
8585; CHECK-NEXT: ret i16 [[MAX]]
8686;
8787 %min = call i16 @llvm.smin.i16 (i16 %x , i16 127 )
@@ -92,8 +92,8 @@ define i16 @smax_smin_commute2(i16 %x) {
9292define i16 @umax_umin_commute2 (i16 %x ) {
9393; CHECK-LABEL: define i16 @umax_umin_commute2(
9494; CHECK-SAME: i16 [[X:%.*]]) {
95- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.umin .i16(i16 [[X]], i16 255 )
96- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umax .i16(i16 [[MIN ]], i16 127 )
95+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.umax .i16(i16 [[X]], i16 127 )
96+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umin .i16(i16 [[TMP1 ]], i16 255 )
9797; CHECK-NEXT: ret i16 [[MAX]]
9898;
9999 %min = call i16 @llvm.umin.i16 (i16 %x , i16 255 )
@@ -104,8 +104,8 @@ define i16 @umax_umin_commute2(i16 %x) {
104104define i16 @smax_smin_commute3 (i16 %x ) {
105105; CHECK-LABEL: define i16 @smax_smin_commute3(
106106; CHECK-SAME: i16 [[X:%.*]]) {
107- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.smin .i16(i16 [[X]], i16 127 )
108- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smax .i16(i16 [[MIN ]], i16 -128 )
107+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.smax .i16(i16 [[X]], i16 -128 )
108+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.smin .i16(i16 [[TMP1 ]], i16 127 )
109109; CHECK-NEXT: ret i16 [[MAX]]
110110;
111111 %min = call i16 @llvm.smin.i16 (i16 %x , i16 127 )
@@ -116,8 +116,8 @@ define i16 @smax_smin_commute3(i16 %x) {
116116define i16 @umax_umin_commute3 (i16 %x ) {
117117; CHECK-LABEL: define i16 @umax_umin_commute3(
118118; CHECK-SAME: i16 [[X:%.*]]) {
119- ; CHECK-NEXT: [[MIN :%.*]] = call i16 @llvm.umin .i16(i16 [[X]], i16 255 )
120- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umax .i16(i16 [[MIN ]], i16 127 )
119+ ; CHECK-NEXT: [[TMP1 :%.*]] = call i16 @llvm.umax .i16(i16 [[X]], i16 127 )
120+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umin .i16(i16 [[TMP1 ]], i16 255 )
121121; CHECK-NEXT: ret i16 [[MAX]]
122122;
123123 %min = call i16 @llvm.umin.i16 (i16 %x , i16 255 )
@@ -128,8 +128,8 @@ define i16 @umax_umin_commute3(i16 %x) {
128128define <2 x i16 > @smax_smin_v2i16 (<2 x i16 > %x ) {
129129; CHECK-LABEL: define <2 x i16> @smax_smin_v2i16(
130130; CHECK-SAME: <2 x i16> [[X:%.*]]) {
131- ; CHECK-NEXT: [[MIN :%.*]] = call <2 x i16> @llvm.smin .v2i16(<2 x i16> [[X]], <2 x i16> splat (i16 127 ))
132- ; CHECK-NEXT: [[MAX:%.*]] = call <2 x i16> @llvm.smax .v2i16(<2 x i16> [[MIN ]], <2 x i16> splat (i16 -128 ))
131+ ; CHECK-NEXT: [[TMP1 :%.*]] = call <2 x i16> @llvm.smax .v2i16(<2 x i16> [[X]], <2 x i16> splat (i16 -128 ))
132+ ; CHECK-NEXT: [[MAX:%.*]] = call <2 x i16> @llvm.smin .v2i16(<2 x i16> [[TMP1 ]], <2 x i16> splat (i16 127 ))
133133; CHECK-NEXT: ret <2 x i16> [[MAX]]
134134;
135135 %min = call <2 x i16 > @llvm.smin.v2i16 (<2 x i16 > %x , <2 x i16 > splat (i16 127 ))
@@ -140,8 +140,8 @@ define <2 x i16> @smax_smin_v2i16(<2 x i16> %x) {
140140define <2 x i16 > @umax_umin_v2i16 (<2 x i16 > %x ) {
141141; CHECK-LABEL: define <2 x i16> @umax_umin_v2i16(
142142; CHECK-SAME: <2 x i16> [[X:%.*]]) {
143- ; CHECK-NEXT: [[MIN :%.*]] = call <2 x i16> @llvm.umin .v2i16(<2 x i16> [[X]], <2 x i16> splat (i16 255 ))
144- ; CHECK-NEXT: [[MAX:%.*]] = call <2 x i16> @llvm.umax .v2i16(<2 x i16> [[MIN ]], <2 x i16> splat (i16 127 ))
143+ ; CHECK-NEXT: [[TMP1 :%.*]] = call <2 x i16> @llvm.umax .v2i16(<2 x i16> [[X]], <2 x i16> splat (i16 127 ))
144+ ; CHECK-NEXT: [[MAX:%.*]] = call <2 x i16> @llvm.umin .v2i16(<2 x i16> [[TMP1 ]], <2 x i16> splat (i16 255 ))
145145; CHECK-NEXT: ret <2 x i16> [[MAX]]
146146;
147147 %min = call <2 x i16 > @llvm.umin.v2i16 (<2 x i16 > %x , <2 x i16 > splat (i16 255 ))
@@ -251,8 +251,7 @@ define i16 @umax_umin_i16_limits(i16 %x) {
251251define i16 @min_smax_smin_nested (i16 %x ) {
252252; CHECK-LABEL: define i16 @min_smax_smin_nested(
253253; CHECK-SAME: i16 [[X:%.*]]) {
254- ; CHECK-NEXT: [[MIN1:%.*]] = call i16 @llvm.smin.i16(i16 [[X]], i16 255)
255- ; CHECK-NEXT: [[TMP1:%.*]] = call i16 @llvm.smax.i16(i16 [[MIN1]], i16 -128)
254+ ; CHECK-NEXT: [[TMP1:%.*]] = call i16 @llvm.smax.i16(i16 [[X]], i16 -128)
256255; CHECK-NEXT: [[MIN2:%.*]] = call i16 @llvm.smin.i16(i16 [[TMP1]], i16 127)
257256; CHECK-NEXT: ret i16 [[MIN2]]
258257;
@@ -265,8 +264,7 @@ define i16 @min_smax_smin_nested(i16 %x) {
265264define i16 @umax_umin_nested (i16 %x ) {
266265; CHECK-LABEL: define i16 @umax_umin_nested(
267266; CHECK-SAME: i16 [[X:%.*]]) {
268- ; CHECK-NEXT: [[MIN1:%.*]] = call i16 @llvm.umin.i16(i16 [[X]], i16 255)
269- ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umax.i16(i16 [[MIN1]], i16 63)
267+ ; CHECK-NEXT: [[MAX:%.*]] = call i16 @llvm.umax.i16(i16 [[X]], i16 63)
270268; CHECK-NEXT: [[MIN2:%.*]] = call i16 @llvm.umin.i16(i16 [[MAX]], i16 127)
271269; CHECK-NEXT: ret i16 [[MIN2]]
272270;
0 commit comments