mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-19 15:13:49 -04:00
3044368de2
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353867 91177308-0d34-0410-b5e6-96231b3b80d8
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
|
|
}
|