[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / Transforms / InstCombine / constant-fold-libfunc.ll
blob6af77f17f934403c05609aeea1d7fa44404af8f1
1 ; RUN: opt < %s -instcombine -S | FileCheck %s
3 declare double @acos(double) willreturn
5 ; Check that functions without any function attributes are simplified.
7 define double @test_simplify_acos() {
8 ; CHECK-LABEL: @test_simplify_acos
9   %pi = call double @acos(double -1.000000e+00)
10 ; CHECK-NOT: call double @acos
11 ; CHECK: ret double 0x400921FB54442D18
12   ret double %pi
15 ; Check that we don't constant fold builtin functions.
17 define double @test_acos_nobuiltin() {
18 ; CHECK-LABEL: @test_acos_nobuiltin
19   %pi = call double @acos(double -1.000000e+00) nobuiltin 
20 ; CHECK: call double @acos(double -1.000000e+00)
21   ret double %pi
24 ; Check that we don't constant fold strictfp results that require rounding.
26 define double @test_acos_strictfp() strictfp {
27 ; CHECK-LABEL: @test_acos_strictfp
28   %pi = call double @acos(double -1.000000e+00) strictfp 
29 ; CHECK: call double @acos(double -1.000000e+00)
30   ret double %pi