xref: /llvm-project/llvm/test/Transforms/InstCombine/2009-07-02-MaskedIntVector.ll (revision acdc419c897f8a9414c7a00c8908ac32312afee2)
1; RUN: opt < %s -passes=instcombine | llvm-dis
2; PR4495
3
4define i32 @test(i64 %test) {
5entry:
6	%0 = bitcast <4 x i32> undef to <16 x i8>		; <<16 x i8>> [#uses=1]
7	%t12 = shufflevector <16 x i8> %0, <16 x i8> zeroinitializer, <16 x i32> <i32 0, i32 16, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>		; <<16 x i8>> [#uses=1]
8	%t11 = bitcast <16 x i8> %t12 to <2 x i64>		; <<2 x i64>> [#uses=1]
9	%t9 = extractelement <2 x i64> %t11, i32 0		; <i64> [#uses=1]
10	%t10 = bitcast i64 %t9 to <2 x i32>		; <<2 x i32>> [#uses=1]
11	%t7 = bitcast i64 %test to <2 x i32>		; <<2 x i32>> [#uses=1]
12	%t6 = xor <2 x i32> %t10, %t7		; <<2 x i32>> [#uses=1]
13	%t1 = extractelement <2 x i32> %t6, i32 0		; <i32> [#uses=1]
14	ret i32 %t1
15}
16