1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** create2_s8:
       7  **	mov	z0\.d, z6\.d
       8  **	mov	z1\.d, z4\.d
       9  **	ret
      10  */
      11  TEST_CREATE (create2_s8, svint8x2_t, svint8_t,
      12  	     z0 = svcreate2_s8 (z6, z4),
      13  	     z0 = svcreate2 (z6, z4))
      14  
      15  /*
      16  ** create2_u8:
      17  **	mov	z0\.d, z4\.d
      18  **	mov	z1\.d, z6\.d
      19  **	ret
      20  */
      21  TEST_CREATE (create2_u8, svuint8x2_t, svuint8_t,
      22  	     z0 = svcreate2_u8 (z4, z6),
      23  	     z0 = svcreate2 (z4, z6))
      24  
      25  /*
      26  ** create2_s16:
      27  **	mov	z0\.d, z6\.d
      28  **	mov	z1\.d, z4\.d
      29  **	ret
      30  */
      31  TEST_CREATE (create2_s16, svint16x2_t, svint16_t,
      32  	     z0 = svcreate2_s16 (z6, z4),
      33  	     z0 = svcreate2 (z6, z4))
      34  
      35  /*
      36  ** create2_u16:
      37  **	mov	z0\.d, z6\.d
      38  **	mov	z1\.d, z5\.d
      39  **	ret
      40  */
      41  TEST_CREATE (create2_u16, svuint16x2_t, svuint16_t,
      42  	     z0 = svcreate2_u16 (z6, z5),
      43  	     z0 = svcreate2 (z6, z5))
      44  
      45  /*
      46  ** create2_bf16:
      47  **	mov	z0\.d, z4\.d
      48  **	mov	z1\.d, z5\.d
      49  **	ret
      50  */
      51  TEST_CREATE (create2_bf16, svbfloat16x2_t, svbfloat16_t,
      52  	     z0 = svcreate2_bf16 (z4, z5),
      53  	     z0 = svcreate2 (z4, z5))
      54  
      55  /*
      56  ** create2_f16:
      57  **	mov	z0\.d, z4\.d
      58  **	mov	z1\.d, z5\.d
      59  **	ret
      60  */
      61  TEST_CREATE (create2_f16, svfloat16x2_t, svfloat16_t,
      62  	     z0 = svcreate2_f16 (z4, z5),
      63  	     z0 = svcreate2 (z4, z5))
      64  
      65  /*
      66  ** create2_s32:
      67  **	mov	z0\.d, z6\.d
      68  **	mov	z1\.d, z7\.d
      69  **	ret
      70  */
      71  TEST_CREATE (create2_s32, svint32x2_t, svint32_t,
      72  	     z0 = svcreate2_s32 (z6, z7),
      73  	     z0 = svcreate2 (z6, z7))
      74  
      75  /*
      76  ** create2_u32:
      77  **	mov	z0\.d, z7\.d
      78  **	mov	z1\.d, z5\.d
      79  **	ret
      80  */
      81  TEST_CREATE (create2_u32, svuint32x2_t, svuint32_t,
      82  	     z0 = svcreate2_u32 (z7, z5),
      83  	     z0 = svcreate2 (z7, z5))
      84  
      85  /*
      86  ** create2_f32:
      87  **	mov	z0\.d, z7\.d
      88  **	mov	z1\.d, z4\.d
      89  **	ret
      90  */
      91  TEST_CREATE (create2_f32, svfloat32x2_t, svfloat32_t,
      92  	     z0 = svcreate2_f32 (z7, z4),
      93  	     z0 = svcreate2 (z7, z4))
      94  
      95  /*
      96  ** create2_s64:
      97  **	mov	z0\.d, z5\.d
      98  **	mov	z1\.d, z7\.d
      99  **	ret
     100  */
     101  TEST_CREATE (create2_s64, svint64x2_t, svint64_t,
     102  	     z0 = svcreate2_s64 (z5, z7),
     103  	     z0 = svcreate2 (z5, z7))
     104  
     105  /*
     106  ** create2_u64:
     107  **	mov	z0\.d, z7\.d
     108  **	mov	z1\.d, z6\.d
     109  **	ret
     110  */
     111  TEST_CREATE (create2_u64, svuint64x2_t, svuint64_t,
     112  	     z0 = svcreate2_u64 (z7, z6),
     113  	     z0 = svcreate2 (z7, z6))
     114  
     115  /*
     116  ** create2_f64:
     117  **	mov	z0\.d, z5\.d
     118  **	mov	z1\.d, z4\.d
     119  **	ret
     120  */
     121  TEST_CREATE (create2_f64, svfloat64x2_t, svfloat64_t,
     122  	     z0 = svcreate2_f64 (z5, z4),
     123  	     z0 = svcreate2 (z5, z4))