blob: 942465c0660092839547214a9ebe5d524bf02e9f [file] [log] [blame]
Ulrich Weigand9e3577f2013-05-06 16:17:29 +00001; Test loads of negative floating-point zero.
2;
3; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
4
5; Test f32.
6define float @f1() {
Stephen Lind24ab202013-07-14 06:24:09 +00007; CHECK-LABEL: f1:
Ulrich Weigand9e3577f2013-05-06 16:17:29 +00008; CHECK: lzer [[REGISTER:%f[0-5]+]]
Jonas Paulsson12629322015-10-01 18:12:28 +00009; CHECK: lcdfr %f0, [[REGISTER]]
Ulrich Weigand9e3577f2013-05-06 16:17:29 +000010; CHECK: br %r14
11 ret float -0.0
12}
13
14; Test f64.
15define double @f2() {
Stephen Lind24ab202013-07-14 06:24:09 +000016; CHECK-LABEL: f2:
Ulrich Weigand9e3577f2013-05-06 16:17:29 +000017; CHECK: lzdr [[REGISTER:%f[0-5]+]]
Jonas Paulsson12629322015-10-01 18:12:28 +000018; CHECK: lcdfr %f0, [[REGISTER]]
Ulrich Weigand9e3577f2013-05-06 16:17:29 +000019; CHECK: br %r14
20 ret double -0.0
21}
22
23; Test f128.
24define void @f3(fp128 *%x) {
Stephen Lind24ab202013-07-14 06:24:09 +000025; CHECK-LABEL: f3:
Ulrich Weigand9e3577f2013-05-06 16:17:29 +000026; CHECK: lzxr [[REGISTER:%f[0-5]+]]
27; CHECK: lcxbr %f0, [[REGISTER]]
28; CHECK: br %r14
29 store fp128 0xL00000000000000008000000000000000, fp128 *%x
30 ret void
31}