1587f31fbSDavid Green; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 2587f31fbSDavid Green; RUN: opt -S -passes=instcombine < %s | FileCheck %s 3587f31fbSDavid Green 4587f31fbSDavid Greendefine float @test_logf_pos(float %f) { 5587f31fbSDavid Green; CHECK-LABEL: define float @test_logf_pos( 6587f31fbSDavid Green; CHECK-SAME: float [[F:%.*]]) { 7587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 8587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt float [[F]], 0.000000e+00 9587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 10587f31fbSDavid Green; CHECK: [[IF_END]]: 11*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call float @llvm.log.f32(float [[F]]) 12587f31fbSDavid Green; CHECK-NEXT: ret float [[CALL]] 13587f31fbSDavid Green; CHECK: [[RETURN]]: 14587f31fbSDavid Green; CHECK-NEXT: ret float 0.000000e+00 15587f31fbSDavid Green; 16587f31fbSDavid Greenentry: 17587f31fbSDavid Green %isinf = fcmp ole float %f, 0x0000000000000000 18587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 19587f31fbSDavid Green 20587f31fbSDavid Greenif.end: 21587f31fbSDavid Green %call = tail call float @logf(float %f) 22587f31fbSDavid Green ret float %call 23587f31fbSDavid Green 24587f31fbSDavid Greenreturn: 25587f31fbSDavid Green ret float 0.0 26587f31fbSDavid Green} 27587f31fbSDavid Green 28587f31fbSDavid Greendefine double @test_log_pos(double %f) { 29587f31fbSDavid Green; CHECK-LABEL: define double @test_log_pos( 30587f31fbSDavid Green; CHECK-SAME: double [[F:%.*]]) { 31587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 32587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt double [[F]], 0.000000e+00 33587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 34587f31fbSDavid Green; CHECK: [[IF_END]]: 35*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call double @llvm.log.f64(double [[F]]) 36587f31fbSDavid Green; CHECK-NEXT: ret double [[CALL]] 37587f31fbSDavid Green; CHECK: [[RETURN]]: 38587f31fbSDavid Green; CHECK-NEXT: ret double 0.000000e+00 39587f31fbSDavid Green; 40587f31fbSDavid Greenentry: 41587f31fbSDavid Green %isinf = fcmp ole double %f, 0x0000000000000000 42587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 43587f31fbSDavid Green 44587f31fbSDavid Greenif.end: 45587f31fbSDavid Green %call = tail call double @log(double %f) 46587f31fbSDavid Green ret double %call 47587f31fbSDavid Green 48587f31fbSDavid Greenreturn: 49587f31fbSDavid Green ret double 0.0 50587f31fbSDavid Green} 51587f31fbSDavid Green 52587f31fbSDavid Greendefine fp128 @test_logl_pos(fp128 %f) { 53587f31fbSDavid Green; CHECK-LABEL: define fp128 @test_logl_pos( 54587f31fbSDavid Green; CHECK-SAME: fp128 [[F:%.*]]) { 55587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 56587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt fp128 [[F]], 0xL00000000000000000000000000000000 57587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 58587f31fbSDavid Green; CHECK: [[IF_END]]: 59*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call fp128 @llvm.log.f128(fp128 [[F]]) 60587f31fbSDavid Green; CHECK-NEXT: ret fp128 [[CALL]] 61587f31fbSDavid Green; CHECK: [[RETURN]]: 62587f31fbSDavid Green; CHECK-NEXT: ret fp128 0xL00000000000000000000000000000000 63587f31fbSDavid Green; 64587f31fbSDavid Greenentry: 65587f31fbSDavid Green %isinf = fcmp ole fp128 %f, 0xL00000000000000000000000000000000 66587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 67587f31fbSDavid Green 68587f31fbSDavid Greenif.end: 69587f31fbSDavid Green %call = tail call fp128 @logl(fp128 %f) 70587f31fbSDavid Green ret fp128 %call 71587f31fbSDavid Green 72587f31fbSDavid Greenreturn: 73587f31fbSDavid Green ret fp128 0xL00000000000000000000000000000000 74587f31fbSDavid Green} 75587f31fbSDavid Green 76587f31fbSDavid Greendefine float @test_log10f_pos(float %f) { 77587f31fbSDavid Green; CHECK-LABEL: define float @test_log10f_pos( 78587f31fbSDavid Green; CHECK-SAME: float [[F:%.*]]) { 79587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 80587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt float [[F]], 0.000000e+00 81587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 82587f31fbSDavid Green; CHECK: [[IF_END]]: 83*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call float @llvm.log10.f32(float [[F]]) 84587f31fbSDavid Green; CHECK-NEXT: ret float [[CALL]] 85587f31fbSDavid Green; CHECK: [[RETURN]]: 86587f31fbSDavid Green; CHECK-NEXT: ret float 0.000000e+00 87587f31fbSDavid Green; 88587f31fbSDavid Greenentry: 89587f31fbSDavid Green %isinf = fcmp ole float %f, 0x0000000000000000 90587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 91587f31fbSDavid Green 92587f31fbSDavid Greenif.end: 93587f31fbSDavid Green %call = tail call float @log10f(float %f) 94587f31fbSDavid Green ret float %call 95587f31fbSDavid Green 96587f31fbSDavid Greenreturn: 97587f31fbSDavid Green ret float 0.0 98587f31fbSDavid Green} 99587f31fbSDavid Green 100587f31fbSDavid Greendefine double @test_log10_pos(double %f) { 101587f31fbSDavid Green; CHECK-LABEL: define double @test_log10_pos( 102587f31fbSDavid Green; CHECK-SAME: double [[F:%.*]]) { 103587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 104587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt double [[F]], 0.000000e+00 105587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 106587f31fbSDavid Green; CHECK: [[IF_END]]: 107*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call double @llvm.log10.f64(double [[F]]) 108587f31fbSDavid Green; CHECK-NEXT: ret double [[CALL]] 109587f31fbSDavid Green; CHECK: [[RETURN]]: 110587f31fbSDavid Green; CHECK-NEXT: ret double 0.000000e+00 111587f31fbSDavid Green; 112587f31fbSDavid Greenentry: 113587f31fbSDavid Green %isinf = fcmp ole double %f, 0x0000000000000000 114587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 115587f31fbSDavid Green 116587f31fbSDavid Greenif.end: 117587f31fbSDavid Green %call = tail call double @log10(double %f) 118587f31fbSDavid Green ret double %call 119587f31fbSDavid Green 120587f31fbSDavid Greenreturn: 121587f31fbSDavid Green ret double 0.0 122587f31fbSDavid Green} 123587f31fbSDavid Green 124587f31fbSDavid Greendefine fp128 @test_log10l_pos(fp128 %f) { 125587f31fbSDavid Green; CHECK-LABEL: define fp128 @test_log10l_pos( 126587f31fbSDavid Green; CHECK-SAME: fp128 [[F:%.*]]) { 127587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 128587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt fp128 [[F]], 0xL00000000000000000000000000000000 129587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 130587f31fbSDavid Green; CHECK: [[IF_END]]: 131*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call fp128 @llvm.log10.f128(fp128 [[F]]) 132587f31fbSDavid Green; CHECK-NEXT: ret fp128 [[CALL]] 133587f31fbSDavid Green; CHECK: [[RETURN]]: 134587f31fbSDavid Green; CHECK-NEXT: ret fp128 0xL00000000000000000000000000000000 135587f31fbSDavid Green; 136587f31fbSDavid Greenentry: 137587f31fbSDavid Green %isinf = fcmp ole fp128 %f, 0xL00000000000000000000000000000000 138587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 139587f31fbSDavid Green 140587f31fbSDavid Greenif.end: 141587f31fbSDavid Green %call = tail call fp128 @log10l(fp128 %f) 142587f31fbSDavid Green ret fp128 %call 143587f31fbSDavid Green 144587f31fbSDavid Greenreturn: 145587f31fbSDavid Green ret fp128 0xL00000000000000000000000000000000 146587f31fbSDavid Green} 147587f31fbSDavid Green 148587f31fbSDavid Greendefine float @test_log2f_pos(float %f) { 149587f31fbSDavid Green; CHECK-LABEL: define float @test_log2f_pos( 150587f31fbSDavid Green; CHECK-SAME: float [[F:%.*]]) { 151587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 152587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt float [[F]], 0.000000e+00 153587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 154587f31fbSDavid Green; CHECK: [[IF_END]]: 155*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call float @llvm.log2.f32(float [[F]]) 156587f31fbSDavid Green; CHECK-NEXT: ret float [[CALL]] 157587f31fbSDavid Green; CHECK: [[RETURN]]: 158587f31fbSDavid Green; CHECK-NEXT: ret float 0.000000e+00 159587f31fbSDavid Green; 160587f31fbSDavid Greenentry: 161587f31fbSDavid Green %isinf = fcmp ole float %f, 0x0000000000000000 162587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 163587f31fbSDavid Green 164587f31fbSDavid Greenif.end: 165587f31fbSDavid Green %call = tail call float @log2f(float %f) 166587f31fbSDavid Green ret float %call 167587f31fbSDavid Green 168587f31fbSDavid Greenreturn: 169587f31fbSDavid Green ret float 0.0 170587f31fbSDavid Green} 171587f31fbSDavid Green 172587f31fbSDavid Greendefine double @test_log2_pos(double %f) { 173587f31fbSDavid Green; CHECK-LABEL: define double @test_log2_pos( 174587f31fbSDavid Green; CHECK-SAME: double [[F:%.*]]) { 175587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 176587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt double [[F]], 0.000000e+00 177587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 178587f31fbSDavid Green; CHECK: [[IF_END]]: 179*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call double @llvm.log2.f64(double [[F]]) 180587f31fbSDavid Green; CHECK-NEXT: ret double [[CALL]] 181587f31fbSDavid Green; CHECK: [[RETURN]]: 182587f31fbSDavid Green; CHECK-NEXT: ret double 0.000000e+00 183587f31fbSDavid Green; 184587f31fbSDavid Greenentry: 185587f31fbSDavid Green %isinf = fcmp ole double %f, 0x0000000000000000 186587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 187587f31fbSDavid Green 188587f31fbSDavid Greenif.end: 189587f31fbSDavid Green %call = tail call double @log2(double %f) 190587f31fbSDavid Green ret double %call 191587f31fbSDavid Green 192587f31fbSDavid Greenreturn: 193587f31fbSDavid Green ret double 0.0 194587f31fbSDavid Green} 195587f31fbSDavid Green 196587f31fbSDavid Greendefine fp128 @test_log2l_pos(fp128 %f) { 197587f31fbSDavid Green; CHECK-LABEL: define fp128 @test_log2l_pos( 198587f31fbSDavid Green; CHECK-SAME: fp128 [[F:%.*]]) { 199587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 200587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt fp128 [[F]], 0xL00000000000000000000000000000000 201587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 202587f31fbSDavid Green; CHECK: [[IF_END]]: 203*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call fp128 @llvm.log2.f128(fp128 [[F]]) 204587f31fbSDavid Green; CHECK-NEXT: ret fp128 [[CALL]] 205587f31fbSDavid Green; CHECK: [[RETURN]]: 206587f31fbSDavid Green; CHECK-NEXT: ret fp128 0xL00000000000000000000000000000000 207587f31fbSDavid Green; 208587f31fbSDavid Greenentry: 209587f31fbSDavid Green %isinf = fcmp ole fp128 %f, 0xL00000000000000000000000000000000 210587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 211587f31fbSDavid Green 212587f31fbSDavid Greenif.end: 213587f31fbSDavid Green %call = tail call fp128 @log2l(fp128 %f) 214587f31fbSDavid Green ret fp128 %call 215587f31fbSDavid Green 216587f31fbSDavid Greenreturn: 217587f31fbSDavid Green ret fp128 0xL00000000000000000000000000000000 218587f31fbSDavid Green} 219587f31fbSDavid Green 220587f31fbSDavid Green 221587f31fbSDavid Greendefine double @test_logb_pos(double %f) { 222587f31fbSDavid Green; CHECK-LABEL: define double @test_logb_pos( 223587f31fbSDavid Green; CHECK-SAME: double [[F:%.*]]) { 224587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 225587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt double [[F]], 0.000000e+00 226587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 227587f31fbSDavid Green; CHECK: [[IF_END]]: 228587f31fbSDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call double @logb(double [[F]]) 229587f31fbSDavid Green; CHECK-NEXT: ret double [[CALL]] 230587f31fbSDavid Green; CHECK: [[RETURN]]: 231587f31fbSDavid Green; CHECK-NEXT: ret double 0.000000e+00 232587f31fbSDavid Green; 233587f31fbSDavid Greenentry: 234587f31fbSDavid Green %isinf = fcmp ole double %f, 0x0000000000000000 235587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 236587f31fbSDavid Green 237587f31fbSDavid Greenif.end: 238587f31fbSDavid Green %call = tail call double @logb(double %f) 239587f31fbSDavid Green ret double %call 240587f31fbSDavid Green 241587f31fbSDavid Greenreturn: 242587f31fbSDavid Green ret double 0.0 243587f31fbSDavid Green} 244587f31fbSDavid Green 245587f31fbSDavid Greendefine double @test_log1p_pos(double %f) { 246587f31fbSDavid Green; CHECK-LABEL: define double @test_log1p_pos( 247587f31fbSDavid Green; CHECK-SAME: double [[F:%.*]]) { 248587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 249587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt double [[F]], 0.000000e+00 250587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 251587f31fbSDavid Green; CHECK: [[IF_END]]: 252587f31fbSDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call double @log1p(double [[F]]) 253587f31fbSDavid Green; CHECK-NEXT: ret double [[CALL]] 254587f31fbSDavid Green; CHECK: [[RETURN]]: 255587f31fbSDavid Green; CHECK-NEXT: ret double 0.000000e+00 256587f31fbSDavid Green; 257587f31fbSDavid Greenentry: 258587f31fbSDavid Green %isinf = fcmp ole double %f, 0x0000000000000000 259587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 260587f31fbSDavid Green 261587f31fbSDavid Greenif.end: 262587f31fbSDavid Green %call = tail call double @log1p(double %f) 263587f31fbSDavid Green ret double %call 264587f31fbSDavid Green 265587f31fbSDavid Greenreturn: 266587f31fbSDavid Green ret double 0.0 267587f31fbSDavid Green} 268587f31fbSDavid Green 269587f31fbSDavid Greendefine float @metadata(float %f) { 270587f31fbSDavid Green; CHECK-LABEL: define float @metadata( 271587f31fbSDavid Green; CHECK-SAME: float [[F:%.*]]) { 272587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 273587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt float [[F]], 0.000000e+00 274587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 275587f31fbSDavid Green; CHECK: [[IF_END]]: 276*5184d763SDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call float @llvm.log.f32(float [[F]]), !fpmath [[META0:![0-9]+]] 277587f31fbSDavid Green; CHECK-NEXT: ret float [[CALL]] 278587f31fbSDavid Green; CHECK: [[RETURN]]: 279587f31fbSDavid Green; CHECK-NEXT: ret float 0.000000e+00 280587f31fbSDavid Green; 281587f31fbSDavid Greenentry: 282587f31fbSDavid Green %isinf = fcmp ole float %f, 0x0000000000000000 283587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 284587f31fbSDavid Green 285587f31fbSDavid Greenif.end: 286587f31fbSDavid Green %call = tail call float @logf(float %f), !fpmath !0 287587f31fbSDavid Green ret float %call 288587f31fbSDavid Green 289587f31fbSDavid Greenreturn: 290587f31fbSDavid Green ret float 0.0 291587f31fbSDavid Green} 292587f31fbSDavid Green!0 = !{ float 2.5 } 293587f31fbSDavid Green 294587f31fbSDavid Greendefine float @test_logf_pos_denormalpreserve(float %f) "denormal-fp-math"="preserve-sign,preserve-sign" { 295587f31fbSDavid Green; CHECK-LABEL: define float @test_logf_pos_denormalpreserve( 296587f31fbSDavid Green; CHECK-SAME: float [[F:%.*]]) #[[ATTR0:[0-9]+]] { 297587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 298587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt float [[F]], 0.000000e+00 299587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 300587f31fbSDavid Green; CHECK: [[IF_END]]: 301587f31fbSDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call float @logf(float [[F]]) 302587f31fbSDavid Green; CHECK-NEXT: ret float [[CALL]] 303587f31fbSDavid Green; CHECK: [[RETURN]]: 304587f31fbSDavid Green; CHECK-NEXT: ret float 0.000000e+00 305587f31fbSDavid Green; 306587f31fbSDavid Greenentry: 307587f31fbSDavid Green %isinf = fcmp ole float %f, 0x0000000000000000 308587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 309587f31fbSDavid Green 310587f31fbSDavid Greenif.end: 311587f31fbSDavid Green %call = tail call float @logf(float %f) 312587f31fbSDavid Green ret float %call 313587f31fbSDavid Green 314587f31fbSDavid Greenreturn: 315587f31fbSDavid Green ret float 0.0 316587f31fbSDavid Green} 317587f31fbSDavid Green 318587f31fbSDavid Greendefine float @test_logf_pos_denormaldynamic(float %f) "denormal-fp-math"="dynamic,dynamic" { 319587f31fbSDavid Green; CHECK-LABEL: define float @test_logf_pos_denormaldynamic( 320587f31fbSDavid Green; CHECK-SAME: float [[F:%.*]]) #[[ATTR1:[0-9]+]] { 321587f31fbSDavid Green; CHECK-NEXT: [[ENTRY:.*:]] 322587f31fbSDavid Green; CHECK-NEXT: [[ISINF:%.*]] = fcmp ugt float [[F]], 0.000000e+00 323587f31fbSDavid Green; CHECK-NEXT: br i1 [[ISINF]], label %[[IF_END:.*]], label %[[RETURN:.*]] 324587f31fbSDavid Green; CHECK: [[IF_END]]: 325587f31fbSDavid Green; CHECK-NEXT: [[CALL:%.*]] = tail call float @logf(float [[F]]) 326587f31fbSDavid Green; CHECK-NEXT: ret float [[CALL]] 327587f31fbSDavid Green; CHECK: [[RETURN]]: 328587f31fbSDavid Green; CHECK-NEXT: ret float 0.000000e+00 329587f31fbSDavid Green; 330587f31fbSDavid Greenentry: 331587f31fbSDavid Green %isinf = fcmp ole float %f, 0x0000000000000000 332587f31fbSDavid Green br i1 %isinf, label %return, label %if.end 333587f31fbSDavid Green 334587f31fbSDavid Greenif.end: 335587f31fbSDavid Green %call = tail call float @logf(float %f) 336587f31fbSDavid Green ret float %call 337587f31fbSDavid Green 338587f31fbSDavid Greenreturn: 339587f31fbSDavid Green ret float 0.0 340587f31fbSDavid Green} 341587f31fbSDavid Green 342587f31fbSDavid Greendeclare double @log(double) 343587f31fbSDavid Greendeclare float @logf(float) 344587f31fbSDavid Greendeclare fp128 @logl(fp128) 345587f31fbSDavid Greendeclare double @log10(double) 346587f31fbSDavid Greendeclare float @log10f(float) 347587f31fbSDavid Greendeclare fp128 @log10l(fp128) 348587f31fbSDavid Greendeclare double @log2(double) 349587f31fbSDavid Greendeclare float @log2f(float) 350587f31fbSDavid Greendeclare fp128 @log2l(fp128) 351587f31fbSDavid Greendeclare double @logb(double) 352587f31fbSDavid Greendeclare double @log1p(double) 353587f31fbSDavid Green;. 354587f31fbSDavid Green; CHECK: [[META0]] = !{float 2.500000e+00} 355587f31fbSDavid Green;. 356