1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** create4_s8:
       7  **	mov	z0\.d, z6\.d
       8  **	mov	z1\.d, z4\.d
       9  **	mov	z2\.d, z7\.d
      10  **	mov	z3\.d, z5\.d
      11  **	ret
      12  */
      13  TEST_CREATE (create4_s8, svint8x4_t, svint8_t,
      14  	     z0 = svcreate4_s8 (z6, z4, z7, z5),
      15  	     z0 = svcreate4 (z6, z4, z7, z5))
      16  
      17  /*
      18  ** create4_u8:
      19  **	mov	z0\.d, z4\.d
      20  **	mov	z1\.d, z6\.d
      21  **	mov	z2\.d, z5\.d
      22  **	mov	z3\.d, z7\.d
      23  **	ret
      24  */
      25  TEST_CREATE (create4_u8, svuint8x4_t, svuint8_t,
      26  	     z0 = svcreate4_u8 (z4, z6, z5, z7),
      27  	     z0 = svcreate4 (z4, z6, z5, z7))
      28  
      29  /*
      30  ** create4_s16:
      31  **	mov	z0\.d, z6\.d
      32  **	mov	z1\.d, z4\.d
      33  **	mov	z2\.d, z5\.d
      34  **	mov	z3\.d, z7\.d
      35  **	ret
      36  */
      37  TEST_CREATE (create4_s16, svint16x4_t, svint16_t,
      38  	     z0 = svcreate4_s16 (z6, z4, z5, z7),
      39  	     z0 = svcreate4 (z6, z4, z5, z7))
      40  
      41  /*
      42  ** create4_u16:
      43  **	mov	z0\.d, z6\.d
      44  **	mov	z1\.d, z5\.d
      45  **	mov	z2\.d, z4\.d
      46  **	mov	z3\.d, z7\.d
      47  **	ret
      48  */
      49  TEST_CREATE (create4_u16, svuint16x4_t, svuint16_t,
      50  	     z0 = svcreate4_u16 (z6, z5, z4, z7),
      51  	     z0 = svcreate4 (z6, z5, z4, z7))
      52  
      53  /*
      54  ** create4_bf16:
      55  **	mov	z0\.d, z4\.d
      56  **	mov	z1\.d, z5\.d
      57  **	mov	z2\.d, z6\.d
      58  **	mov	z3\.d, z7\.d
      59  **	ret
      60  */
      61  TEST_CREATE (create4_bf16, svbfloat16x4_t, svbfloat16_t,
      62  	     z0 = svcreate4_bf16 (z4, z5, z6, z7),
      63  	     z0 = svcreate4 (z4, z5, z6, z7))
      64  
      65  /*
      66  ** create4_f16:
      67  **	mov	z0\.d, z4\.d
      68  **	mov	z1\.d, z5\.d
      69  **	mov	z2\.d, z6\.d
      70  **	mov	z3\.d, z7\.d
      71  **	ret
      72  */
      73  TEST_CREATE (create4_f16, svfloat16x4_t, svfloat16_t,
      74  	     z0 = svcreate4_f16 (z4, z5, z6, z7),
      75  	     z0 = svcreate4 (z4, z5, z6, z7))
      76  
      77  /*
      78  ** create4_s32:
      79  **	mov	z0\.d, z6\.d
      80  **	mov	z1\.d, z7\.d
      81  **	mov	z2\.d, z4\.d
      82  **	mov	z3\.d, z5\.d
      83  **	ret
      84  */
      85  TEST_CREATE (create4_s32, svint32x4_t, svint32_t,
      86  	     z0 = svcreate4_s32 (z6, z7, z4, z5),
      87  	     z0 = svcreate4 (z6, z7, z4, z5))
      88  
      89  /*
      90  ** create4_u32:
      91  **	mov	z0\.d, z7\.d
      92  **	mov	z1\.d, z5\.d
      93  **	mov	z2\.d, z6\.d
      94  **	mov	z3\.d, z7\.d
      95  **	ret
      96  */
      97  TEST_CREATE (create4_u32, svuint32x4_t, svuint32_t,
      98  	     z0 = svcreate4_u32 (z7, z5, z6, z7),
      99  	     z0 = svcreate4 (z7, z5, z6, z7))
     100  
     101  /*
     102  ** create4_f32:
     103  **	mov	z0\.d, z7\.d
     104  **	mov	z1\.d, z4\.d
     105  **	mov	z2\.d, z6\.d
     106  **	mov	z3\.d, z4\.d
     107  **	ret
     108  */
     109  TEST_CREATE (create4_f32, svfloat32x4_t, svfloat32_t,
     110  	     z0 = svcreate4_f32 (z7, z4, z6, z4),
     111  	     z0 = svcreate4 (z7, z4, z6, z4))
     112  
     113  /*
     114  ** create4_s64:
     115  **	mov	z0\.d, z5\.d
     116  **	mov	z1\.d, z7\.d
     117  **	mov	z2\.d, z6\.d
     118  **	mov	z3\.d, z6\.d
     119  **	ret
     120  */
     121  TEST_CREATE (create4_s64, svint64x4_t, svint64_t,
     122  	     z0 = svcreate4_s64 (z5, z7, z6, z6),
     123  	     z0 = svcreate4 (z5, z7, z6, z6))
     124  
     125  /*
     126  ** create4_u64:
     127  **	mov	z0\.d, z7\.d
     128  **	mov	z1\.d, z6\.d
     129  **	mov	z2\.d, z4\.d
     130  **	mov	z3\.d, z5\.d
     131  **	ret
     132  */
     133  TEST_CREATE (create4_u64, svuint64x4_t, svuint64_t,
     134  	     z0 = svcreate4_u64 (z7, z6, z4, z5),
     135  	     z0 = svcreate4 (z7, z6, z4, z5))
     136  
     137  /*
     138  ** create4_f64:
     139  **	mov	z0\.d, z5\.d
     140  **	mov	z1\.d, z4\.d
     141  **	mov	z2\.d, z7\.d
     142  **	mov	z3\.d, z6\.d
     143  **	ret
     144  */
     145  TEST_CREATE (create4_f64, svfloat64x4_t, svfloat64_t,
     146  	     z0 = svcreate4_f64 (z5, z4, z7, z6),
     147  	     z0 = svcreate4 (z5, z4, z7, z6))