76 lines
1.1 KiB
LLVM
76 lines
1.1 KiB
LLVM
|
; 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
|
||
|
}
|