Index: llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp =================================================================== --- llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp +++ llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp @@ -1495,6 +1495,25 @@ return Right; } + // Turn at least two fcmps with constants into llvm.is.fpclass. + // + // If we can represent a combined value test with one class call, we can + // potentially eliminate 4-6 instructions. If we can represent a test with a + // single fcmp with fneg and fabs, that's likely a better canonical form. + if (LHS->hasOneUse() && RHS->hasOneUse()) { + auto [ClassValRHS, ClassMaskRHS] = fcmpToClassTest(PredR, RHS0, RHS1); + if (ClassValRHS) { + auto [ClassValLHS, ClassMaskLHS] = fcmpToClassTest(PredL, LHS0, LHS1); + if (ClassValLHS == ClassValRHS) { + unsigned CombinedMask = IsAnd ? (ClassMaskLHS & ClassMaskRHS) + : (ClassMaskLHS | ClassMaskRHS); + return Builder.CreateIntrinsic( + Intrinsic::is_fpclass, {ClassValLHS->getType()}, + {ClassValLHS, Builder.getInt32(CombinedMask)}); + } + } + } + return nullptr; } Index: llvm/test/Transforms/InstCombine/and-fcmp.ll =================================================================== --- llvm/test/Transforms/InstCombine/and-fcmp.ll +++ llvm/test/Transforms/InstCombine/and-fcmp.ll @@ -3,8 +3,8 @@ define i1 @PR1738(double %x, double %y) { ; CHECK-LABEL: @PR1738( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[X:%.*]], [[Y:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp ord double [[X:%.*]], [[Y:%.*]] +; CHECK-NEXT: ret i1 [[AND]] ; %cmp1 = fcmp ord double %x, 0.0 %cmp2 = fcmp ord double %y, 0.0 @@ -28,8 +28,8 @@ define i1 @PR1738_logical_noundef(double %x, double noundef %y) { ; CHECK-LABEL: @PR1738_logical_noundef( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[X:%.*]], [[Y:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp ord double [[X:%.*]], [[Y:%.*]] +; CHECK-NEXT: ret i1 [[AND]] ; %cmp1 = fcmp ord double %x, 0.0 %cmp2 = fcmp ord double %y, 0.0 @@ -39,8 +39,8 @@ define <2 x i1> @PR1738_vec_undef(<2 x double> %x, <2 x double> %y) { ; CHECK-LABEL: @PR1738_vec_undef( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord <2 x double> [[X:%.*]], [[Y:%.*]] -; CHECK-NEXT: ret <2 x i1> [[TMP1]] +; CHECK-NEXT: [[OR:%.*]] = fcmp ord <2 x double> [[X:%.*]], [[Y:%.*]] +; CHECK-NEXT: ret <2 x i1> [[OR]] ; %cmp1 = fcmp ord <2 x double> %x, %cmp2 = fcmp ord <2 x double> %y, @@ -179,8 +179,8 @@ define i1 @fcmp_ord_nonzero(float %x, float %y) { ; CHECK-LABEL: @fcmp_ord_nonzero( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord float [[X:%.*]], [[Y:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp ord float [[X:%.*]], [[Y:%.*]] +; CHECK-NEXT: ret i1 [[AND]] ; %cmp1 = fcmp ord float %x, 1.0 %cmp2 = fcmp ord float %y, 2.0 @@ -204,8 +204,8 @@ define <3 x i1> @fcmp_ord_nonzero_vec(<3 x float> %x, <3 x float> %y) { ; CHECK-LABEL: @fcmp_ord_nonzero_vec( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord <3 x float> [[X:%.*]], [[Y:%.*]] -; CHECK-NEXT: ret <3 x i1> [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp ord <3 x float> [[X:%.*]], [[Y:%.*]] +; CHECK-NEXT: ret <3 x i1> [[AND]] ; %cmp1 = fcmp ord <3 x float> %x, %cmp2 = fcmp ord <3 x float> %y, @@ -275,8 +275,8 @@ define i1 @auto_gen_2(double %a, double %b) { ; CHECK-LABEL: @auto_gen_2( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oeq double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -286,8 +286,8 @@ define i1 @auto_gen_2_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_2_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oeq double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -297,8 +297,8 @@ define i1 @auto_gen_2_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_2_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oeq double %a, %b %cmp1 = fcmp fast oeq double %a, %b @@ -368,8 +368,8 @@ define i1 @auto_gen_5(double %a, double %b) { ; CHECK-LABEL: @auto_gen_5( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ogt double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -379,8 +379,8 @@ define i1 @auto_gen_5_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_5_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ogt double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -390,8 +390,8 @@ define i1 @auto_gen_5_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_5_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ogt double %a, %b %cmp1 = fcmp fast ogt double %a, %b @@ -431,8 +431,8 @@ define i1 @auto_gen_7(double %a, double %b) { ; CHECK-LABEL: @auto_gen_7( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oge double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -442,8 +442,8 @@ define i1 @auto_gen_7_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_7_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oge double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -453,8 +453,8 @@ define i1 @auto_gen_7_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_7_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast oge double %a, %b %cmp1 = fcmp fast oeq double %a, %b @@ -464,8 +464,8 @@ define i1 @auto_gen_8(double %a, double %b) { ; CHECK-LABEL: @auto_gen_8( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oge double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -475,8 +475,8 @@ define i1 @auto_gen_8_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_8_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oge double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -486,8 +486,8 @@ define i1 @auto_gen_8_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_8_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oge double %a, %b %cmp1 = fcmp fast ogt double %a, %b @@ -497,8 +497,8 @@ define i1 @auto_gen_9(double %a, double %b) { ; CHECK-LABEL: @auto_gen_9( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oge double %a, %b %cmp1 = fcmp oge double %a, %b @@ -508,8 +508,8 @@ define i1 @auto_gen_9_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_9_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp oge double %a, %b %cmp1 = fcmp oge double %a, %b @@ -519,8 +519,8 @@ define i1 @auto_gen_9_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_9_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast oge double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -650,8 +650,8 @@ define i1 @auto_gen_14(double %a, double %b) { ; CHECK-LABEL: @auto_gen_14( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp olt double %a, %b %cmp1 = fcmp olt double %a, %b @@ -661,8 +661,8 @@ define i1 @auto_gen_14_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_14_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp olt double %a, %b %cmp1 = fcmp olt double %a, %b @@ -672,8 +672,8 @@ define i1 @auto_gen_14_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_14_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp olt double %a, %b %cmp1 = fcmp fast olt double %a, %b @@ -713,8 +713,8 @@ define i1 @auto_gen_16(double %a, double %b) { ; CHECK-LABEL: @auto_gen_16( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -724,8 +724,8 @@ define i1 @auto_gen_16_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_16_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -735,8 +735,8 @@ define i1 @auto_gen_16_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_16_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp fast oeq double %a, %b @@ -776,8 +776,8 @@ define i1 @auto_gen_18(double %a, double %b) { ; CHECK-LABEL: @auto_gen_18( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp oge double %a, %b @@ -787,8 +787,8 @@ define i1 @auto_gen_18_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_18_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp oge double %a, %b @@ -798,8 +798,8 @@ define i1 @auto_gen_18_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_18_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -809,8 +809,8 @@ define i1 @auto_gen_19(double %a, double %b) { ; CHECK-LABEL: @auto_gen_19( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp olt double %a, %b @@ -820,8 +820,8 @@ define i1 @auto_gen_19_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_19_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp olt double %a, %b @@ -831,8 +831,8 @@ define i1 @auto_gen_19_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_19_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ole double %a, %b %cmp1 = fcmp fast olt double %a, %b @@ -842,8 +842,8 @@ define i1 @auto_gen_20(double %a, double %b) { ; CHECK-LABEL: @auto_gen_20( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp ole double %a, %b @@ -853,8 +853,8 @@ define i1 @auto_gen_20_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_20_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp ole double %a, %b @@ -864,8 +864,8 @@ define i1 @auto_gen_20_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_20_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp fast ole double %a, %b @@ -935,8 +935,8 @@ define i1 @auto_gen_23(double %a, double %b) { ; CHECK-LABEL: @auto_gen_23( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -946,8 +946,8 @@ define i1 @auto_gen_23_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_23_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -957,8 +957,8 @@ define i1 @auto_gen_23_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_23_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast one double %a, %b %cmp1 = fcmp fast ogt double %a, %b @@ -968,8 +968,8 @@ define i1 @auto_gen_24(double %a, double %b) { ; CHECK-LABEL: @auto_gen_24( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp oge double %a, %b @@ -979,8 +979,8 @@ define i1 @auto_gen_24_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_24_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp oge double %a, %b @@ -990,8 +990,8 @@ define i1 @auto_gen_24_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_24_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -1001,8 +1001,8 @@ define i1 @auto_gen_25(double %a, double %b) { ; CHECK-LABEL: @auto_gen_25( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp olt double %a, %b @@ -1012,8 +1012,8 @@ define i1 @auto_gen_25_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_25_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp olt double %a, %b @@ -1023,8 +1023,8 @@ define i1 @auto_gen_25_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_25_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast one double %a, %b %cmp1 = fcmp fast olt double %a, %b @@ -1034,8 +1034,8 @@ define i1 @auto_gen_26(double %a, double %b) { ; CHECK-LABEL: @auto_gen_26( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp ole double %a, %b @@ -1045,8 +1045,8 @@ define i1 @auto_gen_26_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_26_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp ole double %a, %b @@ -1056,8 +1056,8 @@ define i1 @auto_gen_26_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_26_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp fast ole double %a, %b @@ -1067,8 +1067,8 @@ define i1 @auto_gen_27(double %a, double %b) { ; CHECK-LABEL: @auto_gen_27( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp one double %a, %b @@ -1078,8 +1078,8 @@ define i1 @auto_gen_27_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_27_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp one double %a, %b %cmp1 = fcmp one double %a, %b @@ -1089,8 +1089,8 @@ define i1 @auto_gen_27_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_27_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast one double %a, %b %cmp1 = fcmp fast one double %a, %b @@ -1130,8 +1130,8 @@ define i1 @auto_gen_29(double %a, double %b) { ; CHECK-LABEL: @auto_gen_29( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -1141,8 +1141,8 @@ define i1 @auto_gen_29_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_29_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -1163,8 +1163,8 @@ define i1 @auto_gen_30(double %a, double %b) { ; CHECK-LABEL: @auto_gen_30( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -1174,8 +1174,8 @@ define i1 @auto_gen_30_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_30_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -1185,8 +1185,8 @@ define i1 @auto_gen_30_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_30_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp fast ogt double %a, %b @@ -1196,8 +1196,8 @@ define i1 @auto_gen_31(double %a, double %b) { ; CHECK-LABEL: @auto_gen_31( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp oge double %a, %b @@ -1207,8 +1207,8 @@ define i1 @auto_gen_31_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_31_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp oge double %a, %b @@ -1229,8 +1229,8 @@ define i1 @auto_gen_32(double %a, double %b) { ; CHECK-LABEL: @auto_gen_32( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp olt double %a, %b @@ -1240,8 +1240,8 @@ define i1 @auto_gen_32_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_32_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp olt double %a, %b @@ -1251,8 +1251,8 @@ define i1 @auto_gen_32_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_32_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp fast olt double %a, %b @@ -1262,8 +1262,8 @@ define i1 @auto_gen_33(double %a, double %b) { ; CHECK-LABEL: @auto_gen_33( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp ole double %a, %b @@ -1273,8 +1273,8 @@ define i1 @auto_gen_33_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_33_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp ole double %a, %b @@ -1295,8 +1295,8 @@ define i1 @auto_gen_34(double %a, double %b) { ; CHECK-LABEL: @auto_gen_34( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp one double %a, %b @@ -1306,8 +1306,8 @@ define i1 @auto_gen_34_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_34_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp one double %a, %b @@ -1317,8 +1317,8 @@ define i1 @auto_gen_34_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_34_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp fast one double %a, %b @@ -1328,8 +1328,8 @@ define i1 @auto_gen_35(double %a, double %b) { ; CHECK-LABEL: @auto_gen_35( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp ord double %a, %b @@ -1339,8 +1339,8 @@ define i1 @auto_gen_35_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_35_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ord double %a, %b %cmp1 = fcmp ord double %a, %b @@ -1390,8 +1390,8 @@ define i1 @auto_gen_37(double %a, double %b) { ; CHECK-LABEL: @auto_gen_37( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -1401,8 +1401,8 @@ define i1 @auto_gen_37_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_37_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -1412,8 +1412,8 @@ define i1 @auto_gen_37_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_37_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ueq double %a, %b %cmp1 = fcmp fast oeq double %a, %b @@ -1453,8 +1453,8 @@ define i1 @auto_gen_39(double %a, double %b) { ; CHECK-LABEL: @auto_gen_39( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp oge double %a, %b @@ -1464,8 +1464,8 @@ define i1 @auto_gen_39_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_39_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp oge double %a, %b @@ -1475,8 +1475,8 @@ define i1 @auto_gen_39_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_39_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ueq double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -1516,8 +1516,8 @@ define i1 @auto_gen_41(double %a, double %b) { ; CHECK-LABEL: @auto_gen_41( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp ole double %a, %b @@ -1527,8 +1527,8 @@ define i1 @auto_gen_41_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_41_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp ole double %a, %b @@ -1538,8 +1538,8 @@ define i1 @auto_gen_41_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_41_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ueq double %a, %b %cmp1 = fcmp fast ole double %a, %b @@ -1579,8 +1579,8 @@ define i1 @auto_gen_43(double %a, double %b) { ; CHECK-LABEL: @auto_gen_43( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp ord double %a, %b @@ -1590,8 +1590,8 @@ define i1 @auto_gen_43_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_43_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp ord double %a, %b @@ -1612,8 +1612,8 @@ define i1 @auto_gen_44(double %a, double %b) { ; CHECK-LABEL: @auto_gen_44( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -1623,8 +1623,8 @@ define i1 @auto_gen_44_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_44_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -1634,8 +1634,8 @@ define i1 @auto_gen_44_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_44_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ueq double %a, %b %cmp1 = fcmp fast ueq double %a, %b @@ -1705,8 +1705,8 @@ define i1 @auto_gen_47(double %a, double %b) { ; CHECK-LABEL: @auto_gen_47( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -1716,8 +1716,8 @@ define i1 @auto_gen_47_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_47_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -1727,8 +1727,8 @@ define i1 @auto_gen_47_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_47_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ugt double %a, %b %cmp1 = fcmp fast ogt double %a, %b @@ -1738,8 +1738,8 @@ define i1 @auto_gen_48(double %a, double %b) { ; CHECK-LABEL: @auto_gen_48( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp oge double %a, %b @@ -1749,8 +1749,8 @@ define i1 @auto_gen_48_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_48_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp oge double %a, %b @@ -1760,8 +1760,8 @@ define i1 @auto_gen_48_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_48_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -1831,8 +1831,8 @@ define i1 @auto_gen_51(double %a, double %b) { ; CHECK-LABEL: @auto_gen_51( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp one double %a, %b @@ -1842,8 +1842,8 @@ define i1 @auto_gen_51_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_51_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp one double %a, %b @@ -1853,8 +1853,8 @@ define i1 @auto_gen_51_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_51_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ugt double %a, %b %cmp1 = fcmp fast one double %a, %b @@ -1864,8 +1864,8 @@ define i1 @auto_gen_52(double %a, double %b) { ; CHECK-LABEL: @auto_gen_52( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp ord double %a, %b @@ -1875,8 +1875,8 @@ define i1 @auto_gen_52_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_52_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp ord double %a, %b @@ -1897,8 +1897,8 @@ define i1 @auto_gen_53(double %a, double %b) { ; CHECK-LABEL: @auto_gen_53( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -1908,8 +1908,8 @@ define i1 @auto_gen_53_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_53_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -1929,8 +1929,8 @@ define i1 @auto_gen_54(double %a, double %b) { ; CHECK-LABEL: @auto_gen_54( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -1940,8 +1940,8 @@ define i1 @auto_gen_54_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_54_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -1951,8 +1951,8 @@ define i1 @auto_gen_54_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_54_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ugt double %a, %b %cmp1 = fcmp fast ugt double %a, %b @@ -1992,8 +1992,8 @@ define i1 @auto_gen_56(double %a, double %b) { ; CHECK-LABEL: @auto_gen_56( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -2003,8 +2003,8 @@ define i1 @auto_gen_56_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_56_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -2014,8 +2014,8 @@ define i1 @auto_gen_56_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_56_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp fast oeq double %a, %b @@ -2025,8 +2025,8 @@ define i1 @auto_gen_57(double %a, double %b) { ; CHECK-LABEL: @auto_gen_57( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -2036,8 +2036,8 @@ define i1 @auto_gen_57_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_57_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -2047,8 +2047,8 @@ define i1 @auto_gen_57_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_57_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast uge double %a, %b %cmp1 = fcmp fast ogt double %a, %b @@ -2058,8 +2058,8 @@ define i1 @auto_gen_58(double %a, double %b) { ; CHECK-LABEL: @auto_gen_58( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp oge double %a, %b @@ -2069,8 +2069,8 @@ define i1 @auto_gen_58_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_58_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp oge double %a, %b @@ -2080,8 +2080,8 @@ define i1 @auto_gen_58_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_58_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -2121,8 +2121,8 @@ define i1 @auto_gen_60(double %a, double %b) { ; CHECK-LABEL: @auto_gen_60( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ole double %a, %b @@ -2132,8 +2132,8 @@ define i1 @auto_gen_60_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_60_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ole double %a, %b @@ -2143,8 +2143,8 @@ define i1 @auto_gen_60_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_60_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp fast ole double %a, %b @@ -2154,8 +2154,8 @@ define i1 @auto_gen_61(double %a, double %b) { ; CHECK-LABEL: @auto_gen_61( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp one double %a, %b @@ -2165,8 +2165,8 @@ define i1 @auto_gen_61_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_61_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp one double %a, %b @@ -2176,8 +2176,8 @@ define i1 @auto_gen_61_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_61_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast uge double %a, %b %cmp1 = fcmp fast one double %a, %b @@ -2187,8 +2187,8 @@ define i1 @auto_gen_62(double %a, double %b) { ; CHECK-LABEL: @auto_gen_62( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ord double %a, %b @@ -2198,8 +2198,8 @@ define i1 @auto_gen_62_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_62_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ord double %a, %b @@ -2220,8 +2220,8 @@ define i1 @auto_gen_63(double %a, double %b) { ; CHECK-LABEL: @auto_gen_63( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -2231,8 +2231,8 @@ define i1 @auto_gen_63_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_63_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -2242,8 +2242,8 @@ define i1 @auto_gen_63_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_63_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast uge double %a, %b %cmp1 = fcmp fast ueq double %a, %b @@ -2253,8 +2253,8 @@ define i1 @auto_gen_64(double %a, double %b) { ; CHECK-LABEL: @auto_gen_64( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -2264,8 +2264,8 @@ define i1 @auto_gen_64_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_64_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -2275,8 +2275,8 @@ define i1 @auto_gen_64_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_64_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp fast ugt double %a, %b @@ -2286,8 +2286,8 @@ define i1 @auto_gen_65(double %a, double %b) { ; CHECK-LABEL: @auto_gen_65( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp uge double %a, %b @@ -2297,8 +2297,8 @@ define i1 @auto_gen_65_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_65_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uge double %a, %b %cmp1 = fcmp uge double %a, %b @@ -2308,8 +2308,8 @@ define i1 @auto_gen_65_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_65_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast uge double %a, %b %cmp1 = fcmp fast uge double %a, %b @@ -2439,8 +2439,8 @@ define i1 @auto_gen_70(double %a, double %b) { ; CHECK-LABEL: @auto_gen_70( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp olt double %a, %b @@ -2450,8 +2450,8 @@ define i1 @auto_gen_70_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_70_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp olt double %a, %b @@ -2461,8 +2461,8 @@ define i1 @auto_gen_70_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_70_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp fast olt double %a, %b @@ -2472,8 +2472,8 @@ define i1 @auto_gen_71(double %a, double %b) { ; CHECK-LABEL: @auto_gen_71( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ole double %a, %b @@ -2483,8 +2483,8 @@ define i1 @auto_gen_71_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_71_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ole double %a, %b @@ -2494,8 +2494,8 @@ define i1 @auto_gen_71_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_71_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ult double %a, %b %cmp1 = fcmp fast ole double %a, %b @@ -2505,8 +2505,8 @@ define i1 @auto_gen_72(double %a, double %b) { ; CHECK-LABEL: @auto_gen_72( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp one double %a, %b @@ -2516,8 +2516,8 @@ define i1 @auto_gen_72_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_72_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp one double %a, %b @@ -2527,8 +2527,8 @@ define i1 @auto_gen_72_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_72_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp fast one double %a, %b @@ -2538,8 +2538,8 @@ define i1 @auto_gen_73(double %a, double %b) { ; CHECK-LABEL: @auto_gen_73( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ord double %a, %b @@ -2549,8 +2549,8 @@ define i1 @auto_gen_73_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_73_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ord double %a, %b @@ -2571,8 +2571,8 @@ define i1 @auto_gen_74(double %a, double %b) { ; CHECK-LABEL: @auto_gen_74( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -2582,8 +2582,8 @@ define i1 @auto_gen_74_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_74_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -2593,8 +2593,8 @@ define i1 @auto_gen_74_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_74_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp fast ueq double %a, %b @@ -2604,8 +2604,8 @@ define i1 @auto_gen_75(double %a, double %b) { ; CHECK-LABEL: @auto_gen_75( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -2615,8 +2615,8 @@ define i1 @auto_gen_75_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_75_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -2636,8 +2636,8 @@ define i1 @auto_gen_76(double %a, double %b) { ; CHECK-LABEL: @auto_gen_76( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp uge double %a, %b @@ -2647,8 +2647,8 @@ define i1 @auto_gen_76_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_76_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp uge double %a, %b @@ -2658,8 +2658,8 @@ define i1 @auto_gen_76_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_76_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp fast uge double %a, %b @@ -2669,8 +2669,8 @@ define i1 @auto_gen_77(double %a, double %b) { ; CHECK-LABEL: @auto_gen_77( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ult double %a, %b @@ -2680,8 +2680,8 @@ define i1 @auto_gen_77_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_77_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ult double %a, %b @@ -2691,8 +2691,8 @@ define i1 @auto_gen_77_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_77_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ult double %a, %b %cmp1 = fcmp fast ult double %a, %b @@ -2732,8 +2732,8 @@ define i1 @auto_gen_79(double %a, double %b) { ; CHECK-LABEL: @auto_gen_79( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -2743,8 +2743,8 @@ define i1 @auto_gen_79_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_79_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp oeq double %a, %b @@ -2754,8 +2754,8 @@ define i1 @auto_gen_79_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_79_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ule double %a, %b %cmp1 = fcmp fast oeq double %a, %b @@ -2795,8 +2795,8 @@ define i1 @auto_gen_81(double %a, double %b) { ; CHECK-LABEL: @auto_gen_81( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp oge double %a, %b @@ -2806,8 +2806,8 @@ define i1 @auto_gen_81_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_81_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp oge double %a, %b @@ -2817,8 +2817,8 @@ define i1 @auto_gen_81_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_81_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ule double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -2828,8 +2828,8 @@ define i1 @auto_gen_82(double %a, double %b) { ; CHECK-LABEL: @auto_gen_82( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp olt double %a, %b @@ -2839,8 +2839,8 @@ define i1 @auto_gen_82_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_82_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp olt double %a, %b @@ -2850,8 +2850,8 @@ define i1 @auto_gen_82_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_82_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp fast olt double %a, %b @@ -2861,8 +2861,8 @@ define i1 @auto_gen_83(double %a, double %b) { ; CHECK-LABEL: @auto_gen_83( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ole double %a, %b @@ -2872,8 +2872,8 @@ define i1 @auto_gen_83_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_83_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ole double %a, %b @@ -2883,8 +2883,8 @@ define i1 @auto_gen_83_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_83_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ule double %a, %b %cmp1 = fcmp fast ole double %a, %b @@ -2894,8 +2894,8 @@ define i1 @auto_gen_84(double %a, double %b) { ; CHECK-LABEL: @auto_gen_84( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp one double %a, %b @@ -2905,8 +2905,8 @@ define i1 @auto_gen_84_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_84_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp one double %a, %b @@ -2916,8 +2916,8 @@ define i1 @auto_gen_84_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_84_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp fast one double %a, %b @@ -2927,8 +2927,8 @@ define i1 @auto_gen_85(double %a, double %b) { ; CHECK-LABEL: @auto_gen_85( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ord double %a, %b @@ -2938,8 +2938,8 @@ define i1 @auto_gen_85_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_85_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ord double %a, %b @@ -2960,8 +2960,8 @@ define i1 @auto_gen_86(double %a, double %b) { ; CHECK-LABEL: @auto_gen_86( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -2971,8 +2971,8 @@ define i1 @auto_gen_86_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_86_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -2982,8 +2982,8 @@ define i1 @auto_gen_86_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_86_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp fast ueq double %a, %b @@ -2993,8 +2993,8 @@ define i1 @auto_gen_87(double %a, double %b) { ; CHECK-LABEL: @auto_gen_87( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -3004,8 +3004,8 @@ define i1 @auto_gen_87_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_87_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -3025,8 +3025,8 @@ define i1 @auto_gen_88(double %a, double %b) { ; CHECK-LABEL: @auto_gen_88( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp uge double %a, %b @@ -3036,8 +3036,8 @@ define i1 @auto_gen_88_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_88_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp uge double %a, %b @@ -3047,8 +3047,8 @@ define i1 @auto_gen_88_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_88_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp fast uge double %a, %b @@ -3058,8 +3058,8 @@ define i1 @auto_gen_89(double %a, double %b) { ; CHECK-LABEL: @auto_gen_89( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ult double %a, %b @@ -3069,8 +3069,8 @@ define i1 @auto_gen_89_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_89_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ult double %a, %b @@ -3080,8 +3080,8 @@ define i1 @auto_gen_89_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_89_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ule double %a, %b %cmp1 = fcmp fast ult double %a, %b @@ -3091,8 +3091,8 @@ define i1 @auto_gen_90(double %a, double %b) { ; CHECK-LABEL: @auto_gen_90( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ule double %a, %b @@ -3102,8 +3102,8 @@ define i1 @auto_gen_90_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_90_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp ule double %a, %b @@ -3113,8 +3113,8 @@ define i1 @auto_gen_90_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_90_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ule double %a, %b %cmp1 = fcmp fast ule double %a, %b @@ -3184,8 +3184,8 @@ define i1 @auto_gen_93(double %a, double %b) { ; CHECK-LABEL: @auto_gen_93( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -3195,8 +3195,8 @@ define i1 @auto_gen_93_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_93_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -3206,8 +3206,8 @@ define i1 @auto_gen_93_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_93_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast une double %a, %b %cmp1 = fcmp fast ogt double %a, %b @@ -3217,8 +3217,8 @@ define i1 @auto_gen_94(double %a, double %b) { ; CHECK-LABEL: @auto_gen_94( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp oge double %a, %b @@ -3228,8 +3228,8 @@ define i1 @auto_gen_94_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_94_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp oge double %a, %b @@ -3239,8 +3239,8 @@ define i1 @auto_gen_94_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_94_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -3250,8 +3250,8 @@ define i1 @auto_gen_95(double %a, double %b) { ; CHECK-LABEL: @auto_gen_95( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp olt double %a, %b @@ -3261,8 +3261,8 @@ define i1 @auto_gen_95_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_95_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp olt double %a, %b @@ -3272,8 +3272,8 @@ define i1 @auto_gen_95_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_95_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast une double %a, %b %cmp1 = fcmp fast olt double %a, %b @@ -3283,8 +3283,8 @@ define i1 @auto_gen_96(double %a, double %b) { ; CHECK-LABEL: @auto_gen_96( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ole double %a, %b @@ -3294,8 +3294,8 @@ define i1 @auto_gen_96_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_96_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ole double %a, %b @@ -3305,8 +3305,8 @@ define i1 @auto_gen_96_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_96_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp fast ole double %a, %b @@ -3316,8 +3316,8 @@ define i1 @auto_gen_97(double %a, double %b) { ; CHECK-LABEL: @auto_gen_97( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp one double %a, %b @@ -3327,8 +3327,8 @@ define i1 @auto_gen_97_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_97_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp one double %a, %b @@ -3338,8 +3338,8 @@ define i1 @auto_gen_97_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_97_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast une double %a, %b %cmp1 = fcmp fast one double %a, %b @@ -3349,8 +3349,8 @@ define i1 @auto_gen_98(double %a, double %b) { ; CHECK-LABEL: @auto_gen_98( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ord double %a, %b @@ -3360,8 +3360,8 @@ define i1 @auto_gen_98_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_98_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ord double %a, %b @@ -3382,8 +3382,8 @@ define i1 @auto_gen_99(double %a, double %b) { ; CHECK-LABEL: @auto_gen_99( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -3393,8 +3393,8 @@ define i1 @auto_gen_99_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_99_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -3414,8 +3414,8 @@ define i1 @auto_gen_100(double %a, double %b) { ; CHECK-LABEL: @auto_gen_100( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -3425,8 +3425,8 @@ define i1 @auto_gen_100_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_100_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -3436,8 +3436,8 @@ define i1 @auto_gen_100_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_100_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp fast ugt double %a, %b @@ -3447,8 +3447,8 @@ define i1 @auto_gen_101(double %a, double %b) { ; CHECK-LABEL: @auto_gen_101( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp uge double %a, %b @@ -3458,8 +3458,8 @@ define i1 @auto_gen_101_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_101_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp uge double %a, %b @@ -3469,8 +3469,8 @@ define i1 @auto_gen_101_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_101_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ugt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ugt double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast une double %a, %b %cmp1 = fcmp fast uge double %a, %b @@ -3480,8 +3480,8 @@ define i1 @auto_gen_102(double %a, double %b) { ; CHECK-LABEL: @auto_gen_102( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ult double %a, %b @@ -3491,8 +3491,8 @@ define i1 @auto_gen_102_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_102_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ult double %a, %b @@ -3502,8 +3502,8 @@ define i1 @auto_gen_102_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_102_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp fast ult double %a, %b @@ -3513,8 +3513,8 @@ define i1 @auto_gen_103(double %a, double %b) { ; CHECK-LABEL: @auto_gen_103( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ule double %a, %b @@ -3524,8 +3524,8 @@ define i1 @auto_gen_103_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_103_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp ule double %a, %b @@ -3535,8 +3535,8 @@ define i1 @auto_gen_103_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_103_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ult double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast une double %a, %b %cmp1 = fcmp fast ule double %a, %b @@ -3546,8 +3546,8 @@ define i1 @auto_gen_104(double %a, double %b) { ; CHECK-LABEL: @auto_gen_104( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp une double %a, %b @@ -3557,8 +3557,8 @@ define i1 @auto_gen_104_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_104_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp une double %a, %b @@ -3568,8 +3568,8 @@ define i1 @auto_gen_104_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_104_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp une double %a, %b %cmp1 = fcmp fast une double %a, %b @@ -3820,8 +3820,8 @@ define i1 @auto_gen_113(double %a, double %b) { ; CHECK-LABEL: @auto_gen_113( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -3831,8 +3831,8 @@ define i1 @auto_gen_113_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_113_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp ueq double %a, %b @@ -3852,8 +3852,8 @@ define i1 @auto_gen_114(double %a, double %b) { ; CHECK-LABEL: @auto_gen_114( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -3863,8 +3863,8 @@ define i1 @auto_gen_114_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_114_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -3874,8 +3874,8 @@ define i1 @auto_gen_114_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_114_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp fast ugt double %a, %b @@ -3885,8 +3885,8 @@ define i1 @auto_gen_115(double %a, double %b) { ; CHECK-LABEL: @auto_gen_115( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp uge double %a, %b @@ -3896,8 +3896,8 @@ define i1 @auto_gen_115_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_115_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp uge double %a, %b @@ -3917,8 +3917,8 @@ define i1 @auto_gen_116(double %a, double %b) { ; CHECK-LABEL: @auto_gen_116( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp ult double %a, %b @@ -3928,8 +3928,8 @@ define i1 @auto_gen_116_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_116_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp ult double %a, %b @@ -3939,8 +3939,8 @@ define i1 @auto_gen_116_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_116_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp fast ult double %a, %b @@ -3950,8 +3950,8 @@ define i1 @auto_gen_117(double %a, double %b) { ; CHECK-LABEL: @auto_gen_117( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp ule double %a, %b @@ -3961,8 +3961,8 @@ define i1 @auto_gen_117_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_117_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp ule double %a, %b @@ -3982,8 +3982,8 @@ define i1 @auto_gen_118(double %a, double %b) { ; CHECK-LABEL: @auto_gen_118( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp une double %a, %b @@ -3993,8 +3993,8 @@ define i1 @auto_gen_118_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_118_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp une double %a, %b @@ -4004,8 +4004,8 @@ define i1 @auto_gen_118_logical_fmf(double %a, double %b) { ; CHECK-LABEL: @auto_gen_118_logical_fmf( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp fast une double %a, %b @@ -4015,8 +4015,8 @@ define i1 @auto_gen_119(double %a, double %b) { ; CHECK-LABEL: @auto_gen_119( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp uno double %a, %b @@ -4026,8 +4026,8 @@ define i1 @auto_gen_119_logical(double %a, double %b) { ; CHECK-LABEL: @auto_gen_119_logical( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp uno double %a, %b %cmp1 = fcmp uno double %a, %b @@ -4567,8 +4567,8 @@ define i1 @intersect_fmf_1(double %a, double %b) { ; CHECK-LABEL: @intersect_fmf_1( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ole double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -4578,8 +4578,8 @@ define i1 @intersect_fmf_2(double %a, double %b) { ; CHECK-LABEL: @intersect_fmf_2( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp fast ole double %a, %b %cmp1 = fcmp oge double %a, %b @@ -4589,8 +4589,8 @@ define i1 @intersect_fmf_3(double %a, double %b) { ; CHECK-LABEL: @intersect_fmf_3( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ole double %a, %b %cmp1 = fcmp fast oge double %a, %b @@ -4600,8 +4600,8 @@ define i1 @intersect_fmf_4(double %a, double %b) { ; CHECK-LABEL: @intersect_fmf_4( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ninf ole double %a, %b %cmp1 = fcmp nnan oge double %a, %b @@ -4614,8 +4614,8 @@ define i1 @clang_builtin_isnormal_inf_check(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 @@ -4627,8 +4627,8 @@ define <2 x i1> @clang_builtin_isnormal_inf_check_vector(<2 x half> %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_vector( ; CHECK-NEXT: [[FABS_X:%.*]] = call <2 x half> @llvm.fabs.v2f16(<2 x half> [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge <2 x half> [[FABS_X]], -; CHECK-NEXT: ret <2 x i1> [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge <2 x half> [[FABS_X]], +; CHECK-NEXT: ret <2 x i1> [[AND]] ; %fabs.x = call <2 x half> @llvm.fabs.v2f16(<2 x half> %x) %ord = fcmp ord <2 x half> %fabs.x, zeroinitializer @@ -4640,8 +4640,8 @@ define i1 @clang_builtin_isnormal_inf_check_commute(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_commute( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 @@ -4653,8 +4653,8 @@ define i1 @clang_builtin_isnormal_inf_check_commute_nsz_rhs(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_commute_nsz_rhs( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp nsz ord half %fabs.x, 0.0 @@ -4666,8 +4666,8 @@ define i1 @clang_builtin_isnormal_inf_check_commute_nsz_lhs(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_commute_nsz_lhs( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 @@ -4678,8 +4678,8 @@ define i1 @clang_builtin_isnormal_inf_check_commute_nofabs_ueq(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_commute_nofabs_ueq( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[X:%.*]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %ord = fcmp ord half %x, 0.0 %cmp = fcmp ueq half %x, 0xH7C00 @@ -4690,8 +4690,8 @@ define i1 @clang_builtin_isnormal_inf_check_commute_nsz(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_commute_nsz( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp nsz oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp nsz oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp nsz ord half %fabs.x, 0.0 @@ -4716,8 +4716,8 @@ define i1 @clang_builtin_isnormal_inf_check_ult(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_ult( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp olt half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 @@ -4743,8 +4743,8 @@ define i1 @clang_builtin_isnormal_inf_check_ueq(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_ueq( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 @@ -4757,8 +4757,8 @@ define i1 @clang_builtin_isnormal_inf_check_une(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_une( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp one half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 @@ -4794,10 +4794,7 @@ define i1 @clang_builtin_isnormal_inf_check_oge(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_oge( -; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[CMP:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[ORD]], [[CMP]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 516) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) @@ -4809,10 +4806,7 @@ define i1 @clang_builtin_isnormal_inf_check_olt(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_olt( -; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[CMP:%.*]] = fcmp olt half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[ORD]], [[CMP]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 504) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) @@ -4839,10 +4833,7 @@ define i1 @clang_builtin_isnormal_inf_check_oeq(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_oeq( -; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[ORD]], [[CMP]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 516) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) @@ -4855,8 +4846,8 @@ define i1 @clang_builtin_isnormal_inf_check_unnececcary_fabs(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_unnececcary_fabs( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %x, 0.0 @@ -4868,10 +4859,7 @@ ; Negative test define i1 @clang_builtin_isnormal_inf_check_not_ord(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_not_ord( -; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[ORD:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[UEQ:%.*]] = fcmp uge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[ORD]], [[UEQ]] +; CHECK-NEXT: [[AND:%.*]] = fcmp uno half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) @@ -4883,8 +4871,8 @@ define i1 @clang_builtin_isnormal_inf_check_missing_fabs(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_missing_fabs( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[X:%.*]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %x, 0.0 @@ -4924,8 +4912,8 @@ define i1 @clang_builtin_isnormal_inf_check_nsz_lhs(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_nsz_lhs( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp nsz ord half %fabs.x, 0.0 @@ -4937,8 +4925,8 @@ define i1 @clang_builtin_isnormal_inf_check_nsz_rhs(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_nsz_rhs( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 @@ -4950,8 +4938,8 @@ define i1 @clang_builtin_isnormal_inf_check_nsz(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_nsz( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp nsz oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp nsz oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp nsz ord half %fabs.x, 0.0 @@ -4962,8 +4950,8 @@ define i1 @clang_builtin_isnormal_inf_check_fneg(half %x) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_fneg( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[X:%.*]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fneg.x = fneg half %x %ord = fcmp ord half %fneg.x, 0.0 @@ -4975,8 +4963,8 @@ define i1 @clang_builtin_isnormal_inf_check_copysign(half %x, half %y) { ; CHECK-LABEL: @clang_builtin_isnormal_inf_check_copysign( ; CHECK-NEXT: [[COPYSIGN_X:%.*]] = call half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[COPYSIGN_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[COPYSIGN_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %copysign.x = call half @llvm.copysign.f16(half %x, half %y) %ord = fcmp ord half %x, 0.0 @@ -4988,8 +4976,8 @@ define i1 @isnormal_logical_select_0(half %x) { ; CHECK-LABEL: @isnormal_logical_select_0( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 @@ -5001,8 +4989,8 @@ define i1 @isnormal_logical_select_1(half %x) { ; CHECK-LABEL: @isnormal_logical_select_1( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 @@ -5014,8 +5002,8 @@ define i1 @isnormal_logical_select_0_fmf0(half %x) { ; CHECK-LABEL: @isnormal_logical_select_0_fmf0( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp reassoc nsz arcp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp reassoc nsz arcp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp nsz arcp reassoc ord half %fabs.x, 0.0 @@ -5027,8 +5015,8 @@ define i1 @isnormal_logical_select_0_fmf1(half %x) { ; CHECK-LABEL: @isnormal_logical_select_0_fmf1( ; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs.x = call half @llvm.fabs.f16(half %x) %ord = fcmp ord half %fabs.x, 0.0 Index: llvm/test/Transforms/InstCombine/create-class-from-logic-fcmp.ll =================================================================== --- llvm/test/Transforms/InstCombine/create-class-from-logic-fcmp.ll +++ llvm/test/Transforms/InstCombine/create-class-from-logic-fcmp.ll @@ -616,10 +616,7 @@ define i1 @issubnormal_or_inf(half %x) { ; CHECK-LABEL: @issubnormal_or_inf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[FABS]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[CMPINF]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 756) ; CHECK-NEXT: ret i1 [[CLASS]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -631,10 +628,7 @@ define i1 @olt_smallest_normal_or_inf(half %x) { ; CHECK-LABEL: @olt_smallest_normal_or_inf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[CMPINF]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 764) ; CHECK-NEXT: ret i1 [[CLASS]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -646,10 +640,7 @@ define i1 @not_issubnormal_or_inf(half %x) { ; CHECK-LABEL: @not_issubnormal_or_inf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp une half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[NOT:%.*]] = and i1 [[CMP_SMALLEST_NORMAL]], [[CMPINF]] +; CHECK-NEXT: [[NOT:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 267) ; CHECK-NEXT: ret i1 [[NOT]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -661,10 +652,7 @@ define i1 @issubnormal_uge_or_inf(half %x) { ; CHECK-LABEL: @issubnormal_uge_or_inf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[CMPINF]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 783) ; CHECK-NEXT: ret i1 [[CLASS]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -721,10 +709,7 @@ define i1 @issubnormal_or_finite_olt(half %x) { ; CHECK-LABEL: @issubnormal_or_finite_olt( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp olt half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[FABS]], 0xH0400 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[CMPINF]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 504) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -737,10 +722,7 @@ ; inf | nan | zero | subnormal define i1 @issubnormal_or_finite_uge(half %x) { ; CHECK-LABEL: @issubnormal_or_finite_uge( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp uge half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[FABS]], 0xH0400 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[CMPINF]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 759) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -752,10 +734,7 @@ define i1 @issubnormal_and_finite_olt(half %x) { ; CHECK-LABEL: @issubnormal_and_finite_olt( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp olt half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[FABS]], 0xH0400 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP_SMALLEST_NORMAL]], [[CMPINF]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 240) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -782,10 +761,7 @@ define i1 @fcmp_fabs_uge_inf_or_fabs_uge_smallest_norm(half %x) { ; CHECK-LABEL: @fcmp_fabs_uge_inf_or_fabs_uge_smallest_norm( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp uge half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[CMPINF]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 783) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -802,8 +778,8 @@ define i1 @is_finite_and_ord(half %x) { ; CHECK-LABEL: @is_finite_and_ord( ; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) %is.finite = fcmp ueq half %fabs, 0xH7C00 @@ -814,10 +790,7 @@ define i1 @is_finite_and_uno(half %x) { ; CHECK-LABEL: @is_finite_and_uno( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_FINITE:%.*]] = fcmp ueq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[UNO]], [[IS_FINITE]] +; CHECK-NEXT: [[AND:%.*]] = fcmp uno half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -829,11 +802,7 @@ define i1 @is_finite_or_ord(half %x) { ; CHECK-LABEL: @is_finite_or_ord( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_FINITE:%.*]] = fcmp ueq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[ORD]], [[IS_FINITE]] -; CHECK-NEXT: ret i1 [[OR]] +; CHECK-NEXT: ret i1 true ; %fabs = call half @llvm.fabs.f16(half %x) %is.finite = fcmp ueq half %fabs, 0xH7C00 @@ -844,10 +813,7 @@ define i1 @is_finite_or_uno(half %x) { ; CHECK-LABEL: @is_finite_or_uno( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_FINITE:%.*]] = fcmp ueq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[UNO]], [[IS_FINITE]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 519) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -859,10 +825,7 @@ define i1 @oeq_isinf_or_uno(half %x) { ; CHECK-LABEL: @oeq_isinf_or_uno( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMPINF]], [[UNO]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 519) ; CHECK-NEXT: ret i1 [[CLASS]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -874,10 +837,7 @@ define i1 @oeq_isinf_or_ord(half %x) { ; CHECK-LABEL: @oeq_isinf_or_ord( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMPINF]], [[UNO]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[CLASS]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -889,11 +849,7 @@ define i1 @oeq_isinf_and_uno(half %x) { ; CHECK-LABEL: @oeq_isinf_and_uno( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMPINF]], [[UNO]] -; CHECK-NEXT: ret i1 [[AND]] +; CHECK-NEXT: ret i1 false ; %fabs = call half @llvm.fabs.f16(half %x) %cmpinf = fcmp oeq half %fabs, 0xH7C00 @@ -904,10 +860,7 @@ define i1 @oeq_isinf_and_ord(half %x) { ; CHECK-LABEL: @oeq_isinf_and_ord( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[CMPINF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMPINF]], [[UNO]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 516) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -924,10 +877,7 @@ define i1 @isnormal_or_zero(half %x) #0 { ; CHECK-LABEL: @isnormal_or_zero( ; CHECK-NEXT: entry: -; CHECK-NEXT: [[FABS:%.*]] = tail call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[ISNORMAL:%.*]] = fcmp uge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[AND1:%.*]] = and i1 [[ISNORMAL]], [[TMP0]] +; CHECK-NEXT: [[AND1:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 264) ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq half [[X]], 0xH0000 ; CHECK-NEXT: [[SPEC_SELECT:%.*]] = or i1 [[CMP]], [[AND1]] ; CHECK-NEXT: ret i1 [[SPEC_SELECT]] @@ -968,10 +918,7 @@ ; -> ord define i1 @isnormalinf_or_ord(half %x) #0 { ; CHECK-LABEL: @isnormalinf_or_ord( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_NORMAL_INF:%.*]] = fcmp oge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[IS_NORMAL_INF]], [[IS_ORD]] +; CHECK-NEXT: [[OR:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -984,10 +931,7 @@ ; -> ord define i1 @ord_or_isnormalinf(half %x) #0 { ; CHECK-LABEL: @ord_or_isnormalinf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_NORMAL_INF:%.*]] = fcmp oge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[IS_ORD]], [[IS_NORMAL_INF]] +; CHECK-NEXT: [[OR:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1015,10 +959,7 @@ ; -> normal | inf define i1 @isnormalinf_or_inf(half %x) #0 { ; CHECK-LABEL: @isnormalinf_or_inf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_NORMAL_INF:%.*]] = fcmp oge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_INF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[IS_NORMAL_INF]], [[IS_INF]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 780) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1031,10 +972,7 @@ ; -> pinf | pnormal define i1 @posisnormalinf_or_posinf(half %x) #0 { ; CHECK-LABEL: @posisnormalinf_or_posinf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_POS_NORMAL_INF:%.*]] = fcmp oge half [[X]], 0xH0400 -; CHECK-NEXT: [[IS_INF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[IS_POS_NORMAL_INF]], [[IS_INF]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 772) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1047,10 +985,7 @@ ; -> normal | inf define i1 @isnormalinf_or_posinf(half %x) #0 { ; CHECK-LABEL: @isnormalinf_or_posinf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_NORMAL_INF:%.*]] = fcmp oge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_POS_INF:%.*]] = fcmp oeq half [[X]], 0xH7C00 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[IS_NORMAL_INF]], [[IS_POS_INF]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 780) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1063,10 +998,7 @@ ; -> pinf|ninf define i1 @isnormalinf_and_inf(half %x) #0 { ; CHECK-LABEL: @isnormalinf_and_inf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_NORMAL_INF:%.*]] = fcmp oge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_INF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[IS_NORMAL_INF]], [[IS_INF]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 516) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1079,10 +1011,7 @@ ; -> pinf define i1 @posisnormalinf_and_posinf(half %x) #0 { ; CHECK-LABEL: @posisnormalinf_and_posinf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_POS_NORMAL_INF:%.*]] = fcmp oge half [[X]], 0xH0400 -; CHECK-NEXT: [[IS_INF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[IS_POS_NORMAL_INF]], [[IS_INF]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 512) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1095,10 +1024,7 @@ ; -> pinf define i1 @isnormalinf_and_posinf(half %x) #0 { ; CHECK-LABEL: @isnormalinf_and_posinf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_NORMAL_INF:%.*]] = fcmp oge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_POS_INF:%.*]] = fcmp oeq half [[X]], 0xH7C00 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[IS_NORMAL_INF]], [[IS_POS_INF]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 512) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1115,11 +1041,7 @@ ; -> true define i1 @not_isnormalinf_or_ord(half %x) #0 { ; CHECK-LABEL: @not_isnormalinf_or_ord( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[NOT_IS_NORMAL_INF:%.*]] = fcmp ult half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[NOT_IS_NORMAL_INF]], [[IS_ORD]] -; CHECK-NEXT: ret i1 [[OR]] +; CHECK-NEXT: ret i1 true ; %fabs = call half @llvm.fabs.f16(half %x) %not.is.normal.inf = fcmp ult half %fabs, 0xH0400 @@ -1131,10 +1053,7 @@ ; -> subnormal | zero define i1 @not_isnormalinf_and_ord(half %x) #0 { ; CHECK-LABEL: @not_isnormalinf_and_ord( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[NOT_IS_NORMAL_INF:%.*]] = fcmp ult half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[NOT_IS_NORMAL_INF]], [[IS_ORD]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 240) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1147,10 +1066,7 @@ ; -> ~ninf define i1 @not_isnormalinf_or_inf(half %x) #0 { ; CHECK-LABEL: @not_isnormalinf_or_inf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[NOT_IS_NORMAL_INF:%.*]] = fcmp ult half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_INF:%.*]] = fcmp olt half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[NOT_IS_NORMAL_INF]], [[IS_INF]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 507) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1163,10 +1079,7 @@ ; -> subnormal | zero | nan define i1 @not_isnormalinf_or_uno(half %x) #0 { ; CHECK-LABEL: @not_isnormalinf_or_uno( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[NOT_IS_NORMAL_INF:%.*]] = fcmp ult half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[NOT_IS_NORMAL_INF]], [[IS_UNO]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 243) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1179,10 +1092,7 @@ ; -> subnormal | zero | nan define i1 @not_isnormalinf_or_uno_nofabs(half %x) #0 { ; CHECK-LABEL: @not_isnormalinf_or_uno_nofabs( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[NOT_IS_NORMAL_INF:%.*]] = fcmp ult half [[FABS]], 0xH0400 -; CHECK-NEXT: [[IS_UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[NOT_IS_NORMAL_INF]], [[IS_UNO]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 243) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1195,10 +1105,7 @@ ; -> ~pnormal define i1 @not_negisnormalinf_or_inf(half %x) #0 { ; CHECK-LABEL: @not_negisnormalinf_or_inf( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[NOT_IS_NEG_NORMAL_INF:%.*]] = fcmp ult half [[X]], 0xH0400 -; CHECK-NEXT: [[IS_INF:%.*]] = fcmp oeq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[NOT_IS_NEG_NORMAL_INF]], [[IS_INF]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 767) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1211,9 +1118,7 @@ ; -> ~pnormal define i1 @not_negisnormalinf_or_posinf(half %x) #0 { ; CHECK-LABEL: @not_negisnormalinf_or_posinf( -; CHECK-NEXT: [[NOT_IS_POS_NORMAL_INF:%.*]] = fcmp ult half [[X:%.*]], 0xH0400 -; CHECK-NEXT: [[IS_INF:%.*]] = fcmp oeq half [[X]], 0xH7C00 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[NOT_IS_POS_NORMAL_INF]], [[IS_INF]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 767) ; CHECK-NEXT: ret i1 [[OR]] ; %not.is.pos.normal.inf = fcmp ult half %x, 0xH0400 @@ -1225,10 +1130,7 @@ ; -> ninf | nnormal define i1 @not_isposnormalinf_and_isnormalinf(half %x) #0 { ; CHECK-LABEL: @not_isposnormalinf_and_isnormalinf( -; CHECK-NEXT: [[NOT_IS_POS_NORMAL_INF:%.*]] = fcmp ult half [[X:%.*]], 0xH0400 -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X]]) -; CHECK-NEXT: [[IS_NORMAL_INF:%.*]] = fcmp oge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[NOT_IS_POS_NORMAL_INF]], [[IS_NORMAL_INF]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 12) ; CHECK-NEXT: ret i1 [[AND]] ; %not.is.pos.normal.inf = fcmp ult half %x, 0xH0400 @@ -1241,9 +1143,7 @@ ; -> ord define i1 @olt_smallest_normal_or_ord(half %x) #0 { ; CHECK-LABEL: @olt_smallest_normal_or_ord( -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[ORD]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[CLASS]] ; %ord = fcmp ord half %x, 0.0 @@ -1255,9 +1155,7 @@ ; -> ~pinf define i1 @olt_smallest_normal_or_uno(half %x) #0 { ; CHECK-LABEL: @olt_smallest_normal_or_uno( -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X:%.*]], 0xH0000 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[UNO]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 255) ; CHECK-NEXT: ret i1 [[CLASS]] ; %uno = fcmp uno half %x, 0.0 @@ -1268,10 +1166,7 @@ define i1 @olt_smallest_normal_or_finite(half %x) #0 { ; CHECK-LABEL: @olt_smallest_normal_or_finite( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[IS_FINITE:%.*]] = fcmp olt half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[IS_FINITE]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 508) ; CHECK-NEXT: ret i1 [[CLASS]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1283,10 +1178,7 @@ define i1 @uge_smallest_normal_or_ord(half %x) #0 { ; CHECK-LABEL: @uge_smallest_normal_or_ord( -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[ORD]] -; CHECK-NEXT: ret i1 [[CLASS]] +; CHECK-NEXT: ret i1 true ; %ord = fcmp ord half %x, 0.0 %cmp.smallest.normal = fcmp uge half %x, 0xH0400 @@ -1297,9 +1189,7 @@ ; -> nan | pnormal | pinf define i1 @uge_smallest_normal_or_uno(half %x) #0 { ; CHECK-LABEL: @uge_smallest_normal_or_uno( -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X:%.*]], 0xH0000 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[UNO]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 771) ; CHECK-NEXT: ret i1 [[CLASS]] ; %uno = fcmp uno half %x, 0.0 @@ -1311,9 +1201,7 @@ ; -> uno define i1 @uge_smallest_normal_and_uno(half %x) #0 { ; CHECK-LABEL: @uge_smallest_normal_and_uno( -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X:%.*]], 0xH0000 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[CMP_SMALLEST_NORMAL]], [[UNO]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp uno half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[CLASS]] ; %uno = fcmp uno half %x, 0.0 @@ -1325,9 +1213,7 @@ ; -> true define i1 @olt_infinity_or_finite(half %x) #0 { ; CHECK-LABEL: @olt_infinity_or_finite( -; CHECK-NEXT: [[LT_INFINITY:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[CMP_SMALLEST_NORMAL]], [[LT_INFINITY]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 508) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.infinity = fcmp olt half %x, 0xH7C00 @@ -1339,9 +1225,7 @@ ; -> zero|subnormal|normal define i1 @olt_infinity_and_finite(half %x) #0 { ; bustttedddd ; CHECK-LABEL: @olt_infinity_and_finite( -; CHECK-NEXT: [[LT_INFINITY:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[CMP_SMALLEST_NORMAL]], [[LT_INFINITY]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 252) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.infinity = fcmp olt half %x, 0xH7C00 @@ -1353,9 +1237,7 @@ ; -> ord define i1 @olt_infinity_or_ord(half %x) #0 { ; CHECK-LABEL: @olt_infinity_or_ord( -; CHECK-NEXT: [[LT_INFINITY:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[LT_INFINITY]], [[ORD]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.infinity = fcmp olt half %x, 0xH7C00 @@ -1367,9 +1249,7 @@ ; -> ~posinf define i1 @olt_infinity_or_uno(half %x) #0 { ; CHECK-LABEL: @olt_infinity_or_uno( -; CHECK-NEXT: [[LT_INFINITY:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[LT_INFINITY]], [[UNO]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 511) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.infinity = fcmp olt half %x, 0xH7C00 @@ -1380,10 +1260,7 @@ define i1 @olt_infinity_or_subnormal(half %x) #0 { ; CHECK-LABEL: @olt_infinity_or_subnormal( -; CHECK-NEXT: [[LT_INFINITY:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X]]) -; CHECK-NEXT: [[IS_SUBNORMAL:%.*]] = fcmp olt half [[FABS]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[LT_INFINITY]], [[IS_SUBNORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 508) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.infinity = fcmp olt half %x, 0xH7C00 @@ -1395,10 +1272,7 @@ define i1 @olt_infinity_and_subnormal(half %x) #0 { ; CHECK-LABEL: @olt_infinity_and_subnormal( -; CHECK-NEXT: [[LT_INFINITY:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X]]) -; CHECK-NEXT: [[IS_SUBNORMAL:%.*]] = fcmp olt half [[FABS]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[LT_INFINITY]], [[IS_SUBNORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 240) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.infinity = fcmp olt half %x, 0xH7C00 @@ -1410,10 +1284,7 @@ define i1 @olt_infinity_and_not_subnormal(half %x) #0 { ; CHECK-LABEL: @olt_infinity_and_not_subnormal( -; CHECK-NEXT: [[LT_INFINITY:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X]]) -; CHECK-NEXT: [[IS_SUBNORMAL:%.*]] = fcmp uge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[LT_INFINITY]], [[IS_SUBNORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 268) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.infinity = fcmp olt half %x, 0xH7C00 @@ -1427,10 +1298,7 @@ ; -> ninf define i1 @olt_infinity_and_ueq_inf(half %x) #0 { ; CHECK-LABEL: @olt_infinity_and_ueq_inf( -; CHECK-NEXT: [[LT_INFINITY:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X]]) -; CHECK-NEXT: [[EQ_INF:%.*]] = fcmp ueq half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[LT_INFINITY]], [[EQ_INF]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 4) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.infinity = fcmp olt half %x, 0xH7C00 @@ -1454,9 +1322,7 @@ ; -> pnormal define i1 @olt_smallest_normal_or_ueq_inf(half %x) #0 { ; CHECK-LABEL: @olt_smallest_normal_or_ueq_inf( -; CHECK-NEXT: [[LT_NORMAL:%.*]] = fcmp olt half [[X:%.*]], 0xH0400 -; CHECK-NEXT: [[EQ_INF:%.*]] = fcmp ueq half [[X]], 0xH7C00 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[LT_NORMAL]], [[EQ_INF]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 767) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.normal = fcmp olt half %x, 0xH0400 @@ -1468,9 +1334,7 @@ ; -> ~pinf define i1 @olt_smallest_normal_or_une_inf(half %x) #0 { ; CHECK-LABEL: @olt_smallest_normal_or_une_inf( -; CHECK-NEXT: [[LT_NORMAL:%.*]] = fcmp olt half [[X:%.*]], 0xH0400 -; CHECK-NEXT: [[EQ_INF:%.*]] = fcmp une half [[X]], 0xH7C00 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[LT_NORMAL]], [[EQ_INF]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 511) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.normal = fcmp olt half %x, 0xH0400 @@ -1482,9 +1346,7 @@ ; -> ninf | nnormal | subnormal | zero define i1 @olt_smallest_normal_and_une_inf(half %x) #0 { ; CHECK-LABEL: @olt_smallest_normal_and_une_inf( -; CHECK-NEXT: [[LT_NORMAL:%.*]] = fcmp olt half [[X:%.*]], 0xH0400 -; CHECK-NEXT: [[EQ_INF:%.*]] = fcmp une half [[X]], 0xH7C00 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[LT_NORMAL]], [[EQ_INF]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 252) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.normal = fcmp olt half %x, 0xH0400 @@ -1495,9 +1357,7 @@ define i1 @olt_smallest_normal_and_une_inf_or_oeq_smallest_normal(half %x) #0 { ; CHECK-LABEL: @olt_smallest_normal_and_une_inf_or_oeq_smallest_normal( -; CHECK-NEXT: [[LT_NORMAL:%.*]] = fcmp olt half [[X:%.*]], 0xH0400 -; CHECK-NEXT: [[EQ_INF:%.*]] = fcmp une half [[X]], 0xH7C00 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[LT_NORMAL]], [[EQ_INF]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 252) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.normal = fcmp olt half %x, 0xH0400 @@ -1510,9 +1370,7 @@ define i1 @olt_smallest_normal_and_une_inf_or_one_smallest_normal(half %x) #0 { ; CHECK-LABEL: @olt_smallest_normal_and_une_inf_or_one_smallest_normal( -; CHECK-NEXT: [[LT_NORMAL:%.*]] = fcmp olt half [[X:%.*]], 0xH0400 -; CHECK-NEXT: [[EQ_INF:%.*]] = fcmp une half [[X]], 0xH7C00 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[LT_NORMAL]], [[EQ_INF]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 252) ; CHECK-NEXT: ret i1 [[CLASS]] ; %lt.normal = fcmp olt half %x, 0xH0400 @@ -1525,10 +1383,7 @@ define i1 @oge_fabs_eq_inf_and_ord(half %x) #0 { ; CHECK-LABEL: @oge_fabs_eq_inf_and_ord( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[OGE_FABS_INF:%.*]] = fcmp oge half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[OGE_FABS_INF]], [[ORD]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 516) ; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1540,9 +1395,7 @@ define i1 @oge_eq_inf_and_ord(half %x) #0 { ; CHECK-LABEL: @oge_eq_inf_and_ord( -; CHECK-NEXT: [[OGE_FABS_INF:%.*]] = fcmp oge half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[AND:%.*]] = and i1 [[OGE_FABS_INF]], [[ORD]] +; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 512) ; CHECK-NEXT: ret i1 [[AND]] ; %oge.fabs.inf = fcmp oge half %x, 0xH7C00 @@ -1553,10 +1406,7 @@ define i1 @oge_fabs_eq_inf_or_uno(half %x) #0 { ; CHECK-LABEL: @oge_fabs_eq_inf_or_uno( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[OGE_FABS_INF:%.*]] = fcmp oge half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[OGE_FABS_INF]], [[UNO]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 519) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1568,9 +1418,7 @@ define i1 @oge_eq_inf_or_uno(half %x) #0 { ; CHECK-LABEL: @oge_eq_inf_or_uno( -; CHECK-NEXT: [[OGE_FABS_INF:%.*]] = fcmp oge half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[OGE_FABS_INF]], [[UNO]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 515) ; CHECK-NEXT: ret i1 [[OR]] ; %oge.fabs.inf = fcmp oge half %x, 0xH7C00 @@ -1582,8 +1430,8 @@ define i1 @ult_fabs_eq_inf_and_ord(half %x) #0 { ; CHECK-LABEL: @ult_fabs_eq_inf_and_ord( ; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt half [[FABS]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp olt half [[FABS]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %fabs = call half @llvm.fabs.f16(half %x) %ult.fabs.inf = fcmp ult half %fabs, 0xH7C00 @@ -1594,8 +1442,8 @@ define i1 @ult_eq_inf_and_ord(half %x) #0 { ; CHECK-LABEL: @ult_eq_inf_and_ord( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[AND:%.*]] = fcmp olt half [[X:%.*]], 0xH7C00 +; CHECK-NEXT: ret i1 [[AND]] ; %ult.fabs.inf = fcmp ult half %x, 0xH7C00 %ord = fcmp ord half %x, 0xH0000 @@ -1605,10 +1453,7 @@ define i1 @ult_fabs_eq_inf_or_uno(half %x) #0 { ; CHECK-LABEL: @ult_fabs_eq_inf_or_uno( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[ULT_FABS_INF:%.*]] = fcmp ult half [[FABS]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[ULT_FABS_INF]], [[UNO]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 507) ; CHECK-NEXT: ret i1 [[OR]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -1620,9 +1465,7 @@ define i1 @ult_eq_inf_or_uno(half %x) #0 { ; CHECK-LABEL: @ult_eq_inf_or_uno( -; CHECK-NEXT: [[ULT_FABS_INF:%.*]] = fcmp ult half [[X:%.*]], 0xH7C00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[ULT_FABS_INF]], [[UNO]] +; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 511) ; CHECK-NEXT: ret i1 [[OR]] ; %ult.fabs.inf = fcmp ult half %x, 0xH7C00 @@ -1649,9 +1492,7 @@ ; -> ninf | fcZero | fcSubnormal define i1 @oeq_neginfinity_or_olt_smallest_normal(half %x) #0 { ; CHECK-LABEL: @oeq_neginfinity_or_olt_smallest_normal( -; CHECK-NEXT: [[OEQ_NEG_INFINITY:%.*]] = fcmp oeq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[OEQ_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 252) ; CHECK-NEXT: ret i1 [[CLASS]] ; %oeq.neg.infinity = fcmp oeq half %x, 0xHFC00 @@ -1663,9 +1504,7 @@ ; -> ninf define i1 @oeq_neginfinity_and_olt_smallest_normal(half %x) #0 { ; CHECK-LABEL: @oeq_neginfinity_and_olt_smallest_normal( -; CHECK-NEXT: [[OEQ_NEG_INFINITY:%.*]] = fcmp oeq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[OEQ_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 4) ; CHECK-NEXT: ret i1 [[CLASS]] ; %oeq.neg.infinity = fcmp oeq half %x, 0xHFC00 @@ -1677,9 +1516,7 @@ ; -> ninf | pnormal | pinf define i1 @oeq_neginfinity_or_oge_smallest_normal(half %x) #0 { ; CHECK-LABEL: @oeq_neginfinity_or_oge_smallest_normal( -; CHECK-NEXT: [[OEQ_NEG_INFINITY:%.*]] = fcmp oeq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp oge half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[OEQ_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 772) ; CHECK-NEXT: ret i1 [[CLASS]] ; %oeq.neg.infinity = fcmp oeq half %x, 0xHFC00 @@ -1691,10 +1528,7 @@ ; -> false define i1 @oeq_neginfinity_and_oge_smallest_normal(half %x) #0 { ; CHECK-LABEL: @oeq_neginfinity_and_oge_smallest_normal( -; CHECK-NEXT: [[OEQ_NEG_INFINITY:%.*]] = fcmp oeq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp oge half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[OEQ_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] -; CHECK-NEXT: ret i1 [[CLASS]] +; CHECK-NEXT: ret i1 false ; %oeq.neg.infinity = fcmp oeq half %x, 0xHFC00 %cmp.smallest.normal = fcmp oge half %x, 0xH0400 @@ -1705,9 +1539,7 @@ ; -> ord define i1 @oeq_neginfinity_or_ord(half %x) #0 { ; CHECK-LABEL: @oeq_neginfinity_or_ord( -; CHECK-NEXT: [[OEQ_NEG_INFINITY:%.*]] = fcmp oeq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[OEQ_NEG_INFINITY]], [[ORD]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[CLASS]] ; %oeq.neg.infinity = fcmp oeq half %x, 0xHFC00 @@ -1719,9 +1551,7 @@ ; -> ninf define i1 @oeq_neginfinity_and_ord(half %x) #0 { ; CHECK-LABEL: @oeq_neginfinity_and_ord( -; CHECK-NEXT: [[OEQ_NEG_INFINITY:%.*]] = fcmp oeq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[OEQ_NEG_INFINITY]], [[ORD]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 4) ; CHECK-NEXT: ret i1 [[CLASS]] ; %oeq.neg.infinity = fcmp oeq half %x, 0xHFC00 @@ -1747,10 +1577,7 @@ ; -> true define i1 @une_neginfinity_or_ord(half %x) #0 { ; CHECK-LABEL: @une_neginfinity_or_ord( -; CHECK-NEXT: [[UNE_NEG_INFINITY:%.*]] = fcmp une half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[ORD:%.*]] = fcmp ord half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[UNE_NEG_INFINITY]], [[ORD]] -; CHECK-NEXT: ret i1 [[CLASS]] +; CHECK-NEXT: ret i1 true ; %une.neg.infinity = fcmp une half %x, 0xHFC00 %ord = fcmp ord half %x, 0.0 @@ -1761,8 +1588,8 @@ ; -> ~(nan | ninf) define i1 @une_neginfinity_and_ord(half %x) #0 { ; CHECK-LABEL: @une_neginfinity_and_ord( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp one half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: ret i1 [[TMP1]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp one half [[X:%.*]], 0xHFC00 +; CHECK-NEXT: ret i1 [[CLASS]] ; %une.neg.infinity = fcmp une half %x, 0xHFC00 %ord = fcmp ord half %x, 0.0 @@ -1773,9 +1600,7 @@ ; -> ord define i1 @one_neginfinity_or_olt_smallest_normal(half %x) #0 { ; CHECK-LABEL: @one_neginfinity_or_olt_smallest_normal( -; CHECK-NEXT: [[ONE_NEG_INFINITY:%.*]] = fcmp one half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[ONE_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[CLASS]] ; %one.neg.infinity = fcmp one half %x, 0xHFC00 @@ -1787,9 +1612,7 @@ ; -> ~(nan|ninf) define i1 @one_neginfinity_and_olt_smallest_normal(half %x) #0 { ; CHECK-LABEL: @one_neginfinity_and_olt_smallest_normal( -; CHECK-NEXT: [[ONE_NEG_INFINITY:%.*]] = fcmp one half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[ONE_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 248) ; CHECK-NEXT: ret i1 [[CLASS]] ; %one.neg.infinity = fcmp one half %x, 0xHFC00 @@ -1801,9 +1624,7 @@ ; -> ~ninf define i1 @one_neginfinity_or_uno(half %x) #0 { ; CHECK-LABEL: @one_neginfinity_or_uno( -; CHECK-NEXT: [[ONE_NEG_INFINITY:%.*]] = fcmp one half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[ONE_NEG_INFINITY]], [[UNO]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 1019) ; CHECK-NEXT: ret i1 [[CLASS]] ; %one.neg.infinity = fcmp one half %x, 0xHFC00 @@ -1815,10 +1636,7 @@ ; -> ~ninf define i1 @one_neginfinity_and_ord(half %x) #0 { ; CHECK-LABEL: @one_neginfinity_and_ord( -; CHECK-NEXT: [[ONE_NEG_INFINITY:%.*]] = fcmp one half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[ORD:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[ONE_NEG_INFINITY]], [[ORD]] -; CHECK-NEXT: ret i1 [[CLASS]] +; CHECK-NEXT: ret i1 false ; %one.neg.infinity = fcmp one half %x, 0xHFC00 %ord = fcmp uno half %x, 0.0 @@ -1829,9 +1647,7 @@ ; -> pnormal|pinf define i1 @one_neginfinity_and_uge_smallest_normal(half %x) #0 { ; CHECK-LABEL: @one_neginfinity_and_uge_smallest_normal( -; CHECK-NEXT: [[ONE_NEG_INFINITY:%.*]] = fcmp one half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[ONE_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 768) ; CHECK-NEXT: ret i1 [[CLASS]] ; %one.neg.infinity = fcmp one half %x, 0xHFC00 @@ -1843,9 +1659,7 @@ ; -> ~(pnormal|pinf) define i1 @ueq_neginfinity_or_olt_smallest_normal(half %x) #0 { ; CHECK-LABEL: @ueq_neginfinity_or_olt_smallest_normal( -; CHECK-NEXT: [[UEQ_NEG_INFINITY:%.*]] = fcmp ueq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[UEQ_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 255) ; CHECK-NEXT: ret i1 [[CLASS]] ; %ueq.neg.infinity = fcmp ueq half %x, 0xHFC00 @@ -1857,9 +1671,7 @@ ; -> ninf define i1 @ueq_neginfinity_and_olt_smallest_normal(half %x) #0 { ; CHECK-LABEL: @ueq_neginfinity_and_olt_smallest_normal( -; CHECK-NEXT: [[UEQ_NEG_INFINITY:%.*]] = fcmp ueq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[UEQ_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 4) ; CHECK-NEXT: ret i1 [[CLASS]] ; %ueq.neg.infinity = fcmp ueq half %x, 0xHFC00 @@ -1871,9 +1683,7 @@ ; -> nan|ninf define i1 @ueq_neginfinity_or_uno(half %x) #0 { ; CHECK-LABEL: @ueq_neginfinity_or_uno( -; CHECK-NEXT: [[UEQ_NEG_INFINITY:%.*]] = fcmp ueq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[UNO:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[UEQ_NEG_INFINITY]], [[UNO]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 7) ; CHECK-NEXT: ret i1 [[CLASS]] ; %ueq.neg.infinity = fcmp ueq half %x, 0xHFC00 @@ -1885,9 +1695,7 @@ ; -> nan|ninf define i1 @ueq_neginfinity_and_ord(half %x) #0 { ; CHECK-LABEL: @ueq_neginfinity_and_ord( -; CHECK-NEXT: [[UEQ_NEG_INFINITY:%.*]] = fcmp ueq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[ORD:%.*]] = fcmp uno half [[X]], 0xH0000 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[UEQ_NEG_INFINITY]], [[ORD]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp uno half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[CLASS]] ; %ueq.neg.infinity = fcmp ueq half %x, 0xHFC00 @@ -1899,9 +1707,7 @@ ; -> uno define i1 @ueq_neginfinity_and_uge_smallest_normal(half %x) #0 { ; CHECK-LABEL: @ueq_neginfinity_and_uge_smallest_normal( -; CHECK-NEXT: [[UEQ_NEG_INFINITY:%.*]] = fcmp ueq half [[X:%.*]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[UEQ_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp uno half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[CLASS]] ; %ueq.neg.infinity = fcmp ueq half %x, 0xHFC00 @@ -1988,11 +1794,7 @@ ; -> false define i1 @fabs_ueq_neginfinity_and_olt_smallest_normal(half %x) #0 { ; WRONG ; CHECK-LABEL: @fabs_ueq_neginfinity_and_olt_smallest_normal( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[FABS_UEQ_NEG_INFINITY:%.*]] = fcmp ueq half [[FABS]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[FABS_UEQ_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] -; CHECK-NEXT: ret i1 [[CLASS]] +; CHECK-NEXT: ret i1 false ; %fabs = call half @llvm.fabs.f16(half %x) %fabs.ueq.neg.infinity = fcmp ueq half %fabs, 0xHFC00 @@ -2004,10 +1806,7 @@ ; -> pinf|pnormal define i1 @fabs_one_neginfinity_and_uge_smallest_normal(half %x) #0 { ; CHECK-LABEL: @fabs_one_neginfinity_and_uge_smallest_normal( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[FABS_ONE_NEG_INFINITY:%.*]] = fcmp one half [[FABS]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = and i1 [[FABS_ONE_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 768) ; CHECK-NEXT: ret i1 [[CLASS]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -2020,10 +1819,7 @@ ; -> ord define i1 @fabs_one_neginfinity_or_olt_smallest_normal(half %x) #0 { ; CHECK-LABEL: @fabs_one_neginfinity_or_olt_smallest_normal( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[FABS_ONE_NEG_INFINITY:%.*]] = fcmp one half [[FABS]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp olt half [[X]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[FABS_ONE_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = fcmp ord half [[X:%.*]], 0xH0000 ; CHECK-NEXT: ret i1 [[CLASS]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -2036,10 +1832,7 @@ ; -> ~(zero|subnormal) define i1 @fabs_ueq_neginfinity_or_fabs_uge_smallest_normal(half %x) #0 { ; CHECK-LABEL: @fabs_ueq_neginfinity_or_fabs_uge_smallest_normal( -; CHECK-NEXT: [[FABS:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]]) -; CHECK-NEXT: [[FABS_OEQ_NEG_INFINITY:%.*]] = fcmp ueq half [[FABS]], 0xHFC00 -; CHECK-NEXT: [[CMP_SMALLEST_NORMAL:%.*]] = fcmp uge half [[FABS]], 0xH0400 -; CHECK-NEXT: [[CLASS:%.*]] = or i1 [[FABS_OEQ_NEG_INFINITY]], [[CMP_SMALLEST_NORMAL]] +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 783) ; CHECK-NEXT: ret i1 [[CLASS]] ; %fabs = call half @llvm.fabs.f16(half %x) @@ -2185,6 +1978,30 @@ ret i1 %and } +define i1 @issubnormal_or_inf_nnan_logical_select_(half %x) { +; CHECK-LABEL: @issubnormal_or_inf_nnan_logical_select_( +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 756) +; CHECK-NEXT: ret i1 [[CLASS]] +; + %fabs = call nnan half @llvm.fabs.f16(half %x) + %cmpinf = fcmp nnan oeq half %fabs, 0xH7C00 + %cmp.smallest.normal = fcmp nnan olt half %fabs, 0xH0400 + %class = select i1 %cmpinf, i1 true, i1 %cmp.smallest.normal + ret i1 %class +} + +define i1 @issubnormal_and_ninf_nnan_logical_select_(half %x) { +; CHECK-LABEL: @issubnormal_and_ninf_nnan_logical_select_( +; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 240) +; CHECK-NEXT: ret i1 [[CLASS]] +; + %fabs = call nnan half @llvm.fabs.f16(half %x) + %cmpinf = fcmp nnan one half %fabs, 0xH7C00 + %cmp.smallest.normal = fcmp nnan olt half %fabs, 0xH0400 + %class = select i1 %cmpinf, i1 %cmp.smallest.normal, i1 false + ret i1 %class +} + declare half @llvm.fabs.f16(half) #0 declare half @llvm.canonicalize.f16(half) #0 declare <2 x half> @llvm.fabs.v2f16(<2 x half>) #0