Home | History | Annotate | Download | only in SystemZ
      1 ; Test loads of negative floating-point zero.
      2 ;
      3 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
      4 
      5 ; Test f32.
      6 define 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.
     15 define 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.
     24 define 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