| OLD | NEW |
| 1 ; This is a smoke test for floating-point constant pooling. It tests | 1 ; This is a smoke test for floating-point constant pooling. It tests |
| 2 ; pooling of various float and double constants (including positive | 2 ; pooling of various float and double constants (including positive |
| 3 ; and negative NaN) within functions and across functions. Note that | 3 ; and negative NaN) within functions and across functions. Note that |
| 4 ; in LLVM bitcode, hex constants are used for an FP constant whenever | 4 ; in LLVM bitcode, hex constants are used for an FP constant whenever |
| 5 ; the constant "cannot be represented as a decimal floating point | 5 ; the constant "cannot be represented as a decimal floating point |
| 6 ; number in a reasonable number of digits". See | 6 ; number in a reasonable number of digits". See |
| 7 ; http://llvm.org/docs/LangRef.html#simple-constants . | 7 ; http://llvm.org/docs/LangRef.html#simple-constants . |
| 8 | 8 |
| 9 ; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s | |
| 10 ; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck %s | |
| 11 ; RUN: %llvm2ice -O2 --verbose none %s \ | 9 ; RUN: %llvm2ice -O2 --verbose none %s \ |
| 12 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj | 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 11 ; RUN: | llvm-objdump -s -d -symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 13 ; RUN: %llvm2ice -Om1 --verbose none %s \ | 12 ; RUN: %llvm2ice -Om1 --verbose none %s \ |
| 14 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj | 13 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 14 ; RUN: | llvm-objdump -s -d -symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 15 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s | 15 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s |
| 16 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s | 16 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s |
| 17 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ | 17 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ |
| 18 ; RUN: | FileCheck --check-prefix=DUMP %s | 18 ; RUN: | FileCheck --check-prefix=DUMP %s |
| 19 | 19 |
| 20 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 20 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
| 21 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 21 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
| 22 @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 | 22 @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 |
| 23 @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 | 23 @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 |
| 24 | 24 |
| (...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 return: ; preds = %entry, %sw.bb65, %s
w.bb61, %sw.bb57, %sw.bb53, %sw.bb49, %sw.bb45, %sw.bb41, %sw.bb37, %sw.bb33, %s
w.bb29, %sw.bb25, %sw.bb21, %sw.bb17, %sw.bb13, %sw.bb9, %sw.bb5, %sw.bb1, %sw.b
b | 538 return: ; preds = %entry, %sw.bb65, %s
w.bb61, %sw.bb57, %sw.bb53, %sw.bb49, %sw.bb45, %sw.bb41, %sw.bb37, %sw.bb33, %s
w.bb29, %sw.bb25, %sw.bb21, %sw.bb17, %sw.bb13, %sw.bb9, %sw.bb5, %sw.bb1, %sw.b
b |
| 539 %retval.0 = phi double [ %add68, %sw.bb65 ], [ %add64, %sw.bb61 ], [ %add60, %
sw.bb57 ], [ %add56, %sw.bb53 ], [ %add52, %sw.bb49 ], [ %conv48, %sw.bb45 ], [
%conv44, %sw.bb41 ], [ %conv40, %sw.bb37 ], [ %conv36, %sw.bb33 ], [ %add32, %sw
.bb29 ], [ %add28, %sw.bb25 ], [ %add24, %sw.bb21 ], [ %add20, %sw.bb17 ], [ %ad
d16, %sw.bb13 ], [ %conv12, %sw.bb9 ], [ %conv8, %sw.bb5 ], [ %conv4, %sw.bb1 ],
[ %conv, %sw.bb ], [ 0.000000e+00, %entry ] | 539 %retval.0 = phi double [ %add68, %sw.bb65 ], [ %add64, %sw.bb61 ], [ %add60, %
sw.bb57 ], [ %add56, %sw.bb53 ], [ %add52, %sw.bb49 ], [ %conv48, %sw.bb45 ], [
%conv44, %sw.bb41 ], [ %conv40, %sw.bb37 ], [ %conv36, %sw.bb33 ], [ %add32, %sw
.bb29 ], [ %add28, %sw.bb25 ], [ %add24, %sw.bb21 ], [ %add20, %sw.bb17 ], [ %ad
d16, %sw.bb13 ], [ %conv12, %sw.bb9 ], [ %conv8, %sw.bb5 ], [ %conv4, %sw.bb1 ],
[ %conv, %sw.bb ], [ 0.000000e+00, %entry ] |
| 540 ret double %retval.0 | 540 ret double %retval.0 |
| 541 } | 541 } |
| 542 | 542 |
| 543 ; The FP constant pool entries for each type are dumped in some | 543 ; The FP constant pool entries for each type are dumped in some |
| 544 ; implementation-dependent order. So for the purposes of lit, we just | 544 ; implementation-dependent order. So for the purposes of lit, we just |
| 545 ; pick one value for each type, and make sure it appears exactly once. | 545 ; pick one value for each type, and make sure it appears exactly once. |
| 546 | 546 |
| 547 ; Check for float 0.5 | 547 ; Check for float 0.5 |
| 548 ; CHECK: .long 0x3f000000 | 548 ; CHECK-LABEL: .rodata.cst4 |
| 549 ; CHECK-NOT: .long 0x3f000000 | 549 ; CHECK: 0000003f |
| 550 ; CHECK-NOT: 0000003f |
| 551 |
| 550 ; Check for double 0.5 | 552 ; Check for double 0.5 |
| 551 ; CHECK: .quad 0x3fe0000000000000 | 553 ; CHECK-LABEL: .rodata.cst8 |
| 552 ; CHECK-NOT: .quad 0x3fe0000000000000 | 554 ; CHECK: 00000000 0000e03f |
| 555 ; CHECK-NOT: 00000000 0000e03f |
| 556 ; CHECK-LABEL: .shstrtab |
| 553 | 557 |
| 554 ; ERRORS-NOT: ICE translation error | 558 ; ERRORS-NOT: ICE translation error |
| 555 ; DUMP-NOT: SZ | 559 ; DUMP-NOT: SZ |
| OLD | NEW |