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: %p2i -i %s --args -O2 --verbose none \ | 9 ; RUN: %p2i -i %s --args -O2 --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 -s -d -symbolize -x86-asm-syntax=intel - | FileCheck %s | 11 ; RUN: | llvm-objdump -s -d -symbolize -x86-asm-syntax=intel - | FileCheck %s |
12 ; RUN: %p2i -i %s --args -Om1 --verbose none \ | 12 ; RUN: %p2i -i %s --args -Om1 --verbose none \ |
13 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ | 13 ; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
14 ; RUN: | llvm-objdump -s -d -symbolize -x86-asm-syntax=intel - | FileCheck %s | 14 ; RUN: | llvm-objdump -s -d -symbolize -x86-asm-syntax=intel - | FileCheck %s |
15 ; RUN: %p2i -i %s --args --verbose none | FileCheck --check-prefix=ERRORS %s | |
16 ; RUN: %p2i -i %s --insts | %szdiff %s | FileCheck --check-prefix=DUMP %s | |
17 | 15 |
18 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 16 @__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
19 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 | 17 @__fini_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
20 @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 | 18 @__tls_template_start = internal constant [0 x i8] zeroinitializer, align 8 |
21 @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 | 19 @__tls_template_alignment = internal constant [4 x i8] c"\01\00\00\00", align 4 |
22 | 20 |
23 define internal float @FpLookup1(i32 %Arg) { | 21 define internal float @FpLookup1(i32 %Arg) { |
24 entry: | 22 entry: |
25 switch i32 %Arg, label %return [ | 23 switch i32 %Arg, label %return [ |
26 i32 0, label %sw.bb | 24 i32 0, label %sw.bb |
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 ; Check for float 0.5 | 543 ; Check for float 0.5 |
546 ; CHECK-LABEL: .rodata.cst4 | 544 ; CHECK-LABEL: .rodata.cst4 |
547 ; CHECK: 0000003f | 545 ; CHECK: 0000003f |
548 ; CHECK-NOT: 0000003f | 546 ; CHECK-NOT: 0000003f |
549 | 547 |
550 ; Check for double 0.5 | 548 ; Check for double 0.5 |
551 ; CHECK-LABEL: .rodata.cst8 | 549 ; CHECK-LABEL: .rodata.cst8 |
552 ; CHECK: 00000000 0000e03f | 550 ; CHECK: 00000000 0000e03f |
553 ; CHECK-NOT: 00000000 0000e03f | 551 ; CHECK-NOT: 00000000 0000e03f |
554 ; CHECK-LABEL: .shstrtab | 552 ; CHECK-LABEL: .shstrtab |
555 | |
556 ; ERRORS-NOT: ICE translation error | |
557 ; DUMP-NOT: SZ | |
OLD | NEW |