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, 0xf4, 0x11, 0x11, 8 0xf1, 0xf5, 0x11, 0x11 }; 9 VECT_VAR_DECL(expected0,int,16,4) [] = { 0xfff0, 0xfff2, 10 0x22, 0x22 }; 11 VECT_VAR_DECL(expected0,int,32,2) [] = { 0xfffffff0, 0xfffffff1 }; 12 VECT_VAR_DECL(expected0,uint,8,8) [] = { 0xf0, 0xf4, 0x55, 0x55, 13 0xf1, 0xf5, 0x55, 0x55 }; 14 VECT_VAR_DECL(expected0,uint,16,4) [] = { 0xfff0, 0xfff2, 15 0x66, 0x66 }; 16 VECT_VAR_DECL(expected0,uint,32,2) [] = { 0xfffffff0, 0xfffffff1 }; 17 VECT_VAR_DECL(expected0,poly,8,8) [] = { 0xf0, 0xf4, 0x55, 0x55, 18 0xf1, 0xf5, 0x55, 0x55 }; 19 VECT_VAR_DECL(expected0,poly,16,4) [] = { 0xfff0, 0xfff2, 20 0x66, 0x66 }; 21 #if defined (FP16_SUPPORTED) 22 VECT_VAR_DECL (expected0, hfloat, 16, 4) [] = { 0xcc00, 0xcb00, 23 0x4b4d, 0x4b4d }; 24 #endif 25 VECT_VAR_DECL(expected0,hfloat,32,2) [] = { 0xc1800000, 0xc1700000 }; 26 VECT_VAR_DECL(expected0,int,8,16) [] = { 0xf0, 0xf8, 0x11, 0x11, 27 0xf1, 0xf9, 0x11, 0x11, 28 0xf2, 0xfa, 0x11, 0x11, 29 0xf3, 0xfb, 0x11, 0x11 }; 30 VECT_VAR_DECL(expected0,int,16,8) [] = { 0xfff0, 0xfff4, 0x22, 0x22, 31 0xfff1, 0xfff5, 0x22, 0x22 }; 32 VECT_VAR_DECL(expected0,int,32,4) [] = { 0xfffffff0, 0xfffffff2, 33 0x33, 0x33 }; 34 VECT_VAR_DECL(expected0,uint,8,16) [] = { 0xf0, 0xf8, 0x55, 0x55, 35 0xf1, 0xf9, 0x55, 0x55, 36 0xf2, 0xfa, 0x55, 0x55, 37 0xf3, 0xfb, 0x55, 0x55 }; 38 VECT_VAR_DECL(expected0,uint,16,8) [] = { 0xfff0, 0xfff4, 0x66, 0x66, 39 0xfff1, 0xfff5, 0x66, 0x66 }; 40 VECT_VAR_DECL(expected0,uint,32,4) [] = { 0xfffffff0, 0xfffffff2, 41 0x77, 0x77 }; 42 VECT_VAR_DECL(expected0,poly,8,16) [] = { 0xf0, 0xf8, 0x55, 0x55, 43 0xf1, 0xf9, 0x55, 0x55, 44 0xf2, 0xfa, 0x55, 0x55, 45 0xf3, 0xfb, 0x55, 0x55 }; 46 VECT_VAR_DECL(expected0,poly,16,8) [] = { 0xfff0, 0xfff4, 0x66, 0x66, 47 0xfff1, 0xfff5, 0x66, 0x66 }; 48 #if defined (FP16_SUPPORTED) 49 VECT_VAR_DECL (expected0, hfloat, 16, 8) [] = { 0xcc00, 0xca00, 50 0x4b4d, 0x4b4d, 51 0xcb80, 0xc980, 52 0x4b4d, 0x4b4d }; 53 #endif 54 VECT_VAR_DECL(expected0,hfloat,32,4) [] = { 0xc1800000, 0xc1600000, 55 0x42073333, 0x42073333 }; 56 57 /* Chunk 1. */ 58 VECT_VAR_DECL(expected1,int,8,8) [] = { 0xf2, 0xf6, 0x11, 0x11, 59 0xf3, 0xf7, 0x11, 0x11 }; 60 VECT_VAR_DECL(expected1,int,16,4) [] = { 0xfff1, 0xfff3, 61 0x22, 0x22 }; 62 VECT_VAR_DECL(expected1,int,32,2) [] = { 0x33, 0x33 }; 63 VECT_VAR_DECL(expected1,uint,8,8) [] = { 0xf2, 0xf6, 0x55, 0x55, 64 0xf3, 0xf7, 0x55, 0x55 }; 65 VECT_VAR_DECL(expected1,uint,16,4) [] = { 0xfff1, 0xfff3, 66 0x66, 0x66 }; 67 VECT_VAR_DECL(expected1,uint,32,2) [] = { 0x77, 0x77 }; 68 VECT_VAR_DECL(expected1,poly,8,8) [] = { 0xf2, 0xf6, 0x55, 0x55, 69 0xf3, 0xf7, 0x55, 0x55 }; 70 VECT_VAR_DECL(expected1,poly,16,4) [] = { 0xfff1, 0xfff3, 71 0x66, 0x66 }; 72 #if defined (FP16_SUPPORTED) 73 VECT_VAR_DECL (expected1, hfloat, 16, 4) [] = { 0xcb80, 0xca80, 74 0x4b4d, 0x4b4d }; 75 #endif 76 VECT_VAR_DECL(expected1,hfloat,32,2) [] = { 0x42066666, 0x42066666 }; 77 VECT_VAR_DECL(expected1,int,8,16) [] = { 0xf4, 0xfc, 0x11, 0x11, 78 0xf5, 0xfd, 0x11, 0x11, 79 0xf6, 0xfe, 0x11, 0x11, 80 0xf7, 0xff, 0x11, 0x11 }; 81 VECT_VAR_DECL(expected1,int,16,8) [] = { 0xfff2, 0xfff6, 0x22, 0x22, 82 0xfff3, 0xfff7, 0x22, 0x22 }; 83 VECT_VAR_DECL(expected1,int,32,4) [] = { 0xfffffff1, 0xfffffff3, 84 0x33, 0x33 }; 85 VECT_VAR_DECL(expected1,uint,8,16) [] = { 0xf4, 0xfc, 0x55, 0x55, 86 0xf5, 0xfd, 0x55, 0x55, 87 0xf6, 0xfe, 0x55, 0x55, 88 0xf7, 0xff, 0x55, 0x55 }; 89 VECT_VAR_DECL(expected1,uint,16,8) [] = { 0xfff2, 0xfff6, 0x66, 0x66, 90 0xfff3, 0xfff7, 0x66, 0x66 }; 91 VECT_VAR_DECL(expected1,uint,32,4) [] = { 0xfffffff1, 0xfffffff3, 92 0x77, 0x77 }; 93 VECT_VAR_DECL(expected1,poly,8,16) [] = { 0xf4, 0xfc, 0x55, 0x55, 94 0xf5, 0xfd, 0x55, 0x55, 95 0xf6, 0xfe, 0x55, 0x55, 96 0xf7, 0xff, 0x55, 0x55 }; 97 VECT_VAR_DECL(expected1,poly,16,8) [] = { 0xfff2, 0xfff6, 0x66, 0x66, 98 0xfff3, 0xfff7, 0x66, 0x66 }; 99 #if defined (FP16_SUPPORTED) 100 VECT_VAR_DECL (expected1, hfloat, 16, 8) [] = { 0xcb00, 0xc900, 101 0x4b4d, 0x4b4d, 102 0xca80, 0xc880, 103 0x4b4d, 0x4b4d }; 104 #endif 105 VECT_VAR_DECL(expected1,hfloat,32,4) [] = { 0xc1700000, 0xc1500000, 106 0x42073333, 0x42073333 }; 107 108 #define INSN_NAME vzip 109 #define TEST_MSG "VZIP/VZIPQ" 110 111 #include "vshuffle.inc" 112