; RUN: opt < %s -scalarrepl -S | not grep shr

; FIXME: I think this test is no longer valid.
; It was working because SROA was aborting when
; no datalayout was supplied
; XFAIL: *


%struct.S = type { i16 }

define zeroext i1 @f(i16 signext  %b)   {
entry:
	%b_addr = alloca i16		; <i16*> [#uses=2]
	%retval = alloca i32		; <i32*> [#uses=2]
	%s = alloca %struct.S		; <%struct.S*> [#uses=2]
	%tmp = alloca i32		; <i32*> [#uses=2]
	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
	store i16 %b, i16* %b_addr
	%tmp1 = getelementptr %struct.S, %struct.S* %s, i32 0, i32 0		; <i16*> [#uses=1]
	%tmp2 = load i16, i16* %b_addr, align 2		; <i16> [#uses=1]
	store i16 %tmp2, i16* %tmp1, align 2
	%tmp3 = getelementptr %struct.S, %struct.S* %s, i32 0, i32 0		; <i16*> [#uses=1]
	%tmp34 = bitcast i16* %tmp3 to [2 x i1]*		; <[2 x i1]*> [#uses=1]
	%tmp5 = getelementptr [2 x i1], [2 x i1]* %tmp34, i32 0, i32 1		; <i1*> [#uses=1]
	%tmp6 = load i1, i1* %tmp5, align 1		; <i1> [#uses=1]
	%tmp67 = zext i1 %tmp6 to i32		; <i32> [#uses=1]
	store i32 %tmp67, i32* %tmp, align 4
	%tmp8 = load i32, i32* %tmp, align 4		; <i32> [#uses=1]
	store i32 %tmp8, i32* %retval, align 4
	br label %return

return:		; preds = %entry
	%retval9 = load i32, i32* %retval		; <i32> [#uses=1]
	%retval910 = trunc i32 %retval9 to i1		; <i1> [#uses=1]
	ret i1 %retval910
}
