Skip to content

Commit dbdb686

Browse files
authored
Merge pull request #3625 from RajalakshmiSR/P10_store
POWER10: Changing store instructions for Level1 functions
2 parents ce814e8 + b62173c commit dbdb686

16 files changed

+541
-274
lines changed

kernel/power/ccopy_microk_power10.c

Lines changed: 0 additions & 152 deletions
This file was deleted.

kernel/power/ccopy_power10.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
#include "common.h"
2929

3030
#if defined(__VEC__) || defined(__ALTIVEC__)
31-
#include "ccopy_microk_power10.c"
31+
#include "copy_microk_power10.c"
3232
#endif
3333

3434
#ifndef HAVE_KERNEL
@@ -86,7 +86,7 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y)
8686
if ( (inc_x == 1) && (inc_y == 1 ))
8787
{
8888

89-
BLASLONG n1 = n & -32;
89+
BLASLONG n1 = n & -64;
9090
if ( n1 > 0 )
9191
{
9292
copy_kernel(n1, x, y);

kernel/power/copy_microk_power10.c

Lines changed: 143 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -61,37 +61,97 @@ static void copy_kernel (BLASLONG n, FLOAT *x, FLOAT *y)
6161
".align 5 \n"
6262
"one%=: \n\t"
6363

64-
"stxvp 32, 0(%3) \n\t"
65-
"stxvp 34, 32(%3) \n\t"
66-
"stxvp 36, 64(%3) \n\t"
67-
"stxvp 38, 96(%3) \n\t"
64+
#if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
65+
"stxv 32, 0(%3) \n\t"
66+
"stxv 33, 16(%3) \n\t"
67+
"stxv 34, 32(%3) \n\t"
68+
"stxv 35, 48(%3) \n\t"
69+
"stxv 36, 64(%3) \n\t"
70+
"stxv 37, 80(%3) \n\t"
71+
"stxv 38, 96(%3) \n\t"
72+
"stxv 39, 112(%3) \n\t"
73+
#else
74+
"stxv 33, 0(%3) \n\t"
75+
"stxv 32, 16(%3) \n\t"
76+
"stxv 35, 32(%3) \n\t"
77+
"stxv 34, 48(%3) \n\t"
78+
"stxv 37, 64(%3) \n\t"
79+
"stxv 36, 80(%3) \n\t"
80+
"stxv 39, 96(%3) \n\t"
81+
"stxv 38, 112(%3) \n\t"
82+
#endif
6883
"lxvp 32, 0(%2) \n\t"
6984
"lxvp 34, 32(%2) \n\t"
7085
"lxvp 36, 64(%2) \n\t"
7186
"lxvp 38, 96(%2) \n\t"
7287

73-
"stxvp 40, 128(%3) \n\t"
74-
"stxvp 42, 160(%3) \n\t"
75-
"stxvp 44, 192(%3) \n\t"
76-
"stxvp 46, 224(%3) \n\t"
88+
#if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
89+
"stxv 40, 128(%3) \n\t"
90+
"stxv 41, 144(%3) \n\t"
91+
"stxv 42, 160(%3) \n\t"
92+
"stxv 43, 176(%3) \n\t"
93+
"stxv 44, 192(%3) \n\t"
94+
"stxv 45, 208(%3) \n\t"
95+
"stxv 46, 224(%3) \n\t"
96+
"stxv 47, 240(%3) \n\t"
97+
#else
98+
"stxv 41, 128(%3) \n\t"
99+
"stxv 40, 144(%3) \n\t"
100+
"stxv 43, 160(%3) \n\t"
101+
"stxv 42, 176(%3) \n\t"
102+
"stxv 45, 192(%3) \n\t"
103+
"stxv 44, 208(%3) \n\t"
104+
"stxv 47, 224(%3) \n\t"
105+
"stxv 46, 240(%3) \n\t"
106+
#endif
77107
"lxvp 40, 128(%2) \n\t"
78108
"lxvp 42, 160(%2) \n\t"
79109
"lxvp 44, 192(%2) \n\t"
80110
"lxvp 46, 224(%2) \n\t"
81111

82-
"stxvp 48, 256(%3) \n\t"
83-
"stxvp 50, 288(%3) \n\t"
84-
"stxvp 52, 320(%3) \n\t"
85-
"stxvp 54, 352(%3) \n\t"
112+
#if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
113+
"stxv 48, 256(%3) \n\t"
114+
"stxv 49, 272(%3) \n\t"
115+
"stxv 50, 288(%3) \n\t"
116+
"stxv 51, 304(%3) \n\t"
117+
"stxv 52, 320(%3) \n\t"
118+
"stxv 53, 336(%3) \n\t"
119+
"stxv 54, 352(%3) \n\t"
120+
"stxv 55, 368(%3) \n\t"
121+
#else
122+
"stxv 49, 256(%3) \n\t"
123+
"stxv 48, 272(%3) \n\t"
124+
"stxv 51, 288(%3) \n\t"
125+
"stxv 50, 304(%3) \n\t"
126+
"stxv 53, 320(%3) \n\t"
127+
"stxv 52, 336(%3) \n\t"
128+
"stxv 55, 352(%3) \n\t"
129+
"stxv 54, 368(%3) \n\t"
130+
#endif
86131
"lxvp 48, 256(%2) \n\t"
87132
"lxvp 50, 288(%2) \n\t"
88133
"lxvp 52, 320(%2) \n\t"
89134
"lxvp 54, 352(%2) \n\t"
90135

91-
"stxvp 56, 384(%3) \n\t"
92-
"stxvp 58, 416(%3) \n\t"
93-
"stxvp 60, 448(%3) \n\t"
94-
"stxvp 62, 480(%3) \n\t"
136+
#if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
137+
"stxv 56, 384(%3) \n\t"
138+
"stxv 57, 400(%3) \n\t"
139+
"stxv 58, 416(%3) \n\t"
140+
"stxv 59, 432(%3) \n\t"
141+
"stxv 60, 448(%3) \n\t"
142+
"stxv 61, 464(%3) \n\t"
143+
"stxv 62, 480(%3) \n\t"
144+
"stxv 63, 496(%3) \n\t"
145+
#else
146+
"stxv 57, 384(%3) \n\t"
147+
"stxv 56, 400(%3) \n\t"
148+
"stxv 59, 416(%3) \n\t"
149+
"stxv 58, 432(%3) \n\t"
150+
"stxv 61, 448(%3) \n\t"
151+
"stxv 60, 464(%3) \n\t"
152+
"stxv 63, 480(%3) \n\t"
153+
"stxv 62, 496(%3) \n\t"
154+
#endif
95155
"lxvp 56, 384(%2) \n\t"
96156
"lxvp 58, 416(%2) \n\t"
97157
"lxvp 60, 448(%2) \n\t"
@@ -111,22 +171,73 @@ static void copy_kernel (BLASLONG n, FLOAT *x, FLOAT *y)
111171

112172
"two%=: \n\t"
113173

114-
"stxvp 32, 0(%3) \n\t"
115-
"stxvp 34, 32(%3) \n\t"
116-
"stxvp 36, 64(%3) \n\t"
117-
"stxvp 38, 96(%3) \n\t"
118-
"stxvp 40, 128(%3) \n\t"
119-
"stxvp 42, 160(%3) \n\t"
120-
"stxvp 44, 192(%3) \n\t"
121-
"stxvp 46, 224(%3) \n\t"
122-
"stxvp 48, 256(%3) \n\t"
123-
"stxvp 50, 288(%3) \n\t"
124-
"stxvp 52, 320(%3) \n\t"
125-
"stxvp 54, 352(%3) \n\t"
126-
"stxvp 56, 384(%3) \n\t"
127-
"stxvp 58, 416(%3) \n\t"
128-
"stxvp 60, 448(%3) \n\t"
129-
"stxvp 62, 480(%3) \n\t"
174+
#if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
175+
"stxv 32, 0(%3) \n\t"
176+
"stxv 33, 16(%3) \n\t"
177+
"stxv 34, 32(%3) \n\t"
178+
"stxv 35, 48(%3) \n\t"
179+
"stxv 36, 64(%3) \n\t"
180+
"stxv 37, 80(%3) \n\t"
181+
"stxv 38, 96(%3) \n\t"
182+
"stxv 39, 112(%3) \n\t"
183+
"stxv 40, 128(%3) \n\t"
184+
"stxv 41, 144(%3) \n\t"
185+
"stxv 42, 160(%3) \n\t"
186+
"stxv 43, 176(%3) \n\t"
187+
"stxv 44, 192(%3) \n\t"
188+
"stxv 45, 208(%3) \n\t"
189+
"stxv 46, 224(%3) \n\t"
190+
"stxv 47, 240(%3) \n\t"
191+
"stxv 48, 256(%3) \n\t"
192+
"stxv 49, 272(%3) \n\t"
193+
"stxv 50, 288(%3) \n\t"
194+
"stxv 51, 304(%3) \n\t"
195+
"stxv 52, 320(%3) \n\t"
196+
"stxv 53, 336(%3) \n\t"
197+
"stxv 54, 352(%3) \n\t"
198+
"stxv 55, 368(%3) \n\t"
199+
"stxv 56, 384(%3) \n\t"
200+
"stxv 57, 400(%3) \n\t"
201+
"stxv 58, 416(%3) \n\t"
202+
"stxv 59, 432(%3) \n\t"
203+
"stxv 60, 448(%3) \n\t"
204+
"stxv 61, 464(%3) \n\t"
205+
"stxv 62, 480(%3) \n\t"
206+
"stxv 63, 496(%3) \n\t"
207+
#else
208+
"stxv 33, 0(%3) \n\t"
209+
"stxv 32, 16(%3) \n\t"
210+
"stxv 35, 32(%3) \n\t"
211+
"stxv 34, 48(%3) \n\t"
212+
"stxv 37, 64(%3) \n\t"
213+
"stxv 36, 80(%3) \n\t"
214+
"stxv 39, 96(%3) \n\t"
215+
"stxv 38, 112(%3) \n\t"
216+
"stxv 41, 128(%3) \n\t"
217+
"stxv 40, 144(%3) \n\t"
218+
"stxv 43, 160(%3) \n\t"
219+
"stxv 42, 176(%3) \n\t"
220+
"stxv 45, 192(%3) \n\t"
221+
"stxv 44, 208(%3) \n\t"
222+
"stxv 47, 224(%3) \n\t"
223+
"stxv 46, 240(%3) \n\t"
224+
"stxv 49, 256(%3) \n\t"
225+
"stxv 48, 272(%3) \n\t"
226+
"stxv 51, 288(%3) \n\t"
227+
"stxv 50, 304(%3) \n\t"
228+
"stxv 53, 320(%3) \n\t"
229+
"stxv 52, 336(%3) \n\t"
230+
"stxv 55, 352(%3) \n\t"
231+
"stxv 54, 368(%3) \n\t"
232+
"stxv 57, 384(%3) \n\t"
233+
"stxv 56, 400(%3) \n\t"
234+
"stxv 59, 416(%3) \n\t"
235+
"stxv 58, 432(%3) \n\t"
236+
"stxv 61, 448(%3) \n\t"
237+
"stxv 60, 464(%3) \n\t"
238+
"stxv 63, 480(%3) \n\t"
239+
"stxv 62, 496(%3) \n\t"
240+
#endif
130241

131242
"#n=%1 x=%4=%2 y=%0=%3"
132243
:

0 commit comments

Comments
 (0)