33
44define float @select_fcmp_fsub_oeq (float %x , float %y ) {
55; CHECK-LABEL: @select_fcmp_fsub_oeq(
6- ; CHECK-NEXT: [[FCMP:%.*]] = fcmp oeq float [[Y:%.*]], 2.000000e+00
7- ; CHECK-NEXT: [[FADD:%.*]] = fsub float [[Y]], 2.000000e+00
8- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[FCMP]], float [[FADD]], float 0.000000e+00
9- ; CHECK-NEXT: ret float [[SEL]]
6+ ; CHECK-NEXT: ret float 0.000000e+00
107;
118 %fcmp = fcmp oeq float %y , 2 .
129 %fadd = fsub float %y , 2 .
@@ -42,10 +39,7 @@ define float @select_fcmp_fsub_ueq(float %x, float %y) {
4239
4340define float @select_fcmp_fsub_ueq_nnan (float %x , float %y ) {
4441; CHECK-LABEL: @select_fcmp_fsub_ueq_nnan(
45- ; CHECK-NEXT: [[FCMP:%.*]] = fcmp nnan ueq float [[Y:%.*]], 2.000000e+00
46- ; CHECK-NEXT: [[FADD:%.*]] = fsub float [[Y]], 2.000000e+00
47- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[FCMP]], float [[FADD]], float 0.000000e+00
48- ; CHECK-NEXT: ret float [[SEL]]
42+ ; CHECK-NEXT: ret float 0.000000e+00
4943;
5044 %fcmp = fcmp nnan ueq float %y , 2 .
5145 %fadd = fsub float %y , 2 .
@@ -55,10 +49,7 @@ define float @select_fcmp_fsub_ueq_nnan(float %x, float %y) {
5549
5650define float @select_fcmp_fsub_une (float %x , float %y ) {
5751; CHECK-LABEL: @select_fcmp_fsub_une(
58- ; CHECK-NEXT: [[FCMP:%.*]] = fcmp une float [[Y:%.*]], 2.000000e+00
59- ; CHECK-NEXT: [[FADD:%.*]] = fsub float [[Y]], 2.000000e+00
60- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[FCMP]], float 0.000000e+00, float [[FADD]]
61- ; CHECK-NEXT: ret float [[SEL]]
52+ ; CHECK-NEXT: ret float 0.000000e+00
6253;
6354 %fcmp = fcmp une float %y , 2 .
6455 %fadd = fsub float %y , 2 .
@@ -94,10 +85,7 @@ define float @select_fcmp_fsub_one(float %x, float %y) {
9485
9586define float @select_fcmp_fsub_one_nnan (float %x , float %y ) {
9687; CHECK-LABEL: @select_fcmp_fsub_one_nnan(
97- ; CHECK-NEXT: [[FCMP:%.*]] = fcmp nnan one float [[Y:%.*]], 2.000000e+00
98- ; CHECK-NEXT: [[FADD:%.*]] = fsub float [[Y]], 2.000000e+00
99- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[FCMP]], float 0.000000e+00, float [[FADD]]
100- ; CHECK-NEXT: ret float [[SEL]]
88+ ; CHECK-NEXT: ret float 0.000000e+00
10189;
10290 %fcmp = fcmp nnan one float %y , 2 .
10391 %fadd = fsub float %y , 2 .
@@ -107,10 +95,7 @@ define float @select_fcmp_fsub_one_nnan(float %x, float %y) {
10795
10896define float @select_fcmp_fadd (float %x , float %y ) {
10997; CHECK-LABEL: @select_fcmp_fadd(
110- ; CHECK-NEXT: [[FCMP:%.*]] = fcmp oeq float [[Y:%.*]], 2.000000e+00
111- ; CHECK-NEXT: [[FADD:%.*]] = fadd float [[Y]], 2.000000e+00
112- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[FCMP]], float [[FADD]], float 4.000000e+00
113- ; CHECK-NEXT: ret float [[SEL]]
98+ ; CHECK-NEXT: ret float 4.000000e+00
11499;
115100 %fcmp = fcmp oeq float %y , 2 .
116101 %fadd = fadd float %y , 2 .
@@ -120,10 +105,7 @@ define float @select_fcmp_fadd(float %x, float %y) {
120105
121106define <2 x float > @select_fcmp_fadd_vec (<2 x float > %x , <2 x float > %y ) {
122107; CHECK-LABEL: @select_fcmp_fadd_vec(
123- ; CHECK-NEXT: [[FCMP:%.*]] = fcmp oeq <2 x float> [[Y:%.*]], <float 2.000000e+00, float 2.000000e+00>
124- ; CHECK-NEXT: [[FADD:%.*]] = fadd <2 x float> [[Y]], <float 2.000000e+00, float 2.000000e+00>
125- ; CHECK-NEXT: [[SEL:%.*]] = select <2 x i1> [[FCMP]], <2 x float> [[FADD]], <2 x float> <float 4.000000e+00, float 4.000000e+00>
126- ; CHECK-NEXT: ret <2 x float> [[SEL]]
108+ ; CHECK-NEXT: ret <2 x float> <float 4.000000e+00, float 4.000000e+00>
127109;
128110 %fcmp = fcmp oeq <2 x float > %y , <float 2 ., float 2 .>
129111 %fadd = fadd <2 x float > %y , <float 2 ., float 2 .>
@@ -134,10 +116,7 @@ define <2 x float> @select_fcmp_fadd_vec(<2 x float> %x, <2 x float> %y) {
134116
135117define float @select_fcmp_fdiv (float %x , float %y ) {
136118; CHECK-LABEL: @select_fcmp_fdiv(
137- ; CHECK-NEXT: [[FCMP:%.*]] = fcmp oeq float [[Y:%.*]], 2.000000e+00
138- ; CHECK-NEXT: [[FDIV:%.*]] = fdiv float [[Y]], 2.000000e+00
139- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[FCMP]], float [[FDIV]], float 1.000000e+00
140- ; CHECK-NEXT: ret float [[SEL]]
119+ ; CHECK-NEXT: ret float 1.000000e+00
141120;
142121 %fcmp = fcmp oeq float %y , 2 .
143122 %fdiv = fdiv float %y , 2 .
@@ -147,10 +126,7 @@ define float @select_fcmp_fdiv(float %x, float %y) {
147126
148127define float @select_fcmp_frem (float %x , float %y ) {
149128; CHECK-LABEL: @select_fcmp_frem(
150- ; CHECK-NEXT: [[FCMP:%.*]] = fcmp oeq float [[Y:%.*]], 3.000000e+00
151- ; CHECK-NEXT: [[FREM:%.*]] = frem float [[Y]], 2.000000e+00
152- ; CHECK-NEXT: [[SEL:%.*]] = select i1 [[FCMP]], float [[FREM]], float 1.000000e+00
153- ; CHECK-NEXT: ret float [[SEL]]
129+ ; CHECK-NEXT: ret float 1.000000e+00
154130;
155131 %fcmp = fcmp oeq float %y , 3 .
156132 %frem = frem float %y , 2 .
@@ -160,10 +136,7 @@ define float @select_fcmp_frem(float %x, float %y) {
160136
161137define <2 x float > @select_fcmp_insertelement (<2 x float > %x , <2 x float > %y ) {
162138; CHECK-LABEL: @select_fcmp_insertelement(
163- ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq <2 x float> [[Y:%.*]], <float 2.000000e+00, float 2.000000e+00>
164- ; CHECK-NEXT: [[INSERT:%.*]] = insertelement <2 x float> [[Y]], float 4.000000e+00, i64 0
165- ; CHECK-NEXT: [[RETVAL:%.*]] = select <2 x i1> [[CMP]], <2 x float> [[INSERT]], <2 x float> <float 4.000000e+00, float 2.000000e+00>
166- ; CHECK-NEXT: ret <2 x float> [[RETVAL]]
139+ ; CHECK-NEXT: ret <2 x float> <float 4.000000e+00, float 2.000000e+00>
167140;
168141 %fcmp = fcmp oeq <2 x float > %y , <float 2 ., float 2 .>
169142 %insert = insertelement <2 x float > %y , float 4 ., i64 0
@@ -173,10 +146,7 @@ define <2 x float> @select_fcmp_insertelement(<2 x float> %x, <2 x float> %y) {
173146
174147define <4 x float > @select_fcmp_shufflevector_select (<4 x float > %x , <4 x float > %y ) {
175148; CHECK-LABEL: @select_fcmp_shufflevector_select(
176- ; CHECK-NEXT: [[FCMP:%.*]] = fcmp oeq <4 x float> [[Y:%.*]], <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
177- ; CHECK-NEXT: [[SHUFFLE:%.*]] = shufflevector <4 x float> [[Y]], <4 x float> poison, <4 x i32> <i32 4, i32 1, i32 6, i32 3>
178- ; CHECK-NEXT: [[SEL:%.*]] = select <4 x i1> [[FCMP]], <4 x float> [[SHUFFLE]], <4 x float> <float poison, float 2.000000e+00, float poison, float 2.000000e+00>
179- ; CHECK-NEXT: ret <4 x float> [[SEL]]
149+ ; CHECK-NEXT: ret <4 x float> <float poison, float 2.000000e+00, float poison, float 2.000000e+00>
180150;
181151 %fcmp = fcmp oeq <4 x float > %y , <float 2 ., float 2 ., float 2 ., float 2 .>
182152 %shuffle = shufflevector <4 x float > %y , <4 x float > poison, <4 x i32 > <i32 4 , i32 1 , i32 6 , i32 3 >
0 commit comments