brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · e30791f Raw
204 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4define i32 @ilogbf_const1() {5; CHECK-LABEL: define i32 @ilogbf_const1() {6; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float 7.000000e+00)7; CHECK-NEXT:    ret i32 28;9  %r = call i32 @ilogbf(float 7.000000e+00)10  ret i32 %r11}12 13define i32 @ilogb_const1() {14; CHECK-LABEL: define i32 @ilogb_const1() {15; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double -7.000000e+00)16; CHECK-NEXT:    ret i32 217;18  %r = call i32 @ilogb(double -7.000000e+00)19  ret i32 %r20}21 22define i32 @ilogbf_const2() {23; CHECK-LABEL: define i32 @ilogbf_const2() {24; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float 5.000000e-01)25; CHECK-NEXT:    ret i32 -126;27  %r = call i32 @ilogbf(float 5.000000e-01)28  ret i32 %r29}30 31define i32 @ilogb_const2() {32; CHECK-LABEL: define i32 @ilogb_const2() {33; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double -5.000000e-01)34; CHECK-NEXT:    ret i32 -135;36  %r = call i32 @ilogb(double -5.000000e-01)37  ret i32 %r38}39 40define i32 @ilogbf_zero() {41; CHECK-LABEL: define i32 @ilogbf_zero() {42; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float 0.000000e+00)43; CHECK-NEXT:    ret i32 [[R]]44;45  %r = call i32 @ilogbf(float 0.000000e+00)46  ret i32 %r47}48 49define i32 @ilogb_zero() {50; CHECK-LABEL: define i32 @ilogb_zero() {51; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double 0.000000e+00)52; CHECK-NEXT:    ret i32 [[R]]53;54  %r = call i32 @ilogb(double 0.000000e+00)55  ret i32 %r56}57 58define i32 @ilogbf_neg_zero() {59; CHECK-LABEL: define i32 @ilogbf_neg_zero() {60; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float -0.000000e+00)61; CHECK-NEXT:    ret i32 [[R]]62;63  %r = call i32 @ilogbf(float -0.000000e+00)64  ret i32 %r65}66 67define i32 @ilogb_neg_zero() {68; CHECK-LABEL: define i32 @ilogb_neg_zero() {69; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double -0.000000e+00)70; CHECK-NEXT:    ret i32 [[R]]71;72  %r = call i32 @ilogb(double -0.000000e+00)73  ret i32 %r74}75 76define i32 @ilogbf_inf() {77; CHECK-LABEL: define i32 @ilogbf_inf() {78; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float 0x7FF0000000000000)79; CHECK-NEXT:    ret i32 [[R]]80;81  %r = call i32 @ilogbf(float 0x7FF0000000000000)82  ret i32 %r83}84 85define i32 @ilogb_inf() {86; CHECK-LABEL: define i32 @ilogb_inf() {87; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double 0x7FF0000000000000)88; CHECK-NEXT:    ret i32 [[R]]89;90  %r = call i32 @ilogb(double 0x7FF0000000000000)91  ret i32 %r92}93 94define i32 @ilogbf_nan() {95; CHECK-LABEL: define i32 @ilogbf_nan() {96; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float 0x7FF8000000000000)97; CHECK-NEXT:    ret i32 [[R]]98;99  %r = call i32 @ilogbf(float 0x7FF8000000000000)100  ret i32 %r101}102 103define i32 @ilogb_nan() {104; CHECK-LABEL: define i32 @ilogb_nan() {105; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double 0x7FF8000000000000)106; CHECK-NEXT:    ret i32 [[R]]107;108  %r = call i32 @ilogb(double 0x7FF8000000000000)109  ret i32 %r110}111 112define i32 @ilogbf_zero_readnone() {113; CHECK-LABEL: define i32 @ilogbf_zero_readnone() {114; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float 0.000000e+00) #[[ATTR0:[0-9]+]]115; CHECK-NEXT:    ret i32 [[R]]116;117  %r = call i32 @ilogbf(float 0.000000e+00) readnone118  ret i32 %r119}120 121define i32 @ilogb_zero_readnone() {122; CHECK-LABEL: define i32 @ilogb_zero_readnone() {123; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double 0.000000e+00) #[[ATTR0]]124; CHECK-NEXT:    ret i32 [[R]]125;126  %r = call i32 @ilogb(double 0.000000e+00) readnone127  ret i32 %r128}129 130define i32 @ilogbf_neg_zero_readnone() {131; CHECK-LABEL: define i32 @ilogbf_neg_zero_readnone() {132; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float -0.000000e+00) #[[ATTR0]]133; CHECK-NEXT:    ret i32 [[R]]134;135  %r = call i32 @ilogbf(float -0.000000e+00) readnone136  ret i32 %r137}138 139define i32 @ilogb_neg_zero_readnone() {140; CHECK-LABEL: define i32 @ilogb_neg_zero_readnone() {141; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double -0.000000e+00) #[[ATTR0]]142; CHECK-NEXT:    ret i32 [[R]]143;144  %r = call i32 @ilogb(double -0.000000e+00) readnone145  ret i32 %r146}147 148define i32 @ilogbf_inf_readnone() {149; CHECK-LABEL: define i32 @ilogbf_inf_readnone() {150; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float 0x7FF0000000000000) #[[ATTR0]]151; CHECK-NEXT:    ret i32 [[R]]152;153  %r = call i32 @ilogbf(float 0x7FF0000000000000) readnone154  ret i32 %r155}156 157define i32 @ilogb_inf_readnone() {158; CHECK-LABEL: define i32 @ilogb_inf_readnone() {159; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double 0x7FF0000000000000) #[[ATTR0]]160; CHECK-NEXT:    ret i32 [[R]]161;162  %r = call i32 @ilogb(double 0x7FF0000000000000) readnone163  ret i32 %r164}165 166define i32 @ilogbf_nan_readnone() {167; CHECK-LABEL: define i32 @ilogbf_nan_readnone() {168; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float 0x7FF8000000000000) #[[ATTR0]]169; CHECK-NEXT:    ret i32 [[R]]170;171  %r = call i32 @ilogbf(float 0x7FF8000000000000) readnone172  ret i32 %r173}174 175define i32 @ilogb_nan_readnone() {176; CHECK-LABEL: define i32 @ilogb_nan_readnone() {177; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double 0x7FF8000000000000) #[[ATTR0]]178; CHECK-NEXT:    ret i32 [[R]]179;180  %r = call i32 @ilogb(double 0x7FF8000000000000) readnone181  ret i32 %r182}183 184define i32 @ilogbf_poison() {185; CHECK-LABEL: define i32 @ilogbf_poison() {186; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogbf(float poison)187; CHECK-NEXT:    ret i32 [[R]]188;189  %r = call i32 @ilogbf(float poison)190  ret i32 %r191}192 193define i32 @ilogb_poison() {194; CHECK-LABEL: define i32 @ilogb_poison() {195; CHECK-NEXT:    [[R:%.*]] = call i32 @ilogb(double poison)196; CHECK-NEXT:    ret i32 [[R]]197;198  %r = call i32 @ilogb(double poison)199  ret i32 %r200}201 202declare i32 @ilogbf(float)203declare i32 @ilogb(double)204