[PATCH] [i386] APX EGPR: fix missing pattern that prohibits egpr
Thanks, also there is another pattern missed that should use "ja" instead of Bm. Will commit below changes. gcc/ChangeLog: * config/i386/sse.md (vec_concatv2di): Replace constraint "m" with "jm" for alternative 0 and 1 of operand 2. (sse4_1_3): Replace constraint "Bm" with "ja" for alternative 0 and 1 of operand2. --- gcc/config/i386/sse.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 6bffd749c6d..22e43eb3f92 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -16842,7 +16842,7 @@ (define_insn "*sse4_1_3" [(set (match_operand:VI24_128 0 "register_operand" "=Yr,*x,") (umaxmin:VI24_128 (match_operand:VI24_128 1 "vector_operand" "%0,0,") - (match_operand:VI24_128 2 "vector_operand" "YrBm,*xBm,m")))] + (match_operand:VI24_128 2 "vector_operand" "Yrja,*xja,m")))] "TARGET_SSE4_1 && && !(MEM_P (operands[1]) && MEM_P (operands[2]))" @@ -20638,7 +20638,7 @@ (define_insn "vec_concatv2di" (match_operand:DI 1 "register_operand" " 0, 0,x ,Yv,0,Yv,0,0,v") (match_operand:DI 2 "nonimmediate_operand" - " jrm,jrm,rm,rm,x,Yv,x,m,m")))] + " jrjm,jrjm,rm,rm,x,Yv,x,m,m")))] "TARGET_SSE" "@ pinsrq\t{$1, %2, %0|%0, %2, 1} -- 2.31.1
Re: [PATCH] [i386] APX EGPR: fix missing pattern that prohibits egpr
On Mon, Oct 9, 2023 at 10:05 AM Hongyu Wang wrote: > > For vec_concatv2di, m constraint in alternative 0 and 1 could result in > egpr allocated on operand 2 under -mapxf. Should use jm instead. > > Bootstrapped/regtested on x86-64-linux-gnu. > > Ok for trunk? Ok. > > gcc/ChangeLog: > > * config/i386/sse.md (vec_concatv2di): Replace constraint "m" > with "jm" for alternative 0 and 1 of operand 2. > --- > gcc/config/i386/sse.md | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md > index 6bffd749c6d..58672f46365 100644 > --- a/gcc/config/i386/sse.md > +++ b/gcc/config/i386/sse.md > @@ -20638,7 +20638,7 @@ (define_insn "vec_concatv2di" > (match_operand:DI 1 "register_operand" > " 0, 0,x ,Yv,0,Yv,0,0,v") > (match_operand:DI 2 "nonimmediate_operand" > - " jrm,jrm,rm,rm,x,Yv,x,m,m")))] > + " jrjm,jrjm,rm,rm,x,Yv,x,m,m")))] >"TARGET_SSE" >"@ > pinsrq\t{$1, %2, %0|%0, %2, 1} > -- > 2.31.1 > -- BR, Hongtao
[PATCH] [i386] APX EGPR: fix missing pattern that prohibits egpr
For vec_concatv2di, m constraint in alternative 0 and 1 could result in egpr allocated on operand 2 under -mapxf. Should use jm instead. Bootstrapped/regtested on x86-64-linux-gnu. Ok for trunk? gcc/ChangeLog: * config/i386/sse.md (vec_concatv2di): Replace constraint "m" with "jm" for alternative 0 and 1 of operand 2. --- gcc/config/i386/sse.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 6bffd749c6d..58672f46365 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -20638,7 +20638,7 @@ (define_insn "vec_concatv2di" (match_operand:DI 1 "register_operand" " 0, 0,x ,Yv,0,Yv,0,0,v") (match_operand:DI 2 "nonimmediate_operand" - " jrm,jrm,rm,rm,x,Yv,x,m,m")))] + " jrjm,jrjm,rm,rm,x,Yv,x,m,m")))] "TARGET_SSE" "@ pinsrq\t{$1, %2, %0|%0, %2, 1} -- 2.31.1