Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/brig.dg/test/gimple/packed.hsail @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
40 st_global_b128 $q8, [$d0]; | 40 st_global_b128 $q8, [$d0]; |
41 | 41 |
42 ret; | 42 ret; |
43 }; | 43 }; |
44 | 44 |
45 /* The b128 load is done using uint128_t*. | 45 /* The b128 load is done using uint128_t*. */ |
46 /* { dg-final { scan-tree-dump "q0 = VIEW_CONVERT_EXPR<uint128_t>\\\(mem_read.\[0-9\]+\\\);" "original"} } */ | 46 /* { dg-final { scan-tree-dump "q0 = VIEW_CONVERT_EXPR<uint128_t>\\\(mem_read.\[0-9\]+\\\);" "original"} } */ |
47 | 47 |
48 /* Before arithmetics, the uint128_t is casted to a vector datatype. */ | 48 /* Before arithmetics, the uint128_t is casted to a vector datatype. */ |
49 /* { dg-final { scan-tree-dump "<vector\\\(16\\\) unsigned char>\\\(q0\\\) \\\+ \\\{" "original"} } */ | 49 /* { dg-final { scan-tree-dump "<vector\\\(16\\\) unsigned char>\\\(q0\\\) \\\+ \\\{" "original"} } */ |
50 | 50 |
51 /* The u8x16 constant is generated to an array with elements in reverse order */ | 51 /* The u8x16 constant is generated to an array with elements in reverse order */ |
52 /* in comparison to the HSAIL syntax. */ | 52 /* in comparison to the HSAIL syntax. */ |
53 /* { dg-final { scan-tree-dump "\\\+ { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }" "original"} } */ | 53 /* { dg-final { scan-tree-dump "\\\+ { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }" "original"} } */ |
54 | 54 |
55 /* After arithmetics, the vector DT is casted back to a uint128_t. */ | |
56 /* { dg-final { scan-tree-dump "q1 = VIEW_CONVERT_EXPR<uint128_t>" "original"} } */ | |
57 | |
58 /* Broadcasted the constant vector's lowest element and summed it up in the next line. */ | 55 /* Broadcasted the constant vector's lowest element and summed it up in the next line. */ |
59 /* { dg-final { scan-tree-dump "= { 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 };\[\n \]+_\[0-9\]+ = _\[0-9\]+ \\\+ _\[0-9\]+;" "gimple"} } */ | 56 /* { dg-final { scan-tree-dump "= { 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 };\[\n \]+\[a-z0-9_\]+ = \[a-z0-9_\]+ \\\+ \[a-z0-9_\]+;" "gimple"} } */ |
60 | 57 |
61 /* Broadcasted the registers lowest element via a VEC_PERM_EXPR that has an all-zeros mask. */ | 58 /* Broadcasted the registers lowest element via a VEC_PERM_EXPR that has an all-zeros mask. */ |
62 /* { dg-final { scan-tree-dump "VEC_PERM_EXPR <_\[0-9\]+, _\[0-9\]+, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }>;" "gimple" } } */ | 59 /* { dg-final { scan-tree-dump "VEC_PERM_EXPR <\[a-z0-9_\]+, \[a-z0-9_\]+, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }>;" "gimple" } } */ |
63 | 60 |
64 /* For the add_ss we assume performing the computation over the whole vector is cheaper than */ | 61 /* For the add_ss we assume performing the computation over the whole vector is cheaper than */ |
65 /* extracting the scalar and performing a scalar operation. This aims to stay in the vector | 62 /* extracting the scalar and performing a scalar operation. This aims to stay in the vector |
66 /* datapath as long as possible. */ | 63 /* datapath as long as possible. */ |
67 /* { dg-final { scan-tree-dump "_\[0-9\]+ = VIEW_CONVERT_EXPR<vector\\\(16\\\) unsigned char>\\\(q2\\\);\[\n \]+_\[0-9\]+ = VIEW_CONVERT_EXPR<vector\\\(16\\\) unsigned char>\\\(q3\\\);\[\n \]+_\[0-9\]+ = _\[0-9\]+ \\\+ _\[0-9\]+;" "gimple" } } */ | 64 /* { dg-final { scan-tree-dump "_\[0-9\]+ = q2 \\\+ q3;" "gimple" } } */ |
68 | 65 |
69 /* Insert the lowest element of the result to the lowest element of the result register. */ | 66 /* Insert the lowest element of the result to the lowest element of the result register. */ |
70 /* { dg-final { scan-tree-dump "= VEC_PERM_EXPR <_\[0-9\]+, new_output.\[0-9\]+_\[0-9\]+, { 16, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }>;" "gimple" } } */ | 67 /* { dg-final { scan-tree-dump "= VEC_PERM_EXPR <\[a-z0-9_\]+, new_output.\[0-9\]+_\[0-9\]+, { 16, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }>;" "gimple" } } */ |
71 | 68 |
72 /* { dg-final { scan-tree-dump "q4 = VIEW_CONVERT_EXPR<uint128_t>\\\(s_output.\[0-9\]+_\[0-9\]+\\\);" "gimple" } } */ | 69 /* FIXME */ |
70 /* { dg-final { scan-tree-dump "q4 = \(VIEW_CONVERT_EXPR<uint128_t>\\\()?s_output.\[0-9\]+\(_\[0-9\]+\)*\\\)?;" "gimple" } } */ | |
73 | 71 |
74 /* The saturating arithmetics are (curently) implemented using scalar builtin calls. */ | 72 /* The saturating arithmetics are (curently) implemented using scalar builtin calls. */ |
75 /* { dg-final { scan-tree-dump-times "= __builtin___hsail_sat_add_u8" 64 "gimple" } } */ | 73 /* { dg-final { scan-tree-dump-times "= __builtin___hsail_sat_add_u8" 64 "gimple" } } */ |
76 | 74 |
77 /* A single operand vector instr (neg.) */ | 75 /* A single operand vector instr (neg.) */ |
78 /* { dg-final { scan-tree-dump " = VIEW_CONVERT_EXPR<vector\\\(8\\\) signed short>\\\(q8\\\);\[\n \]+_\[0-9\]+ = -_\[0-9\]+;\[\n \]+" "gimple" } } */ | 76 /* { dg-final { scan-tree-dump "= VIEW_CONVERT_EXPR<vector\\\(8\\\) signed short>\\\(\(s_output.\[0-9\]+_\[0-9\]+|q8\)\\\);\[\n \]+q9 = -_\[0-9\]+;\[\n \]+" "gimple" } } */ |