1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** dupq_0_b32:
       7  **	pfalse	p0\.b
       8  **	ret
       9  */
      10  TEST_UNIFORM_P (dupq_0_b32,
      11  		p0 = svdupq_n_b32 (0, 0, 0, 0),
      12  		p0 = svdupq_b32 (0, 0, 0, 0))
      13  
      14  /*
      15  ** dupq_1_b32:
      16  ** (
      17  **	ptrue	(p[0-7])\.d, all
      18  **	pfalse	(p[0-7])\.b
      19  **	trn1	p0\.d, \1\.d, \2\.d
      20  ** |
      21  **	pfalse	(p[0-7])\.b
      22  **	ptrue	(p[0-7])\.d, all
      23  **	trn1	p0\.d, \4\.d, \3\.d
      24  ** )
      25  **	ret
      26  */
      27  TEST_UNIFORM_P (dupq_1_b32,
      28  		p0 = svdupq_n_b32 (1, 0, 0, 0),
      29  		p0 = svdupq_b32 (1, 0, 0, 0))
      30  
      31  /*
      32  ** dupq_3_b32:
      33  ** (
      34  **	ptrue	(p[0-7])\.s, all
      35  **	pfalse	(p[0-7])\.b
      36  **	trn1	p0\.d, \1\.d, \2\.d
      37  ** |
      38  **	pfalse	(p[0-7])\.b
      39  **	ptrue	(p[0-7])\.s, all
      40  **	trn1	p0\.d, \4\.d, \3\.d
      41  ** )
      42  **	ret
      43  */
      44  TEST_UNIFORM_P (dupq_3_b32,
      45  		p0 = svdupq_n_b32 (1, 1, 0, 0),
      46  		p0 = svdupq_b32 (1, 1, 0, 0))
      47  
      48  /*
      49  ** dupq_4_b32:
      50  ** (
      51  **	pfalse	(p[0-7])\.b
      52  **	ptrue	(p[0-7])\.d, all
      53  **	trn1	p0\.d, \1\.d, \2\.d
      54  ** |
      55  **	ptrue	(p[0-7])\.d, all
      56  **	pfalse	(p[0-7])\.b
      57  **	trn1	p0\.d, \4\.d, \3\.d
      58  ** )
      59  **	ret
      60  */
      61  TEST_UNIFORM_P (dupq_4_b32,
      62  		p0 = svdupq_n_b32 (0, 0, 1, 0),
      63  		p0 = svdupq_b32 (0, 0, 1, 0))
      64  
      65  /*
      66  ** dupq_5_b32:
      67  **	ptrue	p0\.d, all
      68  **	ret
      69  */
      70  TEST_UNIFORM_P (dupq_5_b32,
      71  		p0 = svdupq_n_b32 (1, 0, 1, 0),
      72  		p0 = svdupq_b32 (1, 0, 1, 0))
      73  
      74  /*
      75  ** dupq_7_b32:
      76  ** (
      77  **	ptrue	(p[0-7])\.s, all
      78  **	ptrue	(p[0-7])\.d, all
      79  **	trn1	p0\.d, \1\.d, \2\.d
      80  ** |
      81  **	ptrue	(p[0-7])\.d, all
      82  **	ptrue	(p[0-7])\.s, all
      83  **	trn1	p0\.d, \4\.d, \3\.d
      84  ** )
      85  **	ret
      86  */
      87  TEST_UNIFORM_P (dupq_7_b32,
      88  		p0 = svdupq_n_b32 (1, 1, 1, 0),
      89  		p0 = svdupq_b32 (1, 1, 1, 0))
      90  
      91  /*
      92  ** dupq_a_b32:
      93  ** (
      94  **	ptrue	(p[0-7])\.d, all
      95  **	ptrue	(p[0-7])\.s, all
      96  **	not	p0\.b, \2/z, \1\.b
      97  ** |
      98  **	ptrue	(p[0-7])\.s, all
      99  **	ptrue	(p[0-7])\.d, all
     100  **	not	p0\.b, \3/z, \4\.b
     101  ** )
     102  **	ret
     103  */
     104  TEST_UNIFORM_P (dupq_a_b32,
     105  		p0 = svdupq_n_b32 (0, 1, 0, 1),
     106  		p0 = svdupq_b32 (0, 1, 0, 1))
     107  
     108  /*
     109  ** dupq_e_b32:
     110  ** (
     111  **	ptrue	(p[0-7])\.d, all
     112  **	ptrue	(p[0-7])\.s, all
     113  **	trn1	p0\.d, \1\.d, \2\.d
     114  ** |
     115  **	ptrue	(p[0-7])\.s, all
     116  **	ptrue	(p[0-7])\.d, all
     117  **	trn1	p0\.d, \4\.d, \3\.d
     118  ** )
     119  **	ret
     120  */
     121  TEST_UNIFORM_P (dupq_e_b32,
     122  		p0 = svdupq_n_b32 (1, 0, 1, 1),
     123  		p0 = svdupq_b32 (1, 0, 1, 1))
     124  
     125  /*
     126  ** dupq_f_b32:
     127  **	ptrue	p0\.s, all
     128  **	ret
     129  */
     130  TEST_UNIFORM_P (dupq_f_b32,
     131  		p0 = svdupq_n_b32 (1, 1, 1, 1),
     132  		p0 = svdupq_b32 (1, 1, 1, 1))