target endian = little
target pointersize = 32

implementation

int %main(int, sbyte**) {
entry:
	br bool false, label %then, label %endif
then:
	br label %endif
endif:
	%x.0 = phi uint [ 4, %entry ], [ 27, %then ]
	%result.0 = phi int [ 32, %then ], [ 0, %entry ]
	ret int 0
}


Simplify testcase a bit more
target endian = little
target pointersize = 32

implementation

int %main() {
entry:
	br label %endif
then:
	br label %endif
endif:
	%x = phi uint [ 4, %entry ], [ 27, %then ]
	%result = phi int [ 32, %then ], [ 0, %entry ]
	ret int 0
}