https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106069

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
The difference between r12-4495 and r12-4496:

$ diff -up b/q.C.252r.expand a/q.C.252r.expand
--- b/q.C.252r.expand   2022-06-23 23:16:44.753507476 +0000
+++ a/q.C.252r.expand   2022-06-23 23:16:16.232784087 +0000
@@ -831,10 +831,14 @@ try_optimize_cfg iteration 2
         (subreg:V16QI (reg/v:V4SI 168 [ R02$m_simd ]) 0)) "q.C":31:47 -1
      (nil))
 (insn 188 187 189 5 (set (reg:V4SI 339)
-        (unspec:V4SI [
-                (subreg:V4SI (reg:V16QI 338) 0)
-                (subreg:V4SI (reg:V16QI 337) 0)
-            ] UNSPEC_VMRGL_DIRECT)) "q.C":31:47 -1
+        (vec_select:V4SI (vec_concat:V8SI (subreg:V4SI (reg:V16QI 338) 0)
+                (subreg:V4SI (reg:V16QI 337) 0))
+            (parallel [
+                    (const_int 2 [0x2])
+                    (const_int 6 [0x6])
+                    (const_int 3 [0x3])
+                    (const_int 7 [0x7])
+                ]))) "q.C":31:47 -1
      (nil))
 (insn 189 188 190 5 (set (reg:V16QI 336)
         (subreg:V16QI (reg:V4SI 339) 0)) "q.C":31:47 -1
@@ -846,10 +850,14 @@ try_optimize_cfg iteration 2
         (subreg:V16QI (reg/v:V4SI 143 [ val ]) 0)) "q.C":32:47 -1
      (nil))
 (insn 192 191 193 5 (set (reg:V4SI 344)
-        (unspec:V4SI [
-                (subreg:V4SI (reg:V16QI 343) 0)
-                (subreg:V4SI (reg:V16QI 342) 0)
-            ] UNSPEC_VMRGL_DIRECT)) "q.C":32:47 -1
+        (vec_select:V4SI (vec_concat:V8SI (subreg:V4SI (reg:V16QI 343) 0)
+                (subreg:V4SI (reg:V16QI 342) 0))
+            (parallel [
+                    (const_int 2 [0x2])
+                    (const_int 6 [0x6])
+                    (const_int 3 [0x3])
+                    (const_int 7 [0x7])
+                ]))) "q.C":32:47 -1
      (nil))
 (insn 193 192 194 5 (set (reg:V16QI 341)
         (subreg:V16QI (reg:V4SI 344) 0)) "q.C":32:47 -1
@@ -861,10 +869,14 @@ try_optimize_cfg iteration 2
         (subreg:V4SI (reg:V16QI 341) 0)) "q.C":35:8 -1
      (nil))
 (insn 196 195 197 5 (set (reg:V4SI 349)
-        (unspec:V4SI [
-                (subreg:V4SI (reg:V16QI 341) 0)
-                (subreg:V4SI (reg:V16QI 336) 0)
-            ] UNSPEC_VMRGL_DIRECT)) "q.C":35:8 -1
+        (vec_select:V4SI (vec_concat:V8SI (subreg:V4SI (reg:V16QI 341) 0)
+                (subreg:V4SI (reg:V16QI 336) 0))
+            (parallel [
+                    (const_int 2 [0x2])
+                    (const_int 6 [0x6])
+                    (const_int 3 [0x3])
+                    (const_int 7 [0x7])
+                ]))) "q.C":35:8 -1
      (nil))
 (insn 197 196 198 5 (set (reg:V16QI 348)
         (subreg:V16QI (reg:V4SI 349) 0)) "q.C":35:8 -1
@@ -934,7 +946,7 @@ try_optimize_cfg iteration 2
         (reg/f:DI 120)) "q.C":103:7 -1
      (nil))
 (call_insn 9 8 10 2 (parallel [
-            (call (mem:SI (symbol_ref:DI ("_Z3fooPhPj") [flags 0x3] 
<function_decl 0x3fff7f473a00 foo>) [0 foo S4 A8])
+            (call (mem:SI (symbol_ref:DI ("_Z3fooPhPj") [flags 0x3] 
<function_decl 0x3fffa9823a00 foo>) [0 foo S4 A8])
                 (const_int 0 [0]))
             (use (const_int 0 [0]))
             (clobber (reg:DI 96 lr))
@@ -968,7 +980,7 @@ try_optimize_cfg iteration 2
  -> 17)
 (note 14 13 15 4 [bb 4] NOTE_INSN_BASIC_BLOCK)
 (call_insn 15 14 16 4 (parallel [
-            (call (mem:SI (symbol_ref:DI ("abort") [flags 0x41] 
<function_decl 0x3fff7f2b5300 __builtin_abort>) [0 __builtin_abort S4 A8])
+            (call (mem:SI (symbol_ref:DI ("abort") [flags 0x41] 
<function_decl 0x3fffa9665300 __builtin_abort>) [0 __builtin_abort S4 A8])
                 (const_int 0 [0]))
             (use (const_int 0 [0]))
             (clobber (reg:DI 96 lr))

Reply via email to