float "test"()
begin
- %tmp = mul float 1.0e100, 1.0e1
+ %tmp = mul float 0x7FF0000000000000, 1.0e1
ret float %tmp
end
define void @foo(<8 x float>* %f, <8 x float>* %g, <4 x i64>* %y)
{
%h = load <8 x float>* %f
- %i = mul <8 x float> %h, <float 1.1, float 3.3, float 4.4, float 5.4, float 0.5, float 0.6, float 0.7, float 0.8>
+ %i = mul <8 x float> %h, <float 0x3FF19999A0000000, float 0x400A666660000000, float 0x40119999A0000000, float 0x40159999A0000000, float 0.5, float 0x3FE3333340000000, float 0x3FE6666660000000, float 0x3FE99999A0000000>
%m = bitcast <8 x float> %i to <4 x i64>
%z = load <4 x i64>* %y
%n = mul <4 x i64> %z, %m
}
int %main(int %argc, sbyte** %argv) {
- %a = call int %test1(float 3.1415926)
+ %a = call int %test1(float 0x400921FB40000000)
%b = call float %test2(int %a)
- %c = call long %test3(double 3.1415926)
+ %c = call long %test3(double 0x400921FB4D12D84A)
%d = call double %test4(long %c)
%e = call double %test5(double 7.0)
%f = call float %test6(float 7.0)
%z1 = add float %x1, %y1 ;; z1 = x1 + y1
%x2 = mul float %x, 0.5 ;; x2
- %y2 = mul float %y, 0.9 ;; y2
+ %y2 = mul float %y, 0x3FECCCCCC0000000 ;; y2
%z2 = add float %x2, %y2 ;; z2 = x2 + y2
%z3 = add float %z1, %z2 ;; z3 = z1 + z2
%ArrayB = alloca %MixedB, uint 3
%I1 = getelementptr %MixedA* %ScalarA, long 0, uint 0
- store float 1.4142, float *%I1
+ store float 0x3FF6A09020000000, float *%I1
%I2 = getelementptr %MixedB* %ScalarB, long 0, uint 1, uint 0
- store float 2.7183, float *%I2
+ store float 0x4005BF1420000000, float *%I2
%fptrA = getelementptr %MixedA* %ArrayA, long 1, uint 0
%fptrB = getelementptr %MixedB* %ArrayB, long 2, uint 1, uint 0
- store float 3.1415, float* %fptrA
+ store float 0x400921CAC0000000, float* %fptrA
store float 5.0, float* %fptrB
;; Test that a sequence of GEPs with constant indices are folded right
%z1 = add float %x1, %y1 ;; z1 = x1 + y1
%x2 = mul float %x, 0.5 ;; x2
- %y2 = mul float %y, 0.9 ;; y2
+ %y2 = mul float %y, 0x3FECCCCCC0000000 ;; y2
%z2 = add float %x2, %y2 ;; z2 = x2 + y2
%z3 = add float %z1, %z2 ;; z3 = z1 + z2
%i = add int %N, 12345678 ; constant has to be loaded
%b = add short 4, 3 ; one of the operands shd be immed
%c = add float %X, 0.0 ; will this be optimzzed?
- %d = add float %X, 3.1415 ; constant has to be loaded
+ %d = add float %X, 0x400921CAC0000000 ; constant has to be loaded
%f = add uint 4294967295, 10 ; result shd be 9 (not in immed fld)
%g = add ushort 20, 65535 ; result shd be 19 (65536 in immed fld)
%j = add ushort 65535, 30 ; result shd be 29 (not in immed fld)
void %test_cst(%f4 *%P, %f4 *%S) {
%p = load %f4* %P
- %R = add %f4 %p, <float 0.1, float 1.0, float 2.0, float 4.5>
+ %R = add %f4 %p, <float 0x3FB99999A0000000, float 1.0, float 2.0, float 4.5>
store %f4 %R, %f4 *%S
ret void
}
void %test_cst(%f4 *%P, %f4 *%S) {
%p = load %f4* %P
- %R = add %f4 %p, <float 0.1, float 1.0, float 2.0, float 4.5>
+ %R = add %f4 %p, <float 0x3FB99999A0000000, float 1.0, float 2.0, float 4.5>
store %f4 %R, %f4 *%S
ret void
}
ret float %c
}
define float @bar(float %a) {
- %b = insertelement <4 x float> <float 3.4, float 4.5, float 0.0, float 9.2>, float %a, i32 3
+ %b = insertelement <4 x float> <float 0x400B333340000000, float 4.5, float 0.0, float 0x4022666660000000>, float %a, i32 3
%c = extractelement <4 x float> %b, i32 2
ret float %c
}
implementation
void %testfloatstore() {
- call void %extfloat(float 1234.4)
- call void %extdouble(double 1234.4123)
- store float 13.0123, float* %G
+ call void %extfloat(float 0x40934999A0000000)
+ call void %extdouble(double 0x409349A631F8A090)
+ store float 0x402A064C20000000, float* %G
ret void
}
; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse | grep movaps
define <4 x float> @foo() {
- ret <4 x float> <float 3.223542354, float 2.3, float 1.2, float 0.1>
+ ret <4 x float> <float 0x4009C9D0A0000000, float 0x4002666660000000, float 0x3FF3333340000000, float 0x3FB99999A0000000>
}
void %test_cst(%f4 *%P, %f4 *%S) {
%p = load %f4* %P
- %R = add %f4 %p, <float 0.1, float 1.0, float 2.0, float 4.5>
+ %R = add %f4 %p, <float 0x3FB99999A0000000, float 1.0, float 2.0, float 4.5>
store %f4 %R, %f4 *%S
ret void
}
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | not grep bitcast
int %test1() {
- ret int bitcast(float 3.7 to int)
+ ret int bitcast(float 0x400D9999A0000000 to int)
}
float %test2() {
}
long %test3() {
- ret long bitcast (double 3.1415926 to long)
+ ret long bitcast (double 0x400921FB4D12D84A to long)
}
double %test4() {
"&^ " = type { int }
"%.*+ foo" = global "&^ " { int 5 }
"0" = global float 0.0 ; This CANNOT be %0
-"\03foo" = global float 0.1 ; Make sure funny char gets round trip
+"\03foo" = global float 0x3FB99999A0000000 ; Make sure funny char gets round trip
%t3 = zext i31 %i to i1280
%t4 = sext i31 %i to i1280
- %t5 = fptoui float 3.14159 to i31
+ %t5 = fptoui float 0x400921FA00000000 to i31
%t6 = uitofp i31 %t5 to double
- %t7 = fptosi double -1234.5678 to i28
+ %t7 = fptosi double 0xC0934A456D5CFAAD to i28
%t8 = sitofp i8 -1 to double
%t9 = uitofp i8 255 to double
; RUN: llvm-as < %s | llvm-dis | not grep bitcast
define i60 @test1() {
- ret i60 fptoui(float 3.7 to i60)
+ ret i60 fptoui(float 0x400D9999A0000000 to i60)
}
define float @test2() {
}
define i64 @test3() {
- ret i64 bitcast (double 3.1415926 to i64)
+ ret i64 bitcast (double 0x400921FB4D12D84A to i64)
}
define double @test4() {
}
define i30 @test5() {
- ret i30 fptoui(float 3.7 to i30)
+ ret i30 fptoui(float 0x400D9999A0000000 to i30)
}
define float @test6() {
}
define i64 @test7() {
- ret i64 bitcast (double 3.1415926 to i64)
+ ret i64 bitcast (double 0x400921FB4D12D84A to i64)
}
define double @test8() {
}
float %test3() {
- %R = rem float 12.45, 123.213
+ %R = rem float 0x4028E66660000000, 0x405ECDA1C0000000
ret float %R
}
double %test4() {
- %R = rem double 312.20213123, 12.3333412
+ %R = rem double 0x4073833BEE07AFF8, 0x4028AAABB2A0D19C
ret double %R
}
%X = constant int 42
%X2 = constant int 47
%Y = constant [2 x { int, float }] [ { int, float } { int 12, float 1.0 },
- { int, float } { int 37, float 1.2312 } ]
+ { int, float } { int 37, float 0x3FF3B2FEC0000000 } ]
%Z = constant [2 x { int, float }] zeroinitializer
int %test1() {
@X = constant i212 42
@Y = constant [2 x { i212, float }] [ { i212, float } { i212 12, float 1.0 },
- { i212, float } { i212 37, float 1.2312 } ]
+ { i212, float } { i212 37, float 0x3FF3B2FEC0000000 } ]
define i212 @test1() {
%B = load i212* @X
ret i212 %B
%X = constant int 42
%Y = constant [2 x { int, float }] [ { int, float } { int 12, float 1.0 },
- { int, float } { int 37, float 1.2312 } ]
+ { int, float } { int 37, float 0x3FF3B2FEC0000000 } ]
int %test1() {
%B = load int* %X
ret int %B