blob: 416f0c0b83a1b67969e586cf273a51931a7eed70 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
; If LLVM is built in Release mode with a buggy gcc under x86-32, it
; may transform 64-bit constants with a signaling NaN bit pattern into
; a quiet NaN bit pattern. See
; http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58416
; RUN: llc -march=x86-64 < %s | FileCheck %s
define i32 @main() #0 {
entry:
%retval = alloca i32, align 4
%tmp = alloca i64, align 8
store i32 0, i32* %retval
; -4503599627370495 == 0xfff0000000000001
store i64 -4503599627370495, i64* %tmp, align 8
%0 = load i64* %tmp, align 8
call void @Consume(i64 %0)
ret i32 0
}
; CHECK: main:
; make sure 0xfff0000000000001 didn't change to 0xfff8000000000001
; CHECK: 0xFFF00000
; CHECK-NOT: 0xFFF80000
declare void @Consume(i64) #1
|