; Test loads of FP constants with VGM and VGBM.
;
; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
define double @f1() {
; CHECK-LABEL: f1:
; CHECK: vgmg %v0, 2, 11
ret double 1.0
}
define double @f2() {
; CHECK-LABEL: f2:
; CHECK: vgmg %v0, 1, 1
ret double 2.0
}
define double @f3() {
; CHECK-LABEL: f3:
; CHECK: vgmg %v0, 0, 1
ret double -2.0
}
define double @f4() {
; CHECK-LABEL: f4:
; CHECK: vgmg %v0, 2, 10
ret double 0.5
}
define double @f5() {
; CHECK-LABEL: f5:
; CHECK: vgmg %v0, 2, 9
ret double 0.125
}
define float @f6() {
; CHECK-LABEL: f6:
; CHECK: vgmf %v0, 2, 8
ret float 1.0
}
define float @f7() {
; CHECK-LABEL: f7:
; CHECK: vgmf %v0, 1, 1
ret float 2.0
}
define float @f8() {
; CHECK-LABEL: f8:
; CHECK: vgmf %v0, 0, 1
ret float -2.0
}
define float @f9() {
; CHECK-LABEL: f9:
; CHECK: vgmf %v0, 2, 7
ret float 0.5
}
define float @f10() {
; CHECK-LABEL: f10:
; CHECK: vgmf %v0, 2, 6
ret float 0.125
}
define float @f11() {
; CHECK-LABEL: f11:
; CHECK: vgbm %v0, 61440
ret float 0xFFFFFFFFE0000000
}
define double @f12() {
; CHECK-LABEL: f12:
; CHECK: vgbm %v0, 61440
ret double 0xFFFFFFFF00000000
}