Hi Richard I found that some instructions are using '#' before immediate value, and others are not. For example (define_insn "insv_imm<mode>" [(set (zero_extract:GPI (match_operand:GPI 0 "register_operand" "+r") (const_int 16) (match_operand:GPI 1 "const_int_operand" "n")) (match_operand:GPI 2 "const_int_operand" "n"))] "UINTVAL (operands[1]) < GET_MODE_BITSIZE (<MODE>mode) && UINTVAL (operands[1]) % 16 == 0" "movk\\t%<w>0, %X2, lsl %1" [(set_attr "type" "mov_imm")] )
Are there any standards for this? Regards Qian -----Original Message----- From: Richard Sandiford <richard.sandif...@arm.com> Sent: Wednesday, August 26, 2020 6:09 PM To: Qian, Jianhua/钱 建华 <qia...@cn.fujitsu.com> Cc: gcc-patches@gcc.gnu.org Subject: Re: [PATCH] fix testcase gcc.target/aarch64/insv_1.c Qian Jianhua <qia...@cn.fujitsu.com> writes: > There are three failures in gcc.target/aarch64/insv_1.c. > FAIL: gcc.target/aarch64/insv_1.c scan-assembler bfi\tx[0-9]+, > x[0-9]+, 0, 8 > FAIL: gcc.target/aarch64/insv_1.c scan-assembler bfi\tx[0-9]+, > x[0-9]+, 16, 5 > FAIL: gcc.target/aarch64/insv_1.c scan-assembler movk\tx[0-9]+, > 0x1d6b, lsl 32 > > This patch fix the third failure which was missed "#" before immediate > value in scan-assembler. Thanks, pushed to master. Richard > gcc/testsuite/ChangeLog: > > * gcc.target/aarch64/insv_1.c: Add '#' in scan-assembler > > --- > gcc/testsuite/gcc.target/aarch64/insv_1.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gcc/testsuite/gcc.target/aarch64/insv_1.c > b/gcc/testsuite/gcc.target/aarch64/insv_1.c > index 360a9892ad9..9efa22e649d 100644 > --- a/gcc/testsuite/gcc.target/aarch64/insv_1.c > +++ b/gcc/testsuite/gcc.target/aarch64/insv_1.c > @@ -32,7 +32,7 @@ bfi2 (bitfield a) > bitfield > movk (bitfield a) > { > - /* { dg-final { scan-assembler "movk\tx\[0-9\]+, 0x1d6b, lsl 32" } > } */ > + /* { dg-final { scan-assembler "movk\tx\[0-9\]+, #0x1d6b, lsl 32" } > + } */ > a.sixteen = 7531; > return a; > }