|
2 | 2 | ; |
3 | 3 | ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s |
4 | 4 |
|
5 | | -declare half @copysignh(half, half) readnone |
6 | 5 | declare float @copysignf(float, float) readnone |
7 | 6 | declare double @copysign(double, double) readnone |
8 | 7 | ; FIXME: not really the correct prototype for SystemZ. |
9 | 8 | declare fp128 @copysignl(fp128, fp128) readnone |
10 | 9 |
|
11 | | -; Test f32 copies in which the sign comes from an f16. |
12 | | -define float @f0(float %a, half %bh) { |
13 | | -; CHECK-LABEL: f0: |
14 | | -; CHECK: brasl %r14, __extendhfsf2@PLT |
15 | | -; CHECK: cpsdr %f0, %f0, %f8 |
16 | | -; CHECK: br %r14 |
17 | | - %b = fpext half %bh to float |
18 | | - %res = call float @copysignf(float %a, float %b) readnone |
19 | | - ret float %res |
20 | | -} |
21 | | - |
22 | 10 | ; Test f32 copies in which the sign comes from an f32. |
23 | 11 | define float @f1(float %a, float %b) { |
24 | 12 | ; CHECK-LABEL: f1: |
@@ -138,23 +126,3 @@ define void @f9(ptr %cptr, ptr %aptr, ptr %bptr) { |
138 | 126 | store fp128 %c, ptr %cptr |
139 | 127 | ret void |
140 | 128 | } |
141 | | - |
142 | | -; Test f16 copies in which the sign comes from an f16. |
143 | | -define half @f10(half %a, half %b) { |
144 | | -; CHECK-LABEL: f10: |
145 | | -; CHECK: brasl %r14, copysignh@PLT |
146 | | -; CHECK: br %r14 |
147 | | - %res = call half @copysignh(half %a, half %b) readnone |
148 | | - ret half %res |
149 | | -} |
150 | | - |
151 | | -; Test f16 copies in which the sign comes from an f32. |
152 | | -define half @f11(half %a, float %bf) { |
153 | | -; CHECK-LABEL: f11: |
154 | | -; CHECK: brasl %r14, __truncsfhf2@PLT |
155 | | -; CHECK: brasl %r14, copysignh@PLT |
156 | | -; CHECK: br %r14 |
157 | | - %b = fptrunc float %bf to half |
158 | | - %res = call half @copysignh(half %a, half %b) readnone |
159 | | - ret half %res |
160 | | -} |
0 commit comments