| OLD | NEW | 
|---|
| 1 ; Test that for calls returning a floating-point value, the calling | 1 ; Test that for calls returning a floating-point value, the calling | 
| 2 ; ABI with respect to the x87 floating point stack is honored.  In | 2 ; ABI with respect to the x87 floating point stack is honored.  In | 
| 3 ; particular, the top-of-stack must be popped regardless of whether | 3 ; particular, the top-of-stack must be popped regardless of whether | 
| 4 ; its value is used. | 4 ; its value is used. | 
| 5 | 5 | 
| 6 ; RUN: %p2i -i %s --args -O2 --verbose none \ | 6 ; RUN: %p2i -i %s --args -O2 --verbose none \ | 
| 7 ; RUN:   | llvm-mc -triple=i686-none-nacl -filetype=obj \ | 7 ; RUN:   | llvm-mc -triple=i686-none-nacl -filetype=obj \ | 
| 8 ; RUN:   | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 8 ; RUN:   | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 
| 9 ; RUN: %p2i -i %s --args -Om1 --verbose none \ | 9 ; RUN: %p2i -i %s --args -Om1 --verbose none \ | 
| 10 ; RUN:   | llvm-mc -triple=i686-none-nacl -filetype=obj \ | 10 ; RUN:   | llvm-mc -triple=i686-none-nacl -filetype=obj \ | 
| 11 ; RUN:   | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 11 ; RUN:   | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 
| 12 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s |  | 
| 13 ; RUN: %p2i -i %s --insts | %szdiff %s | FileCheck --check-prefix=DUMP %s |  | 
| 14 | 12 | 
| 15 define float @dummy() { | 13 define float @dummy() { | 
| 16 entry: | 14 entry: | 
| 17   ret float 0.000000e+00 | 15   ret float 0.000000e+00 | 
| 18 } | 16 } | 
| 19 ; CHECK-LABEL: dummy | 17 ; CHECK-LABEL: dummy | 
| 20 | 18 | 
| 21 ; The call is ignored, but the top of the FP stack still needs to be | 19 ; The call is ignored, but the top of the FP stack still needs to be | 
| 22 ; popped. | 20 ; popped. | 
| 23 define i32 @ignored_fp_call() { | 21 define i32 @ignored_fp_call() { | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 46 ; re-pushing, in which case the test would need to be changed. | 44 ; re-pushing, in which case the test would need to be changed. | 
| 47 define float @returned_fp_call() { | 45 define float @returned_fp_call() { | 
| 48 entry: | 46 entry: | 
| 49   %fp = call float @dummy() | 47   %fp = call float @dummy() | 
| 50   ret float %fp | 48   ret float %fp | 
| 51 } | 49 } | 
| 52 ; CHECK-LABEL: returned_fp_call | 50 ; CHECK-LABEL: returned_fp_call | 
| 53 ; CHECK: call dummy | 51 ; CHECK: call dummy | 
| 54 ; CHECK: fstp | 52 ; CHECK: fstp | 
| 55 ; CHECK: fld | 53 ; CHECK: fld | 
| 56 |  | 
| 57 ; ERRORS-NOT: ICE translation error |  | 
| 58 ; DUMP-NOT: SZ |  | 
| OLD | NEW | 
|---|