; This test makes sure that these instructions are properly constant propagated.

; RUN: opt < %s -ipsccp -S | not grep load
; RUN: opt < %s -ipsccp -S | not grep fdiv

@X = constant i212 42
@Y = constant [2 x { i212, float }] [ { i212, float } { i212 12, float 1.0 }, 
                                     { i212, float } { i212 37, float 0x3FF3B2FEC0000000 } ]
define i212 @test1() {
	%B = load i212* @X
	ret i212 %B
}

define internal float @test2() {
	%A = getelementptr [2 x { i212, float}]* @Y, i32 0, i32 1, i32 1
	%B = load float* %A
	ret float %B
}

define internal i212 @test3() {
	%A = getelementptr [2 x { i212, float}]* @Y, i32 0, i32 0, i32 0
	%B = load i212* %A
	ret i212 %B
}

define float @All()
{
   %A = call float @test2()
   %B = call i212 @test3()
   %C = mul i212 %B, -1234567
   %D = sitofp i212 %C to float
   %E = fdiv float %A, %D
   ret float %E
}


