forked from OSchip/llvm-project
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. llvm-svn: 188911
This commit is contained in:
parent
4396480358
commit
546bcd2f50
|
@ -1414,7 +1414,7 @@ def FMOVvi_2D : NeonI_FMOV_impl<".2d", VPR128, v2f64, fmov64_operand, 0b1, 0b1>;
|
||||||
|
|
||||||
// Vector Shift (Immediate)
|
// Vector Shift (Immediate)
|
||||||
|
|
||||||
def imm0_63 : Operand<i32>, ImmLeaf<i32, [{ return Imm >= 0 && Imm < 63; }]> {
|
def imm0_63 : Operand<i32> {
|
||||||
let ParserMatchClass = uimm6_asmoperand;
|
let ParserMatchClass = uimm6_asmoperand;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
define <2 x i64> @test_shl_v2i64(<2 x i64> %a) {
|
||||||
; CHECK: test_shl_v2i64:
|
; CHECK: test_shl_v2i64:
|
||||||
; CHECK: shl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3
|
; CHECK: shl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #63
|
||||||
%tmp = shl <2 x i64> %a, <i64 3, i64 3>
|
%tmp = shl <2 x i64> %a, <i64 63, i64 63>
|
||||||
ret <2 x i64> %tmp
|
ret <2 x i64> %tmp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue