blob: fd7585bdb9320697526742c151fddbe75fc92fdc [file] [log] [blame]
Chris Lattner597f22f2005-04-02 05:35:00 +00001; Make sure this testcase codegens to the fabs instruction, not a call to fabsf
Dale Johannesenc557a9c2007-09-23 14:58:14 +00002; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=-sse2,-sse3,-sse | \
Dan Gohman28beeea2007-08-15 13:36:28 +00003; RUN: grep fabs\$ | count 1
Reid Spencerd3b1f6d2007-04-15 22:20:47 +00004; RUN: llvm-upgrade < %s | llvm-as | \
Dale Johannesenc557a9c2007-09-23 14:58:14 +00005; RUN: llc -march=x86 -mattr=-sse,-sse2,-sse3 -enable-unsafe-fp-math | \
Dan Gohman28beeea2007-08-15 13:36:28 +00006; RUN: grep fabs\$ | count 2
Chris Lattner597f22f2005-04-02 05:35:00 +00007
Evan Chengbb0a23a2006-08-29 22:01:39 +00008target endian = little
9target pointersize = 32
10
Chris Lattner597f22f2005-04-02 05:35:00 +000011declare float %fabsf(float)
12
Evan Cheng100e78c2006-11-16 23:38:21 +000013float %test1(float %X) {
Chris Lattner597f22f2005-04-02 05:35:00 +000014 %Y = call float %fabsf(float %X)
15 ret float %Y
16}
17
Evan Cheng100e78c2006-11-16 23:38:21 +000018double %test2(double %X) {
Chris Lattner2e6027c2005-04-09 04:55:14 +000019 %Y = setge double %X, -0.0
20 %Z = sub double -0.0, %X
21 %Q = select bool %Y, double %X, double %Z
22 ret double %Q
23}
24