mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 13:11:39 +01:00
533cb8af78
isFPImmLegal() has been extended to recognize certain FP immediates that can be built with VGM (Vector Generate Mask). These scalar FP immediates (that were previously loaded from the constant pool) are now selected as VGMF/VGMG in Select(). Review: Ulrich Weigand https://reviews.llvm.org/D58003 llvm-svn: 353867
64 lines
957 B
LLVM
64 lines
957 B
LLVM
; Test loads of FP constants with VGM.
|
|
;
|
|
; 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
|
|
}
|