1; 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() {
7; CHECK-LABEL: f1:
8; CHECK: lzer [[REGISTER:%f[0-5]+]]
9; CHECK: lcdfr %f0, [[REGISTER]]
10; CHECK: br %r14
11  ret float -0.0
12}
13
14; Test f64.
15define double @f2() {
16; CHECK-LABEL: f2:
17; CHECK: lzdr [[REGISTER:%f[0-5]+]]
18; CHECK: lcdfr %f0, [[REGISTER]]
19; CHECK: br %r14
20  ret double -0.0
21}
22
23; Test f128.
24define void @f3(fp128 *%x) {
25; CHECK-LABEL: f3:
26; 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}
32