]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
LoongArch: Don't use C++17 feature [PR119238]
authorXi Ruoyao <xry111@xry111.site>
Wed, 12 Mar 2025 13:02:38 +0000 (21:02 +0800)
committerXi Ruoyao <xry111@xry111.site>
Thu, 13 Mar 2025 03:38:39 +0000 (11:38 +0800)
Structured binding is a C++17 feature but the GCC code base is in C++14.

gcc/ChangeLog:

PR target/119238
* config/loongarch/simd.md (<su>dot_prod<wvec_half><mode>):
Stop using structured binding.

gcc/config/loongarch/simd.md

index 8f7e912982ebfb51f22b3beff7478dd224364c89..dd17cd13fc52bf3e29ce36498305f6dc8410ca5c 100644 (file)
    (any_extend (const_int 0))]
   ""
 {
-  auto [op0, op1, op2, op3] = operands;
+  rtx *op = operands;
 
-  if (op3 == CONST0_RTX (<WVEC_HALF>mode))
+  if (op[3] == CONST0_RTX (<WVEC_HALF>mode))
     emit_insn (
-      gen_<simd_isa>_<x>vmulwev_<simdfmt_w>_<simdfmt><u> (op0, op1, op2));
+      gen_<simd_isa>_<x>vmulwev_<simdfmt_w>_<simdfmt><u> (op[0], op[1],
+                                                         op[2]));
   else
     emit_insn (
-      gen_<simd_isa>_<x>vmaddwev_<simdfmt_w>_<simdfmt><u> (op0, op3, op1,
-                                                          op2));
+      gen_<simd_isa>_<x>vmaddwev_<simdfmt_w>_<simdfmt><u> (op[0], op[3],
+                                                          op[1], op[2]));
 
   emit_insn (
-    gen_<simd_isa>_<x>vmaddwod_<simdfmt_w>_<simdfmt><u> (op0, op0, op1, op2));
+    gen_<simd_isa>_<x>vmaddwod_<simdfmt_w>_<simdfmt><u> (op[0], op[0],
+                                                        op[1], op[2]));
   DONE;
 })