comparison gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
2 /* { dg-add-options bind_pic_locally } */ 2 /* { dg-add-options bind_pic_locally } */
3 3
4 #include <stdarg.h> 4 #include <stdarg.h>
5 #include "tree-vect.h" 5 #include "tree-vect.h"
6 6
7 #define N 32 7 #if VECTOR_BITS > 128
8 #define NSHORTS (VECTOR_BITS / 16)
9 #else
10 #define NSHORTS 8
11 #endif
12
13 #define NINTS (NSHORTS / 2)
14 #define N (NSHORTS * 4)
8 15
9 short sa[N]; 16 short sa[N];
10 short sb[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 17 short sb[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
11 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}; 18 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31};
12 int ia[N]; 19 int ia[N];
25 32
26 /* Multiple types with different sizes, used in idependent 33 /* Multiple types with different sizes, used in idependent
27 copmutations. Vectorizable. */ 34 copmutations. Vectorizable. */
28 for (i = 0; i < n; i++) 35 for (i = 0; i < n; i++)
29 { 36 {
30 sa[i+7] = sb[i]; 37 sa[i + NSHORTS - 1] = sb[i];
31 ia[i+3] = ib[i+1]; 38 ia[i + NINTS - 1] = ib[i + 1];
32 } 39 }
33 40
34 /* check results: */ 41 /* check results: */
35 for (i = 0; i < n; i++) 42 for (i = 0; i < n; i++)
36 { 43 {
37 if (sa[i+7] != sb[i] || ia[i+3] != ib[i+1]) 44 if (sa[i + NSHORTS - 1] != sb[i] || ia[i + NINTS - 1] != ib[i + 1])
38 abort (); 45 abort ();
39 } 46 }
40 47
41 return 0; 48 return 0;
42 } 49 }
55 62
56 /* Multiple types with different sizes, used in independent 63 /* Multiple types with different sizes, used in independent
57 copmutations. */ 64 copmutations. */
58 for (i = 0; i < n; i++) 65 for (i = 0; i < n; i++)
59 { 66 {
60 ia[i+3] = ib[i]; 67 ia[i + NINTS - 1] = ib[i];
61 sa[i+3] = sb[i+1]; 68 sa[i + NINTS - 1] = sb[i + 1];
62 } 69 }
63 70
64 /* check results: */ 71 /* check results: */
65 for (i = 0; i < n; i++) 72 for (i = 0; i < n; i++)
66 { 73 {
67 if (sa[i+3] != sb[i+1] || ia[i+3] != ib[i]) 74 if (sa[i + NINTS - 1] != sb[i + 1] || ia[i + NINTS - 1] != ib[i])
68 abort (); 75 abort ();
69 } 76 }
70 77
71 return 0; 78 return 0;
72 } 79 }
73 80
74 int main (void) 81 int main (void)
75 { 82 {
76 check_vect (); 83 check_vect ();
77 84
78 main1 (N-7); 85 main1 (N - NSHORTS + 1);
79 main2 (N-3); 86 main2 (N - NINTS + 1);
80 87
81 return 0; 88 return 0;
82 } 89 }
83 90
84 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ 91 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */
85 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail {{ vect_no_align && { ! vect_hw_misalign } } || {vect_sizes_32B_16B }}} } } */ 92 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail { { ! vect_unaligned_possible } || vect_sizes_32B_16B } } } } */
86 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 4 "vect" { target { vect_no_align && { { ! vect_hw_misalign } && vect_sizes_32B_16B } } }} } */ 93 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 4 "vect" { target { vect_no_align && { { ! vect_hw_misalign } && vect_sizes_32B_16B } } }} } */
87 94