brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · 7f579ed Raw
184 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4define i1 @or_fcmp_redundant_or1(double %v0) {5; CHECK-LABEL: @or_fcmp_redundant_or1(6; CHECK-NEXT:    [[V2:%.*]] = fcmp olt double [[V0:%.*]], 1.990000e+007; CHECK-NEXT:    ret i1 [[V2]]8;9  %v1 = fcmp olt double %v0, 1.000000e-0210  %v2 = fcmp olt double %v0, 1.990000e+0011  %v3 = or i1 %v1, %v212  ret i1 %v313}14 15define i1 @or_fcmp_redundant_or2(double %v0) {16; CHECK-LABEL: @or_fcmp_redundant_or2(17; CHECK-NEXT:    [[V1:%.*]] = fcmp olt double [[V0:%.*]], 2.300000e+0018; CHECK-NEXT:    ret i1 [[V1]]19;20  %v1 = fcmp olt double %v0, 2.300000e+0021  %v2 = fcmp olt double %v0, 1.990000e+0022  %v3 = or i1 %v1, %v223  ret i1 %v324}25 26define i1 @or_fcmp_redundant_or3(double %v0) {27; CHECK-LABEL: @or_fcmp_redundant_or3(28; CHECK-NEXT:    [[V1:%.*]] = fcmp ogt double [[V0:%.*]], 1.000000e-0229; CHECK-NEXT:    ret i1 [[V1]]30;31  %v1 = fcmp ogt double %v0, 1.000000e-0232  %v2 = fcmp ogt double %v0, 1.990000e+0033  %v3 = or i1 %v1, %v234  ret i1 %v335}36 37define i1 @or_fcmp_redundant_or4(double %v0) {38; CHECK-LABEL: @or_fcmp_redundant_or4(39; CHECK-NEXT:    [[V2:%.*]] = fcmp ogt double [[V0:%.*]], 1.990000e+0040; CHECK-NEXT:    ret i1 [[V2]]41;42  %v1 = fcmp ogt double %v0, 2.300000e+0043  %v2 = fcmp ogt double %v0, 1.990000e+0044  %v3 = or i1 %v1, %v245  ret i1 %v346}47 48define i1 @or_fcmp_redundant_or_neg1(double %v0) {49; CHECK-LABEL: @or_fcmp_redundant_or_neg1(50; CHECK-NEXT:    [[V1:%.*]] = fcmp olt double [[V0:%.*]], 1.000000e-0251; CHECK-NEXT:    [[V2:%.*]] = fcmp ogt double [[V0]], 1.990000e+0052; CHECK-NEXT:    [[V3:%.*]] = or i1 [[V1]], [[V2]]53; CHECK-NEXT:    ret i1 [[V3]]54;55  %v1 = fcmp olt double %v0, 1.000000e-0256  %v2 = fcmp ogt double %v0, 1.990000e+0057  %v3 = or i1 %v1, %v258  ret i1 %v359}60 61define i1 @or_fcmp_redundant_or_neg2(double %v0) {62; CHECK-LABEL: @or_fcmp_redundant_or_neg2(63; CHECK-NEXT:    [[V1:%.*]] = fcmp ogt double [[V0:%.*]], 1.000000e-0264; CHECK-NEXT:    [[V2:%.*]] = fcmp olt double [[V0]], 1.990000e+0065; CHECK-NEXT:    [[V3:%.*]] = or i1 [[V1]], [[V2]]66; CHECK-NEXT:    ret i1 [[V3]]67;68  %v1 = fcmp ogt double %v0, 1.000000e-0269  %v2 = fcmp olt double %v0, 1.990000e+0070  %v3 = or i1 %v1, %v271  ret i1 %v372}73 74define i1 @or_fcmp_redundant_and1(double %v0) {75; CHECK-LABEL: @or_fcmp_redundant_and1(76; CHECK-NEXT:    [[V1:%.*]] = fcmp olt double [[V0:%.*]], 1.000000e-0277; CHECK-NEXT:    ret i1 [[V1]]78;79  %v1 = fcmp olt double %v0, 1.000000e-0280  %v2 = fcmp olt double %v0, 1.990000e+0081  %v3 = and i1 %v1, %v282  ret i1 %v383}84 85define i1 @or_fcmp_redundant_and2(double %v0) {86; CHECK-LABEL: @or_fcmp_redundant_and2(87; CHECK-NEXT:    [[V2:%.*]] = fcmp olt double [[V0:%.*]], 1.990000e+0088; CHECK-NEXT:    ret i1 [[V2]]89;90  %v1 = fcmp olt double %v0, 2.300000e+0091  %v2 = fcmp olt double %v0, 1.990000e+0092  %v3 = and i1 %v1, %v293  ret i1 %v394}95 96define i1 @or_fcmp_redundant_and3(double %v0) {97; CHECK-LABEL: @or_fcmp_redundant_and3(98; CHECK-NEXT:    [[V2:%.*]] = fcmp ogt double [[V0:%.*]], 1.990000e+0099; CHECK-NEXT:    ret i1 [[V2]]100;101  %v1 = fcmp ogt double %v0, 1.000000e-02102  %v2 = fcmp ogt double %v0, 1.990000e+00103  %v3 = and i1 %v1, %v2104  ret i1 %v3105}106 107define i1 @or_fcmp_redundant_and4(double %v0) {108; CHECK-LABEL: @or_fcmp_redundant_and4(109; CHECK-NEXT:    [[V1:%.*]] = fcmp ogt double [[V0:%.*]], 2.300000e+00110; CHECK-NEXT:    ret i1 [[V1]]111;112  %v1 = fcmp ogt double %v0, 2.300000e+00113  %v2 = fcmp ogt double %v0, 1.990000e+00114  %v3 = and i1 %v1, %v2115  ret i1 %v3116}117 118define i1 @or_fcmp_redundant_and_neg1(double %v0) {119; CHECK-LABEL: @or_fcmp_redundant_and_neg1(120; CHECK-NEXT:    ret i1 false121;122  %v1 = fcmp olt double %v0, 1.000000e-02123  %v2 = fcmp ogt double %v0, 1.990000e+00124  %v3 = and i1 %v1, %v2125  ret i1 %v3126}127 128define i1 @or_fcmp_redundant_and_neg2(double %v0) {129; CHECK-LABEL: @or_fcmp_redundant_and_neg2(130; CHECK-NEXT:    [[V1:%.*]] = fcmp ogt double [[V0:%.*]], 1.000000e-02131; CHECK-NEXT:    [[V2:%.*]] = fcmp olt double [[V0]], 1.990000e+00132; CHECK-NEXT:    [[V3:%.*]] = and i1 [[V1]], [[V2]]133; CHECK-NEXT:    ret i1 [[V3]]134;135  %v1 = fcmp ogt double %v0, 1.000000e-02136  %v2 = fcmp olt double %v0, 1.990000e+00137  %v3 = and i1 %v1, %v2138  ret i1 %v3139}140 141define i1 @or_fcmp_redundant_select_or1(double %v0) {142; CHECK-LABEL: @or_fcmp_redundant_select_or1(143; CHECK-NEXT:    [[V1:%.*]] = fcmp olt double [[V0:%.*]], 1.000000e-02144; CHECK-NEXT:    ret i1 [[V1]]145;146  %v1 = fcmp olt double %v0, 1.000000e-02147  %v2 = fcmp olt double %v0, 1.990000e+00148  %v3 = select i1 %v1, i1 %v2, i1 false149  ret i1 %v3150}151 152define i1 @or_fcmp_redundant_select_or2(double %v0) {153; CHECK-LABEL: @or_fcmp_redundant_select_or2(154; CHECK-NEXT:    [[V2:%.*]] = fcmp ogt double [[V0:%.*]], 1.990000e+00155; CHECK-NEXT:    ret i1 [[V2]]156;157  %v1 = fcmp ogt double %v0, 1.000000e-02158  %v2 = fcmp ogt double %v0, 1.990000e+00159  %v3 = select i1 %v1, i1 %v2, i1 false160  ret i1 %v3161}162 163define i1 @or_fcmp_redundant_select_and1(double %v0) {164; CHECK-LABEL: @or_fcmp_redundant_select_and1(165; CHECK-NEXT:    [[V2:%.*]] = fcmp olt double [[V0:%.*]], 1.990000e+00166; CHECK-NEXT:    ret i1 [[V2]]167;168  %v1 = fcmp olt double %v0, 1.000000e-02169  %v2 = fcmp olt double %v0, 1.990000e+00170  %v3 = select i1 %v1, i1 true, i1 %v2171  ret i1 %v3172}173 174define i1 @or_fcmp_redundant_select_and2(double %v0) {175; CHECK-LABEL: @or_fcmp_redundant_select_and2(176; CHECK-NEXT:    [[V1:%.*]] = fcmp ogt double [[V0:%.*]], 1.000000e-02177; CHECK-NEXT:    ret i1 [[V1]]178;179  %v1 = fcmp ogt double %v0, 1.000000e-02180  %v2 = fcmp ogt double %v0, 1.990000e+00181  %v3 = select i1 %v1, i1 true, i1 %v2182  ret i1 %v3183}184