OLD | NEW |
1 ; This tries to be a comprehensive test of f32 and f64 arith operations. | 1 ; This tries to be a comprehensive test of f32 and f64 arith operations. |
2 ; The CHECK lines are only checking for basic instruction patterns | 2 ; The CHECK lines are only checking for basic instruction patterns |
3 ; that should be present regardless of the optimization level, so | 3 ; that should be present regardless of the optimization level, so |
4 ; there are no special OPTM1 match lines. | 4 ; there are no special OPTM1 match lines. |
5 | 5 |
6 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 6 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
7 ; RUN: --target x8632 -i %s --args -O2 \ | 7 ; RUN: --target x8632 -i %s --args -O2 \ |
8 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 8 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
9 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 9 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
10 ; RUN: --target x8632 -i %s --args -Om1 \ | 10 ; RUN: --target x8632 -i %s --args -Om1 \ |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 ; ARM32: vdiv.f64 d{{[0-9]+}}, d | 110 ; ARM32: vdiv.f64 d{{[0-9]+}}, d |
111 | 111 |
112 define internal float @remFloat(float %a, float %b) { | 112 define internal float @remFloat(float %a, float %b) { |
113 entry: | 113 entry: |
114 %div = frem float %a, %b | 114 %div = frem float %a, %b |
115 ret float %div | 115 ret float %div |
116 } | 116 } |
117 ; CHECK-LABEL: remFloat | 117 ; CHECK-LABEL: remFloat |
118 ; CHECK: call {{.*}} R_{{.*}} fmodf | 118 ; CHECK: call {{.*}} R_{{.*}} fmodf |
119 ; ARM32-LABEL: remFloat | 119 ; ARM32-LABEL: remFloat |
120 ; ARM32: bl {{.*}} fmodf | 120 ; ARM32: movw {{.+}} fmodf |
| 121 ; ARM32: movt |
| 122 ; ARM32: blx |
121 | 123 |
122 define internal double @remDouble(double %a, double %b) { | 124 define internal double @remDouble(double %a, double %b) { |
123 entry: | 125 entry: |
124 %div = frem double %a, %b | 126 %div = frem double %a, %b |
125 ret double %div | 127 ret double %div |
126 } | 128 } |
127 ; CHECK-LABEL: remDouble | 129 ; CHECK-LABEL: remDouble |
128 ; CHECK: call {{.*}} R_{{.*}} fmod | 130 ; CHECK: call {{.*}} R_{{.*}} fmod |
129 ; ARM32-LABEL: remDouble | 131 ; ARM32-LABEL: remDouble |
130 ; ARM32: bl {{.*}} fmod | 132 ; ARM32: movw {{.+}} fmod |
| 133 ; ARM32: movt |
| 134 ; ARM32: blx |
OLD | NEW |