Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/Transforms/DCE/calls-errno.ll
Show First 20 Lines • Show All 70 Lines • ▼ Show 20 Lines | |||||
; cos(inf) is a domain error | ; cos(inf) is a domain error | ||||
; CHECK-NEXT: %cos2 = call double @cos(double 0x7FF0000000000000) | ; CHECK-NEXT: %cos2 = call double @cos(double 0x7FF0000000000000) | ||||
%cos2 = call double @cos(double 0x7FF0000000000000) | %cos2 = call double @cos(double 0x7FF0000000000000) | ||||
; cos(0) nobuiltin may have side effects | ; cos(0) nobuiltin may have side effects | ||||
; CHECK-NEXT: %cos3 = call double @cos(double 0.000000e+00) | ; CHECK-NEXT: %cos3 = call double @cos(double 0.000000e+00) | ||||
%cos3 = call double @cos(double 0.000000e+00) nobuiltin | %cos3 = call double @cos(double 0.000000e+00) nobuiltin | ||||
; cos(1) strictfp sets FP status flags | |||||
; CHECK-NEXT: %cos4 = call double @cos(double 1.000000e+00) | |||||
%cos4 = call double @cos(double 1.000000e+00) strictfp | |||||
; pow(0, 1) is 0 | ; pow(0, 1) is 0 | ||||
%pow1 = call double @pow(double 0x7FF0000000000000, double 1.000000e+00) | %pow1 = call double @pow(double 0x7FF0000000000000, double 1.000000e+00) | ||||
; pow(0, -1) is a pole error | ; pow(0, -1) is a pole error | ||||
; FIXME: It fails on mingw host. Suppress checking. | ; FIXME: It fails on mingw host. Suppress checking. | ||||
; %pow2 = call double @pow(double 0.000000e+00, double -1.000000e+00) | ; %pow2 = call double @pow(double 0.000000e+00, double -1.000000e+00) | ||||
; fmod(inf, nan) is nan | ; fmod(inf, nan) is nan | ||||
%fmod1 = call double @fmod(double 0x7FF0000000000000, double 0x7FF0000000000001) | %fmod1 = call double @fmod(double 0x7FF0000000000000, double 0x7FF0000000000001) | ||||
; fmod(inf, 1) is a domain error | ; fmod(inf, 1) is a domain error | ||||
; CHECK-NEXT: %fmod2 = call double @fmod(double 0x7FF0000000000000, double 1.000000e+00) | ; CHECK-NEXT: %fmod2 = call double @fmod(double 0x7FF0000000000000, double 1.000000e+00) | ||||
%fmod2 = call double @fmod(double 0x7FF0000000000000, double 1.000000e+00) | %fmod2 = call double @fmod(double 0x7FF0000000000000, double 1.000000e+00) | ||||
; CHECK-NEXT: ret void | ; CHECK-NEXT: ret void | ||||
ret void | ret void | ||||
} | } | ||||
define void @Tstrict() strictfp { | |||||
entry: | |||||
; CHECK-LABEL: @Tstrict( | |||||
; CHECK-NEXT: entry: | |||||
; cos(1) strictfp sets FP status flags | |||||
; CHECK-NEXT: %cos4 = call double @cos(double 1.000000e+00) | |||||
%cos4 = call double @cos(double 1.000000e+00) strictfp | |||||
; CHECK-NEXT: ret void | |||||
ret void | |||||
} |