]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
AArch64: Fix operands order in vec_extract expander
authorTejas Belagod <tejas.belagod@arm.com>
Sat, 12 Apr 2025 19:38:00 +0000 (01:08 +0530)
committerTejas Belagod <tejas.belagod@arm.com>
Wed, 16 Apr 2025 05:46:43 +0000 (11:16 +0530)
The operand order to gen_vcond_mask call in the vec_extract pattern is wrong.
Fix the order where predicate is operand 3.

Tested and bootstrapped on aarch64-linux-gnu. OK for trunk?

gcc/ChangeLog

* config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Fix operand
order to gen_vcond_mask_*.

gcc/config/aarch64/aarch64-sve.md

index 3dbd65986ec70b95f01fbf6c992570d895d9d548..d4af3706294d41f0ea0e7b44e0e5ada2251a8b47 100644 (file)
   "TARGET_SVE"
   {
     rtx tmp = gen_reg_rtx (<MODE>mode);
-    emit_insn (gen_vcond_mask_<mode><vpred> (tmp, operands[1],
-                                            CONST1_RTX (<MODE>mode),
-                                            CONST0_RTX (<MODE>mode)));
+    emit_insn (gen_vcond_mask_<mode><vpred> (tmp, CONST1_RTX (<MODE>mode),
+                                            CONST0_RTX (<MODE>mode),
+                                            operands[1]));
     emit_insn (gen_vec_extract<mode><Vel> (operands[0], tmp, operands[2]));
     DONE;
   }