(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
advsimd-intrinsics/
vtrn.c
       1  #include <arm_neon.h>
       2  #include "arm-neon-ref.h"
       3  #include "compute-ref-data.h"
       4  
       5  /* Expected results splitted in several chunks.  */
       6  /* Chunk 0.  */
       7  VECT_VAR_DECL(expected0,int,8,8) [] = { 0xf0, 0xf1, 0x11, 0x11,
       8  					0xf2, 0xf3, 0x11, 0x11 };
       9  VECT_VAR_DECL(expected0,int,16,4) [] = { 0xfff0, 0xfff1, 0x22, 0x22 };
      10  VECT_VAR_DECL(expected0,int,32,2) [] = { 0xfffffff0, 0xfffffff1 };
      11  VECT_VAR_DECL(expected0,uint,8,8) [] = { 0xf0, 0xf1, 0x55, 0x55,
      12  					 0xf2, 0xf3, 0x55, 0x55 };
      13  VECT_VAR_DECL(expected0,uint,16,4) [] = { 0xfff0, 0xfff1, 0x66, 0x66 };
      14  VECT_VAR_DECL(expected0,uint,32,2) [] = { 0xfffffff0, 0xfffffff1 };
      15  VECT_VAR_DECL(expected0,poly,8,8) [] = { 0xf0, 0xf1, 0x55, 0x55,
      16  					 0xf2, 0xf3, 0x55, 0x55 };
      17  VECT_VAR_DECL(expected0,poly,16,4) [] = { 0xfff0, 0xfff1, 0x66, 0x66 };
      18  #if defined (FP16_SUPPORTED)
      19  VECT_VAR_DECL (expected0, hfloat, 16, 4) [] = { 0xcc00, 0xcb80,
      20  						0x4b4d, 0x4b4d };
      21  #endif
      22  VECT_VAR_DECL(expected0,hfloat,32,2) [] = { 0xc1800000, 0xc1700000 };
      23  VECT_VAR_DECL(expected0,int,8,16) [] = { 0xf0, 0xf1, 0x11, 0x11,
      24  					 0xf2, 0xf3, 0x11, 0x11,
      25  					 0xf4, 0xf5, 0x11, 0x11,
      26  					 0xf6, 0xf7, 0x11, 0x11 };
      27  VECT_VAR_DECL(expected0,int,16,8) [] = { 0xfff0, 0xfff1, 0x22, 0x22,
      28  					 0xfff2, 0xfff3, 0x22, 0x22 };
      29  VECT_VAR_DECL(expected0,int,32,4) [] = { 0xfffffff0, 0xfffffff1, 0x33, 0x33 };
      30  VECT_VAR_DECL(expected0,uint,8,16) [] = { 0xf0, 0xf1, 0x55, 0x55,
      31  					  0xf2, 0xf3, 0x55, 0x55,
      32  					  0xf4, 0xf5, 0x55, 0x55,
      33  					  0xf6, 0xf7, 0x55, 0x55 };
      34  VECT_VAR_DECL(expected0,uint,16,8) [] = { 0xfff0, 0xfff1, 0x66, 0x66,
      35  					  0xfff2, 0xfff3, 0x66, 0x66 };
      36  VECT_VAR_DECL(expected0,uint,32,4) [] = { 0xfffffff0, 0xfffffff1, 0x77, 0x77 };
      37  VECT_VAR_DECL(expected0,poly,8,16) [] = { 0xf0, 0xf1, 0x55, 0x55,
      38  					  0xf2, 0xf3, 0x55, 0x55,
      39  					  0xf4, 0xf5, 0x55, 0x55,
      40  					  0xf6, 0xf7, 0x55, 0x55 };
      41  VECT_VAR_DECL(expected0,poly,16,8) [] = { 0xfff0, 0xfff1, 0x66, 0x66,
      42  					  0xfff2, 0xfff3, 0x66, 0x66 };
      43  #if defined (FP16_SUPPORTED)
      44  VECT_VAR_DECL (expected0, hfloat, 16, 8) [] = { 0xcc00, 0xcb80,
      45  						0x4b4d, 0x4b4d,
      46  						0xcb00, 0xca80,
      47  						0x4b4d, 0x4b4d };
      48  #endif
      49  VECT_VAR_DECL(expected0,hfloat,32,4) [] = { 0xc1800000, 0xc1700000,
      50  					    0x42073333, 0x42073333 };
      51  
      52  /* Chunk 1.  */
      53  VECT_VAR_DECL(expected1,int,8,8) [] = { 0xf4, 0xf5, 0x11, 0x11,
      54  					0xf6, 0xf7, 0x11, 0x11 };
      55  VECT_VAR_DECL(expected1,int,16,4) [] = { 0xfff2, 0xfff3, 0x22, 0x22 };
      56  VECT_VAR_DECL(expected1,int,32,2) [] = { 0x33, 0x33 };
      57  VECT_VAR_DECL(expected1,uint,8,8) [] = { 0xf4, 0xf5, 0x55, 0x55,
      58  					 0xf6, 0xf7, 0x55, 0x55 };
      59  VECT_VAR_DECL(expected1,uint,16,4) [] = { 0xfff2, 0xfff3, 0x66, 0x66 };
      60  VECT_VAR_DECL(expected1,uint,32,2) [] = { 0x77, 0x77 };
      61  VECT_VAR_DECL(expected1,poly,8,8) [] = { 0xf4, 0xf5, 0x55, 0x55,
      62  					 0xf6, 0xf7, 0x55, 0x55 };
      63  VECT_VAR_DECL(expected1,poly,16,4) [] = { 0xfff2, 0xfff3, 0x66, 0x66 };
      64  #if defined (FP16_SUPPORTED)
      65  VECT_VAR_DECL (expected1, hfloat, 16, 4) [] = { 0xcb00, 0xca80,
      66  						0x4b4d, 0x4b4d };
      67  #endif
      68  VECT_VAR_DECL(expected1,hfloat,32,2) [] = { 0x42066666, 0x42066666 };
      69  VECT_VAR_DECL(expected1,int,8,16) [] = { 0xf8, 0xf9, 0x11, 0x11,
      70  					 0xfa, 0xfb, 0x11, 0x11,
      71  					 0xfc, 0xfd, 0x11, 0x11,
      72  					 0xfe, 0xff, 0x11, 0x11 };
      73  VECT_VAR_DECL(expected1,int,16,8) [] = { 0xfff4, 0xfff5, 0x22, 0x22,
      74  					 0xfff6, 0xfff7, 0x22, 0x22 };
      75  VECT_VAR_DECL(expected1,int,32,4) [] = { 0xfffffff2, 0xfffffff3, 0x33, 0x33 };
      76  VECT_VAR_DECL(expected1,uint,8,16) [] = { 0xf8, 0xf9, 0x55, 0x55,
      77  					  0xfa, 0xfb, 0x55, 0x55,
      78  					  0xfc, 0xfd, 0x55, 0x55,
      79  					  0xfe, 0xff, 0x55, 0x55 };
      80  VECT_VAR_DECL(expected1,uint,16,8) [] = { 0xfff4, 0xfff5, 0x66, 0x66,
      81  					  0xfff6, 0xfff7, 0x66, 0x66 };
      82  VECT_VAR_DECL(expected1,uint,32,4) [] = { 0xfffffff2, 0xfffffff3, 0x77, 0x77 };
      83  VECT_VAR_DECL(expected1,poly,8,16) [] = { 0xf8, 0xf9, 0x55, 0x55,
      84  					  0xfa, 0xfb, 0x55, 0x55,
      85  					  0xfc, 0xfd, 0x55, 0x55,
      86  					  0xfe, 0xff, 0x55, 0x55 };
      87  VECT_VAR_DECL(expected1,poly,16,8) [] = { 0xfff4, 0xfff5, 0x66, 0x66,
      88  					  0xfff6, 0xfff7, 0x66, 0x66 };
      89  #if defined (FP16_SUPPORTED)
      90  VECT_VAR_DECL (expected1, hfloat, 16, 8) [] = { 0xca00, 0xc980,
      91  						0x4b4d, 0x4b4d,
      92  						0xc900, 0xc880,
      93  						0x4b4d, 0x4b4d };
      94  #endif
      95  VECT_VAR_DECL(expected1,hfloat,32,4) [] = { 0xc1600000, 0xc1500000,
      96  					    0x42073333, 0x42073333 };
      97  
      98  #define INSN_NAME vtrn
      99  #define TEST_MSG "VTRN/VTRNQ"
     100  
     101  #include "vshuffle.inc"