diff --git a/test/CodeGen/PowerPC/and_sra.ll b/test/CodeGen/PowerPC/and_sra.ll index 1f5abf3722f..6b315e1ed37 100644 --- a/test/CodeGen/PowerPC/and_sra.ll +++ b/test/CodeGen/PowerPC/and_sra.ll @@ -16,3 +16,11 @@ int %test2(uint %mode.0.i.0) { %tmp.83 = and int %tmp.80, %tmp.82 ; [#uses=1] ret int %tmp.83 } + +uint %test3(int %specbits.6.1) { + %tmp.2540 = shr int %specbits.6.1, ubyte 11 ; [#uses=1] + %tmp.2541 = cast int %tmp.2540 to uint ; [#uses=1] + %tmp.2542 = shl uint %tmp.2541, ubyte 13 ; [#uses=1] + %tmp.2543 = and uint %tmp.2542, 8192 ; [#uses=1] + ret uint %tmp.2543 +} diff --git a/test/CodeGen/PowerPC/shl_sext.ll b/test/CodeGen/PowerPC/shl_sext.ll index 95ec2d29f62..60fcda58f93 100644 --- a/test/CodeGen/PowerPC/shl_sext.ll +++ b/test/CodeGen/PowerPC/shl_sext.ll @@ -7,3 +7,11 @@ int %test(uint %mode.0.i.0) { %tmp.81 = shl int %tmp.80, ubyte 24 ; [#uses=1] ret int %tmp.81 } + +int %test2(uint %mode.0.i.0) { + %tmp.79 = cast uint %mode.0.i.0 to sbyte ; [#uses=1] + %tmp.80 = cast sbyte %tmp.79 to int ; [#uses=1] + %tmp.81 = shl int %tmp.80, ubyte 16 ; [#uses=1] + %tmp.82 = and int %tmp.81, 16711680 + ret int %tmp.82 +}