mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-12 22:26:14 +00:00
[FastISel][AArch64] Extend floating-point materialization test.
This adds the missing test that I promised for r215753 to test the materialization of the floating-point value +0.0. Related to <rdar://problem/18027157>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216019 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6825609779
commit
1d58f989d4
@ -1,27 +1,41 @@
|
||||
; RUN: llc < %s -O0 -fast-isel-abort -mtriple=arm64-apple-darwin | FileCheck %s
|
||||
; RUN: llc -O0 -fast-isel-abort -mtriple=arm64-apple-darwin < %s | FileCheck %s
|
||||
|
||||
; Materialize using fmov
|
||||
define void @float_(float* %value) {
|
||||
; CHECK: @float_
|
||||
; CHECK: fmov s0, #1.25000000
|
||||
store float 1.250000e+00, float* %value, align 4
|
||||
ret void
|
||||
define float @fmov_float1() {
|
||||
; CHECK-LABEL: fmov_float1
|
||||
; CHECK: fmov s0, #1.25000000
|
||||
ret float 1.250000e+00
|
||||
}
|
||||
|
||||
define void @double_(double* %value) {
|
||||
; CHECK: @double_
|
||||
; CHECK: fmov d0, #1.25000000
|
||||
store double 1.250000e+00, double* %value, align 8
|
||||
ret void
|
||||
define float @fmov_float2() {
|
||||
; CHECK-LABEL: fmov_float2
|
||||
; CHECK: fmov s0, wzr
|
||||
ret float 0.0e+00
|
||||
}
|
||||
|
||||
define double @fmov_double1() {
|
||||
; CHECK-LABEL: fmov_double1
|
||||
; CHECK: fmov d0, #1.25000000
|
||||
ret double 1.250000e+00
|
||||
}
|
||||
|
||||
define double @fmov_double2() {
|
||||
; CHECK-LABEL: fmov_double2
|
||||
; CHECK: fmov d0, xzr
|
||||
ret double 0.0e+00
|
||||
}
|
||||
|
||||
; Materialize from constant pool
|
||||
define float @float_cp() {
|
||||
; CHECK: @float_cp
|
||||
define float @cp_float() {
|
||||
; CHECK-LABEL: cp_float
|
||||
; CHECK: adrp [[REG:x[0-9]+]], {{lCPI[0-9]+_0}}@PAGE
|
||||
; CHECK-NEXT: ldr s0, {{\[}}[[REG]], {{lCPI[0-9]+_0}}@PAGEOFF{{\]}}
|
||||
ret float 0x400921FB60000000
|
||||
}
|
||||
|
||||
define double @double_cp() {
|
||||
; CHECK: @double_cp
|
||||
define double @cp_double() {
|
||||
; CHECK-LABEL: cp_double
|
||||
; CHECK: adrp [[REG:x[0-9]+]], {{lCPI[0-9]+_0}}@PAGE
|
||||
; CHECK-NEXT: ldr d0, {{\[}}[[REG]], {{lCPI[0-9]+_0}}@PAGEOFF{{\]}}
|
||||
ret double 0x400921FB54442D18
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user