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=allow_dump --need=target_ARM32 --command %p2i --filetype=asm \ |
10 ; RUN: --target arm32 -i %s --args -O2 \ | 10 ; RUN: --target arm32 -i %s --args -O2 \ |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 ; CHECK-OM1: call {{.*}} R_{{.*}} func | 54 ; CHECK-OM1: call {{.*}} R_{{.*}} func |
55 ; CHECK-OM1: ucomisd | 55 ; CHECK-OM1: ucomisd |
56 ; CHECK-OM1: jne | 56 ; CHECK-OM1: jne |
57 ; CHECK-NEXT-OM1: jp | 57 ; CHECK-NEXT-OM1: jp |
58 ; ARM32-LABEL: fcmpEq | 58 ; ARM32-LABEL: fcmpEq |
59 ; ARM32: vcmp.f32 | 59 ; ARM32: vcmp.f32 |
60 ; ARM32: vmrs | 60 ; ARM32: vmrs |
61 ; ARM32-OM1: mov [[R0:r[0-9]+]], #0 | 61 ; ARM32-OM1: mov [[R0:r[0-9]+]], #0 |
62 ; ARM32-OM1: moveq [[R0]], #1 | 62 ; ARM32-OM1: moveq [[R0]], #1 |
63 ; ARM32-O2: bne | 63 ; ARM32-O2: bne |
64 ; ARM32: bl func | 64 ; ARM32: movw [[CALL:r[0-9]]], #:lower16:func |
| 65 ; ARM32: movt [[CALL:r[0-9]]], #:upper16:func |
| 66 ; ARM32: blx [[CALL]] |
65 ; ARM32: vcmp.f64 | 67 ; ARM32: vcmp.f64 |
66 ; ARM32: vmrs | 68 ; ARM32: vmrs |
67 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 | 69 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 |
68 ; ARM32-OM1: moveq [[R1]], #1 | 70 ; ARM32-OM1: moveq [[R1]], #1 |
69 ; ARM32-O2: bne | 71 ; ARM32-O2: bne |
70 | 72 |
71 declare void @func() | 73 declare void @func() |
72 | 74 |
73 define internal void @fcmpNe(float %a, float %b, double %c, double %d) { | 75 define internal void @fcmpNe(float %a, float %b, double %c, double %d) { |
74 entry: | 76 entry: |
(...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
834 ; CHECK-LABEL: selectDoubleVarVar | 836 ; CHECK-LABEL: selectDoubleVarVar |
835 ; CHECK: movsd | 837 ; CHECK: movsd |
836 ; CHECK: ucomisd | 838 ; CHECK: ucomisd |
837 ; CHECK: ja | 839 ; CHECK: ja |
838 ; CHECK: movsd | 840 ; CHECK: movsd |
839 ; ARM32-LABEL: selectDoubleVarVar | 841 ; ARM32-LABEL: selectDoubleVarVar |
840 ; ARM32: vcmp.f64 | 842 ; ARM32: vcmp.f64 |
841 ; ARM32-OM1: vmovne.f64 d{{[0-9]+}} | 843 ; ARM32-OM1: vmovne.f64 d{{[0-9]+}} |
842 ; ARM32-O2: vmovmi.f64 d{{[0-9]+}} | 844 ; ARM32-O2: vmovmi.f64 d{{[0-9]+}} |
843 ; ARM32: bx | 845 ; ARM32: bx |
OLD | NEW |