mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
7ed143a4a1
Printing floating point number in decimal is inconvenient for humans. Verbose asm output will print out floating point values in comments, it helps. But in lots of cases, users still need additional work to covert the decimal back to hex or binary to check the bit patterns, especially when there are small precision difference. Hexadecimal form is one of the supported form in LLVM IR, and easier for debugging. This patch try to print all FP constant in hex form instead. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D73566
27 lines
864 B
LLVM
27 lines
864 B
LLVM
; RUN: llc < %s -mcpu=cortex-a8 | FileCheck %s
|
|
target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
|
|
target triple = "thumbv7-apple-ios"
|
|
|
|
; The double in the constant pool is 8-byte aligned, forcing the function
|
|
; alignment.
|
|
; CHECK: .p2align 3
|
|
; CHECK: func
|
|
;
|
|
; Constant pool with 8-byte entry before 4-byte entry:
|
|
; CHECK: .p2align 3
|
|
; CHECK: LCPI
|
|
; CHECK: .long 2370821947
|
|
; CHECK: .long 1080815255
|
|
; CHECK: LCPI
|
|
; CHECK: .long 0x42f6e979
|
|
define void @func(float* nocapture %x, double* nocapture %y) nounwind ssp {
|
|
entry:
|
|
%0 = load float, float* %x, align 4
|
|
%add = fadd float %0, 0x405EDD2F20000000
|
|
store float %add, float* %x, align 4
|
|
%1 = load double, double* %y, align 4
|
|
%add1 = fadd double %1, 2.234560e+02
|
|
store double %add1, double* %y, align 4
|
|
ret void
|
|
}
|