OLD | NEW |
1 ; This tries to be a comprehensive test of f32 and f64 compare operations. | 1 ; This tries to be a comprehensive test of f32 and f64 compare operations. |
2 | 2 |
3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ | 3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ |
4 ; RUN: -allow-externally-defined-symbols | FileCheck %s | 4 ; RUN: -allow-externally-defined-symbols | FileCheck %s |
5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ | 5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ |
6 ; RUN: -allow-externally-defined-symbols | FileCheck %s \ | 6 ; RUN: -allow-externally-defined-symbols | FileCheck %s \ |
7 ; RUN: --check-prefix=CHECK-OM1 | 7 ; RUN: --check-prefix=CHECK-OM1 |
8 | 8 |
9 ; RUN: %if --need=allow_dump --need=target_ARM32 --command %p2i --filetype=asm \ | 9 ; RUN: %if --need=target_ARM32 --command %p2i --filetype=obj --disassemble \ |
10 ; RUN: --target arm32 -i %s --args -O2 \ | 10 ; RUN: --target arm32 -i %s --args -O2 \ |
11 ; RUN: -allow-externally-defined-symbols \ | 11 ; RUN: -allow-externally-defined-symbols \ |
12 ; RUN: | %if --need=allow_dump --need=target_ARM32 --command FileCheck %s \ | 12 ; RUN: | %if --need=target_ARM32 --command FileCheck %s \ |
13 ; RUN: --check-prefix=ARM32 --check-prefix=ARM32-O2 | 13 ; RUN: --check-prefix=ARM32 --check-prefix=ARM32-O2 |
14 | 14 |
15 ; RUN: %if --need=allow_dump --need=target_ARM32 --command %p2i --filetype=asm \ | 15 ; RUN: %if --need=target_ARM32 --command %p2i --filetype=obj --disassemble \ |
16 ; RUN: --target arm32 -i %s --args -Om1 \ | 16 ; RUN: --target arm32 -i %s --args -Om1 \ |
17 ; RUN: -allow-externally-defined-symbols \ | 17 ; RUN: -allow-externally-defined-symbols \ |
18 ; RUN: | %if --need=allow_dump --need=target_ARM32 --command FileCheck %s \ | 18 ; RUN: | %if --need=target_ARM32 --command FileCheck %s \ |
19 ; RUN: --check-prefix=ARM32 --check-prefix=ARM32-OM1 | 19 ; RUN: --check-prefix=ARM32 --check-prefix=ARM32-OM1 |
20 | 20 |
21 ; RUN: %if --need=allow_dump --need=target_MIPS32 --command %p2i \ | 21 ; RUN: %if --need=allow_dump --need=target_MIPS32 --command %p2i \ |
22 ; RUN: --filetype=asm --target mips32 -i %s --args -Om1 \ | 22 ; RUN: --filetype=asm --target mips32 -i %s --args -Om1 \ |
23 ; RUN: -allow-externally-defined-symbols --skip-unimplemented \ | 23 ; RUN: -allow-externally-defined-symbols --skip-unimplemented \ |
24 ; RUN: | %if --need=allow_dump --need=target_MIPS32 --command FileCheck %s \ | 24 ; RUN: | %if --need=allow_dump --need=target_MIPS32 --command FileCheck %s \ |
25 ; RUN: --check-prefix=MIPS32 | 25 ; RUN: --check-prefix=MIPS32 |
26 | 26 |
27 define internal void @fcmpEq(float %a, float %b, double %c, double %d) { | 27 define internal void @fcmpEq(float %a, float %b, double %c, double %d) { |
28 entry: | 28 entry: |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 ; CHECK-OM1: call {{.*}} R_{{.*}} func | 60 ; CHECK-OM1: call {{.*}} R_{{.*}} func |
61 ; CHECK-OM1: ucomisd | 61 ; CHECK-OM1: ucomisd |
62 ; CHECK-OM1: jne | 62 ; CHECK-OM1: jne |
63 ; CHECK-NEXT-OM1: jp | 63 ; CHECK-NEXT-OM1: jp |
64 ; ARM32-LABEL: fcmpEq | 64 ; ARM32-LABEL: fcmpEq |
65 ; ARM32: vcmp.f32 | 65 ; ARM32: vcmp.f32 |
66 ; ARM32: vmrs | 66 ; ARM32: vmrs |
67 ; ARM32-OM1: mov [[R0:r[0-9]+]], #0 | 67 ; ARM32-OM1: mov [[R0:r[0-9]+]], #0 |
68 ; ARM32-OM1: moveq [[R0]], #1 | 68 ; ARM32-OM1: moveq [[R0]], #1 |
69 ; ARM32-O2: bne | 69 ; ARM32-O2: bne |
70 ; ARM32: bl func | 70 ; ARM32: bl{{.*}}func |
71 ; ARM32: vcmp.f64 | 71 ; ARM32: vcmp.f64 |
72 ; ARM32: vmrs | 72 ; ARM32: vmrs |
73 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 | 73 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 |
74 ; ARM32-OM1: moveq [[R1]], #1 | 74 ; ARM32-OM1: moveq [[R1]], #1 |
75 ; ARM32-O2: bne | 75 ; ARM32-O2: bne |
76 ; MIPS32-LABEL: fcmpEq | 76 ; MIPS32-LABEL: fcmpEq |
77 ; MIPS32-LABEL: .LfcmpEq$entry | 77 ; MIPS32-LABEL: .LfcmpEq$entry |
78 ; MIPS32: c.eq.s | 78 ; MIPS32: c.eq.s |
79 ; MIPS32: addiu [[REG:.*]], $zero, 1 | 79 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
80 ; MIPS32: movf [[REG]], $zero, {{.*}} | 80 ; MIPS32: movf [[REG]], $zero, {{.*}} |
(...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1022 ; CHECK: ucomisd | 1022 ; CHECK: ucomisd |
1023 ; CHECK: ja | 1023 ; CHECK: ja |
1024 ; CHECK: movsd | 1024 ; CHECK: movsd |
1025 ; ARM32-LABEL: selectDoubleVarVar | 1025 ; ARM32-LABEL: selectDoubleVarVar |
1026 ; ARM32: vcmp.f64 | 1026 ; ARM32: vcmp.f64 |
1027 ; ARM32-OM1: vmovne.f64 d{{[0-9]+}} | 1027 ; ARM32-OM1: vmovne.f64 d{{[0-9]+}} |
1028 ; ARM32-O2: vmovmi.f64 d{{[0-9]+}} | 1028 ; ARM32-O2: vmovmi.f64 d{{[0-9]+}} |
1029 ; ARM32: bx | 1029 ; ARM32: bx |
1030 ; MIPS32-LABEL: selectDoubleVarVar | 1030 ; MIPS32-LABEL: selectDoubleVarVar |
1031 ; MIPS32: movn.d {{.*}} | 1031 ; MIPS32: movn.d {{.*}} |
OLD | NEW |