1  /* { dg-do compile { target arm*-*-* } } */
       2  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
       3  /* { dg-add-options arm_v8_1m_mve } */
       4  /* { dg-additional-options "-O2" } */
       5  
       6  void __RTL (startwith ("ira")) foo (void *ptr)
       7  {
       8    (function "foo"
       9     (param "ptr"
      10      (DECL_RTL (reg/v:SI <0> [ ptr ]))
      11      (DECL_RTL_INCOMING (reg:SI r0 [ ptr ]))
      12      ) ;; param "n"
      13     (insn-chain
      14      (block 2
      15       (edge-from entry (flags "FALLTHRU"))
      16       (cnote 5 [bb 2] NOTE_INSN_BASIC_BLOCK)
      17       (insn 7 (set (reg:V4BI <1>)
      18  	      (const_vector:V4BI [(const_int 1)
      19  				  (const_int 0)
      20  				  (const_int 0)
      21  				  (const_int 1)])) (nil))
      22       (insn 8 (set (mem:V4BI (reg:SI <0>) [1 ptr+0 S2 A16]) (reg:V4BI <1>)))
      23       (edge-to exit (flags "FALLTHRU"))
      24       ) ;; block 2
      25      ) ;; insn-chain
      26     ) ;; function
      27  }
      28  
      29  void __RTL (startwith ("ira")) foo2 (void *ptr)
      30  {
      31    (function "foo"
      32     (param "ptr"
      33      (DECL_RTL (reg/v:SI <0> [ ptr ]))
      34      (DECL_RTL_INCOMING (reg:SI r0 [ ptr ]))
      35      ) ;; param "n"
      36     (insn-chain
      37      (block 2
      38       (edge-from entry (flags "FALLTHRU"))
      39       (cnote 5 [bb 2] NOTE_INSN_BASIC_BLOCK)
      40       (insn 7 (set (reg:V8BI <1>)
      41  	      (const_vector:V8BI [(const_int 1)
      42  				  (const_int 0)
      43  				  (const_int 1)
      44  				  (const_int 1)
      45  				  (const_int 1)
      46  				  (const_int 1)
      47  				  (const_int 0)
      48  				  (const_int 1)])) (nil))
      49       (insn 8 (set (mem:V8BI (reg:SI <0>) [1 ptr+0 S2 A16]) (reg:V8BI <1>)))
      50       (edge-to exit (flags "FALLTHRU"))
      51       ) ;; block 2
      52      ) ;; insn-chain
      53     ) ;; function
      54  }
      55  
      56  void __RTL (startwith ("ira")) foo3 (void *ptr)
      57  {
      58    (function "foo"
      59     (param "ptr"
      60      (DECL_RTL (reg/v:SI <0> [ ptr ]))
      61      (DECL_RTL_INCOMING (reg:SI r0 [ ptr ]))
      62      ) ;; param "n"
      63     (insn-chain
      64      (block 2
      65       (edge-from entry (flags "FALLTHRU"))
      66       (cnote 5 [bb 2] NOTE_INSN_BASIC_BLOCK)
      67       (insn 7 (set (reg:V16BI <1>)
      68  	      (const_vector:V16BI [(const_int 0)
      69  				  (const_int 0)
      70  				  (const_int 0)
      71  				  (const_int 0)
      72  				  (const_int 0)
      73  				  (const_int 0)
      74  				  (const_int 0)
      75  				  (const_int 0)
      76  				  (const_int 0)
      77  				  (const_int 0)
      78  				  (const_int 0)
      79  				  (const_int 0)
      80  				  (const_int 0)
      81  				  (const_int 0)
      82  				  (const_int 0)
      83  				  (const_int 0)])) (nil))
      84       (insn 8 (set (mem:V16BI (reg:SI <0>) [1 ptr+0 S2 A16]) (reg:V16BI <1>)))
      85       (edge-to exit (flags "FALLTHRU"))
      86       ) ;; block 2
      87      ) ;; insn-chain
      88     ) ;; function
      89  }