2023-12-20 15:12 juzhe.zhong <juzhe.zh...@rivai.ai> wrote:

>+       (and:VI
>+         (match_operand:VI 3 "register_operand"         "vr, vr, vr, vr")
>+         (not:VI (match_operand:VI 4 "register_operand" "vr, vr, vr, vr")))

>Swap the order:

>

>(not:VI (match_operand:VI 4 "register_operand" "vr, vr, vr, vr")

>       (and:VI

>         (match_operand:VI 3 "register_operand"         "vr, vr, vr, vr")

The description in the spec is"Each bit of Op1 is inverted and logically ANDed 
with the corresponding bits in vs2",
so I think the "and" should be placed  outside.

>

>+       (and:VI_QHS

>+          (match_operand:VI_QHS 3 "register_operand"   "vr, vr,vr, vr")

>+          (not:<VEL>

>+            (match_operand:<VEL> 4 "register_operand"  " r,  r, r,  r")))

>

>->

>

>+       (and:VI_QHS+          (not:VI_QHS+            (vec_duplicate:VI_QHS

>

>+            (match_operand:<VEL> 4 "register_operand"  " r,  r, r,  r")))



>+          (match_operand:VI_QHS 3 "register_operand"   "vr, vr,vr, vr"))

OK. Will add vec_duplicate.

>

>Can you add EEW64 vx test on RV32 ?

>

>

>

>

>juzhe.zh...@rivai.ai

> 

The test cases are added at [PATCH v4 3/3] RISC-V: Add crypto vector 
api-testing cases.
gcc.target/riscv/zvbb_vandn_vx_constraint.c
gcc.target/riscv/zvbc_vx_constraint-2.c: New test.
gcc.target/riscv/zvbc_vx_constraint-1.c: New test.

Thanks.

Reply via email to