A minor change for an obvous problem caused by r188451:

def imm0_63 : Operand<i32>, ImmLeaf<i32, [{ return Imm >= 0 && Imm < 63;}]>{
As it seems Imm <63 should be Imm <= 63. ImmLeaf is used in pattern match, but there is already a function check the shift amount range, so just remove ImmLeaf. Also add a test to check 63.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188911 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Hao Liu 2013-08-21 17:47:53 +00:00
parent 159b6f1775
commit 52d35c2460
2 changed files with 3 additions and 3 deletions

View File

@ -1414,7 +1414,7 @@ def FMOVvi_2D : NeonI_FMOV_impl<".2d", VPR128, v2f64, fmov64_operand, 0b1, 0b1>;
// Vector Shift (Immediate)
def imm0_63 : Operand<i32>, ImmLeaf<i32, [{ return Imm >= 0 && Imm < 63; }]> {
def imm0_63 : Operand<i32> {
let ParserMatchClass = uimm6_asmoperand;
}

View File

@ -181,8 +181,8 @@ define <4 x i32> @test_shl_v4i32(<4 x i32> %a) {
define <2 x i64> @test_shl_v2i64(<2 x i64> %a) {
; CHECK: test_shl_v2i64:
; CHECK: shl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3
%tmp = shl <2 x i64> %a, <i64 3, i64 3>
; CHECK: shl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #63
%tmp = shl <2 x i64> %a, <i64 63, i64 63>
ret <2 x i64> %tmp
}