2 /* { dg-require-effective-target p8vector_hw } */
3 /* { dg-require-effective-target int128 } */
4 /* { dg-options "-mdejagnu-cpu=power8 -O3" } */
20 int result_wrong_sc (vector
signed char vec_expected
,
21 vector
signed char vec_actual
)
25 for (i
= 0; i
< 16; i
++)
26 if (vec_expected
[i
] != vec_actual
[i
])
32 void print_sc (vector
signed char vec_expected
,
33 vector
signed char vec_actual
)
37 printf("expected signed char data\n");
38 for (i
= 0; i
< 16; i
++)
39 printf(" %d,", vec_expected
[i
]);
41 printf("\nactual signed char data\n");
42 for (i
= 0; i
< 16; i
++)
43 printf(" %d,", vec_actual
[i
]);
47 int result_wrong_uc (vector
unsigned char vec_expected
,
48 vector
unsigned char vec_actual
)
52 for (i
= 0; i
< 16; i
++)
53 if (vec_expected
[i
] != vec_actual
[i
])
59 void print_uc (vector
unsigned char vec_expected
,
60 vector
unsigned char vec_actual
)
64 printf("expected unsigned char data\n");
65 for (i
= 0; i
< 16; i
++)
66 printf(" %d,", vec_expected
[i
]);
68 printf("\nactual unsigned char data\n");
69 for (i
= 0; i
< 16; i
++)
70 printf(" %d,", vec_actual
[i
]);
74 int result_wrong_us (vector
unsigned short vec_expected
,
75 vector
unsigned short vec_actual
)
79 for (i
= 0; i
< 8; i
++)
80 if (vec_expected
[i
] != vec_actual
[i
])
86 void print_us (vector
unsigned short vec_expected
,
87 vector
unsigned short vec_actual
)
91 printf("expected unsigned short data\n");
92 for (i
= 0; i
< 8; i
++)
93 printf(" %d,", vec_expected
[i
]);
95 printf("\nactual unsigned short data\n");
96 for (i
= 0; i
< 8; i
++)
97 printf(" %d,", vec_actual
[i
]);
101 int result_wrong_ss (vector
signed short vec_expected
,
102 vector
signed short vec_actual
)
106 for (i
= 0; i
< 8; i
++)
107 if (vec_expected
[i
] != vec_actual
[i
])
113 void print_ss (vector
signed short vec_expected
,
114 vector
signed short vec_actual
)
118 printf("expected signed short data\n");
119 for (i
= 0; i
< 8; i
++)
120 printf(" %d,", vec_expected
[i
]);
122 printf("\nactual signed short data\n");
123 for (i
= 0; i
< 8; i
++)
124 printf(" %d,", vec_actual
[i
]);
128 int result_wrong_ui (vector
unsigned int vec_expected
,
129 vector
unsigned int vec_actual
)
133 for (i
= 0; i
< 4; i
++)
134 if (vec_expected
[i
] != vec_actual
[i
])
140 void print_ui (vector
unsigned int vec_expected
,
141 vector
unsigned int vec_actual
)
145 printf("expected unsigned int data\n");
146 for (i
= 0; i
< 4; i
++)
147 printf(" %d,", vec_expected
[i
]);
149 printf("\nactual unsigned int data\n");
150 for (i
= 0; i
< 4; i
++)
151 printf(" %d,", vec_actual
[i
]);
155 int result_wrong_si (vector
signed int vec_expected
,
156 vector
signed int vec_actual
)
160 for (i
= 0; i
< 4; i
++)
161 if (vec_expected
[i
] != vec_actual
[i
])
167 void print_si (vector
signed int vec_expected
,
168 vector
signed int vec_actual
)
172 printf("expected signed int data\n");
173 for (i
= 0; i
< 4; i
++)
174 printf(" %d,", vec_expected
[i
]);
176 printf("\nactual signed int data\n");
177 for (i
= 0; i
< 4; i
++)
178 printf(" %d,", vec_actual
[i
]);
182 int result_wrong_ull (vector
unsigned long long vec_expected
,
183 vector
unsigned long long vec_actual
)
187 for (i
= 0; i
< 2; i
++)
188 if (vec_expected
[i
] != vec_actual
[i
])
194 void print_ull (vector
unsigned long long vec_expected
,
195 vector
unsigned long long vec_actual
)
199 printf("expected unsigned long long data\n");
200 for (i
= 0; i
< 2; i
++)
201 printf(" %llu,", vec_expected
[i
]);
203 printf("\nactual unsigned long long data\n");
204 for (i
= 0; i
< 2; i
++)
205 printf(" %llu,", vec_actual
[i
]);
209 int result_wrong_sll (vector
signed long long vec_expected
,
210 vector
signed long long vec_actual
)
214 for (i
= 0; i
< 2; i
++)
215 if (vec_expected
[i
] != vec_actual
[i
])
221 void print_sll (vector
signed long long vec_expected
,
222 vector
signed long long vec_actual
)
226 printf("expected signed long long data\n");
227 for (i
= 0; i
< 2; i
++)
228 printf(" %lld,", vec_expected
[i
]);
230 printf("\nactual signed long long data\n");
231 for (i
= 0; i
< 2; i
++)
232 printf(" %lld,", vec_actual
[i
]);
236 int result_wrong_u128 (vector __uint128_t vec_expected
,
237 vector __uint128_t vec_actual
)
241 if (vec_expected
[0] != vec_actual
[0])
247 void print_u128 (vector __uint128_t vec_expected
,
248 vector __uint128_t vec_actual
)
250 printf("expected uint128 data\n");
251 printf(" %llu%llu\n", (unsigned long long)(vec_expected
[0] >> 64),
252 (unsigned long long)(vec_expected
[0] & 0xFFFFFFFFFFFFFFFF));
254 printf("\nactual uint128 data\n");
255 printf(" %llu%llu\n", (unsigned long long)(vec_actual
[0] >> 64),
256 (unsigned long long)(vec_actual
[0] & 0xFFFFFFFFFFFFFFFF));
260 int result_wrong_s128 (vector __int128_t vec_expected
,
261 vector __int128_t vec_actual
)
265 if (vec_expected
[0] != vec_actual
[0])
271 void print_s128 (vector __int128 vec_expected
,
272 vector __int128 vec_actual
)
274 printf("expected int128 data\n");
275 printf(" %lld%llu\n", (signed long long)(vec_expected
[0] >> 64),
276 (unsigned long long)(vec_expected
[0] & 0xFFFFFFFFFFFFFFFF));
278 printf("\nactual int128 data\n");
279 printf(" %lld%llu\n", (signed long long)(vec_actual
[0] >> 64),
280 (unsigned long long)(vec_actual
[0] & 0xFFFFFFFFFFFFFFFF));
283 int result_wrong_d (vector
double vec_expected
,
284 vector
double vec_actual
)
288 for (i
= 0; i
< 2; i
++)
289 if (vec_expected
[i
] != vec_actual
[i
])
295 void print_d (vector
double vec_expected
,
296 vector
double vec_actual
)
300 printf("expected double data\n");
301 for (i
= 0; i
< 2; i
++)
302 printf(" %f,", vec_expected
[i
]);
304 printf("\nactual double data\n");
305 for (i
= 0; i
< 2; i
++)
306 printf(" %f,", vec_actual
[i
]);
310 int result_wrong_f (vector
float vec_expected
,
311 vector
float vec_actual
)
315 for (i
= 0; i
< 4; i
++)
316 if (vec_expected
[i
] != vec_actual
[i
])
322 void print_f (vector
float vec_expected
,
323 vector
float vec_actual
)
327 printf("expected float data\n");
328 for (i
= 0; i
< 4; i
++)
329 printf(" %f,", vec_expected
[i
]);
331 printf("\nactual float data\n");
332 for (i
= 0; i
< 4; i
++)
333 printf(" %f,", vec_actual
[i
]);
340 vector
signed char store_data_sc
;
341 vector
unsigned char store_data_uc
;
342 vector
signed int store_data_si
;
343 vector
unsigned int store_data_ui
;
344 vector __int128_t store_data_s128
;
345 vector __uint128_t store_data_u128
;
346 vector
signed long long int store_data_sll
;
347 vector
unsigned long long int store_data_ull
;
348 vector
signed short store_data_ss
;
349 vector
unsigned short store_data_us
;
350 vector
double store_data_d
;
351 vector
float store_data_f
;
353 signed char *address_sc
;
354 unsigned char *address_uc
;
355 signed int *address_si
;
356 unsigned int *address_ui
;
357 __int128_t
*address_s128
;
358 __uint128_t
*address_u128
;
359 signed long long int *address_sll
;
360 unsigned long long int *address_ull
;
361 signed short int *address_ss
;
362 unsigned short int *address_us
;
366 vector
unsigned char *datap
;
368 vector
unsigned char vec_uc_expected1
, vec_uc_result1
;
369 vector
signed char vec_sc_expected1
, vec_sc_result1
;
370 vector
signed int vec_si_expected1
, vec_si_result1
;
371 vector
unsigned int vec_ui_expected1
, vec_ui_result1
;
372 vector __int128_t vec_s128_expected1
, vec_s128_result1
;
373 vector __uint128_t vec_u128_expected1
, vec_u128_result1
;
374 vector
signed long long int vec_sll_expected1
, vec_sll_result1
;
375 vector
unsigned long long int vec_ull_expected1
, vec_ull_result1
;
376 vector
signed short int vec_ss_expected1
, vec_ss_result1
;
377 vector
unsigned short int vec_us_expected1
, vec_us_result1
;
378 vector
double vec_d_expected1
, vec_d_result1
;
379 vector
float vec_f_expected1
, vec_f_result1
;
381 signed long long disp
;
385 vec_sc_expected1
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
386 1, 2, 3, 4, 5, 6, 7, 8 };
387 store_data_sc
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
388 1, 2, 3, 4, 5, 6, 7, 8 };
391 vec_sc_result1
[i
] = 0;
393 address_sc
= &vec_sc_result1
[0];
395 vec_xst (store_data_sc
, disp
, address_sc
);
397 if (result_wrong_sc (vec_sc_expected1
, vec_sc_result1
))
400 printf("Error: vec_xst, sc disp = 0, result does not match expected result\n");
401 print_sc (vec_sc_expected1
, vec_sc_result1
);
408 vec_sc_expected1
= (vector
signed char){ 0, 0, -7, -6, -5, -4, -3, -2,
409 -1, 0, 1, 2, 3, 4, 5, 6 };
410 store_data_sc
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
411 1, 2, 3, 4, 5, 6, 7, 8 };
414 vec_sc_result1
[i
] = 0;
416 address_sc
= &vec_sc_result1
[0];
418 vec_xst (store_data_sc
, disp
, address_sc
);
420 if (result_wrong_sc (vec_sc_expected1
, vec_sc_result1
))
423 printf("Error: vec_xst, sc disp = 2, result does not match expected result\n");
424 print_sc (vec_sc_expected1
, vec_sc_result1
);
431 vec_uc_expected1
= (vector
unsigned char){ 0, 1, 2, 3, 4, 5, 6, 7,
432 8, 9, 10, 11, 12, 13, 14, 15 };
433 store_data_uc
= (vector
unsigned char){ 0, 1, 2, 3, 4, 5, 6, 7,
434 8, 9, 10, 11, 12, 13, 14, 15 };
437 vec_uc_result1
[i
] = 0;
439 address_uc
= &vec_uc_result1
[0];
441 vec_xst (store_data_uc
, disp
, address_uc
);
443 if (result_wrong_uc (vec_uc_expected1
, vec_uc_result1
))
446 printf("Error: vec_xst, uc disp = 0, result does not match expected result\n");
447 print_uc (vec_uc_expected1
, vec_uc_result1
);
454 vec_ss_expected1
= (vector
signed short int){ -4, -3, -2, -1, 0, 1, 2, 3 };
455 store_data_ss
= (vector
signed short int){ -4, -3, -2, -1, 0, 1, 2, 3 };
458 vec_ss_result1
[i
] = 0;
460 address_ss
= &vec_ss_result1
[0];
462 vec_xst (store_data_ss
, disp
, address_ss
);
464 if (result_wrong_ss (vec_ss_expected1
, vec_ss_result1
))
467 printf("Error: vec_xst, ss disp = 0, result does not match expected result\n");
468 print_ss (vec_ss_expected1
, vec_ss_result1
);
475 vec_us_expected1
= (vector
unsigned short int){ 0, 1, 2, 3, 4, 5, 6, 7 };
476 store_data_us
= (vector
unsigned short int){ 0, 1, 2, 3, 4, 5, 6, 7 };
479 vec_us_result1
[i
] = 0;
481 address_us
= &vec_us_result1
[0];
483 vec_xst (store_data_us
, disp
, address_us
);
485 if (result_wrong_us (vec_us_expected1
, vec_us_result1
))
488 printf("Error: vec_xst, us disp = 0, result does not match expected result\n");
489 print_us (vec_us_expected1
, vec_us_result1
);
496 vec_si_expected1
= (vector
signed int){ -2, -1, 0, 1 };
497 store_data_si
= (vector
signed int){ -2, -1, 0, 1 };
500 vec_si_result1
[i
] = 0;
502 address_si
= &vec_si_result1
[0];
504 vec_xst (store_data_si
, disp
, address_si
);
506 if (result_wrong_si (vec_si_expected1
, vec_si_result1
))
509 printf("Error: vec_xst, si disp = 0, result does not match expected result\n");
510 print_si (vec_si_expected1
, vec_si_result1
);
517 vec_ui_expected1
= (vector
unsigned int){ -2, -1, 0, 1 };
518 store_data_ui
= (vector
unsigned int){ -2, -1, 0, 1 };
521 vec_ui_result1
[i
] = 0;
523 address_ui
= &vec_ui_result1
[0];
525 vec_xst (store_data_ui
, disp
, address_ui
);
527 if (result_wrong_ui (vec_ui_expected1
, vec_ui_result1
))
530 printf("Error: vec_xst, ui disp = 0, result does not match expected result\n");
531 print_ui (vec_ui_expected1
, vec_ui_result1
);
538 vec_sll_expected1
= (vector
signed long long){ -1, 0 };
539 store_data_sll
= (vector
signed long long ){ -1, 0 };
542 vec_sll_result1
[i
] = 0;
544 address_sll
= (signed long long *)(&vec_sll_result1
[0]);
546 vec_xst (store_data_sll
, disp
, address_sll
);
548 if (result_wrong_sll (vec_sll_expected1
, vec_sll_result1
))
551 printf("Error: vec_xst, sll disp = 0, result does not match expected result\n");
552 print_sll (vec_sll_expected1
, vec_sll_result1
);
559 vec_ull_expected1
= (vector
unsigned long long){ 0, 1 };
560 store_data_ull
= (vector
unsigned long long){ 0, 1 };
563 vec_ull_result1
[i
] = 0;
565 address_ull
= (unsigned long long int *)(&vec_ull_result1
[0]);
567 vec_xst (store_data_ull
, disp
, address_ull
);
569 if (result_wrong_ull (vec_ull_expected1
, vec_ull_result1
))
572 printf("Error: vec_xst, ull disp = 0, result does not match expected result\n");
573 print_ull (vec_ull_expected1
, vec_ull_result1
);
580 vec_s128_expected1
= (vector __int128_t
){ 12345 };
581 store_data_s128
= (vector __int128_t
){ 12345 };
583 vec_s128_result1
[0] = 0;
585 address_s128
= (__int128_t
*)(&vec_s128_result1
[0]);
587 vec_xst (store_data_s128
, disp
, address_s128
);
589 if (result_wrong_s128 (vec_s128_expected1
, vec_s128_result1
))
592 printf("Error: vec_xst, s128 disp = 0, result does not match expected result\n");
593 print_s128 (vec_s128_expected1
, vec_s128_result1
);
600 vec_u128_expected1
= (vector __uint128_t
){ 12345 };
601 store_data_u128
= (vector __uint128_t
){ 12345 };
603 vec_u128_result1
[0] = 0;
605 address_u128
= (__int128_t
*)(&vec_u128_result1
[0]);
607 vec_xst (store_data_u128
, disp
, address_u128
);
609 if (result_wrong_u128 (vec_u128_expected1
, vec_u128_result1
))
612 printf("Error: vec_xst, u128 disp = 0, result does not match expected result\n");
613 print_u128 (vec_u128_expected1
, vec_u128_result1
);
620 vec_d_expected1
= (vector
double){ 0, 1 };
621 store_data_d
= (vector
double){ 0, 1 };
624 vec_d_result1
[i
] = 0;
626 address_d
= (double *)(&vec_d_result1
[0]);
628 vec_xst (store_data_d
, disp
, address_d
);
630 if (result_wrong_d (vec_d_expected1
, vec_d_result1
))
633 printf("Error: vec_xst, double disp = 0, result does not match expected result\n");
634 print_d (vec_d_expected1
, vec_d_result1
);
641 vec_f_expected1
= (vector
float){ 0, 1 };
642 store_data_f
= (vector
float){ 0, 1 };
645 vec_f_result1
[i
] = 0;
647 address_f
= (float *)(&vec_f_result1
[0]);
649 vec_xst (store_data_f
, disp
, address_f
);
651 if (result_wrong_f (vec_f_expected1
, vec_f_result1
))
654 printf("Error: vec_xst, float disp = 0, result does not match expected result\n");
655 print_f (vec_f_expected1
, vec_f_result1
);
661 /* VEC_XST_BE, these always load in BE order regardless of
662 machine endianess. */
664 #ifdef __BIG_ENDIAN__
665 vec_sc_expected1
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
666 1, 2, 3, 4, 5, 6, 7, 8 };
668 vec_sc_expected1
= (vector
signed char){ 8, 7, 6, 5, 4, 3, 2, 1,
669 0, -1, -2, -3, -4, -5, -6, -7 };
671 store_data_sc
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
672 1, 2, 3, 4, 5, 6, 7, 8 };
675 vec_sc_result1
[i
] = 0;
677 address_sc
= &vec_sc_result1
[0];
679 vec_xst_be (store_data_sc
, disp
, address_sc
);
681 if (result_wrong_sc (vec_sc_expected1
, vec_sc_result1
))
684 printf("Error: vec_xst_be, sc disp = 0, result does not match expected result\n");
685 print_sc (vec_sc_expected1
, vec_sc_result1
);
692 #ifdef __BIG_ENDIAN__
693 vec_sc_expected1
= (vector
signed char){ 0, 0, -7, -6, -5, -4, -3, -2,
694 -1, 0, 1, 2, 3, 4, 5, 6 };
696 vec_sc_expected1
= (vector
signed char){ 0, 0, 8, 7, 6, 5, 4, 3,
697 2, 1, 0, -1, -2, -3, -4, -5 };
699 store_data_sc
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
700 1, 2, 3, 4, 5, 6, 7, 8 };
703 vec_sc_result1
[i
] = 0;
705 address_sc
= &vec_sc_result1
[0];
707 vec_xst_be (store_data_sc
, disp
, address_sc
);
709 if (result_wrong_sc (vec_sc_expected1
, vec_sc_result1
))
712 printf("Error: vec_xst_be, sc disp = 2, result does not match expected result\n");
713 print_sc (vec_sc_expected1
, vec_sc_result1
);
720 #ifdef __BIG_ENDIAN__
721 vec_uc_expected1
= (vector
unsigned char){ 0, 1, 2, 3, 4, 5, 6, 7,
722 8, 9, 10, 11, 12, 13, 14, 15 };
724 vec_uc_expected1
= (vector
unsigned char){ 15, 14, 13, 12, 11, 10, 9, 8,
725 7, 6, 5, 4, 3, 2, 1 };
727 store_data_uc
= (vector
unsigned char){ 0, 1, 2, 3, 4, 5, 6, 7,
728 8, 9, 10, 11, 12, 13, 14, 15 };
731 vec_uc_result1
[i
] = 0;
733 address_uc
= &vec_uc_result1
[0];
735 vec_xst_be (store_data_uc
, disp
, address_uc
);
737 if (result_wrong_uc (vec_uc_expected1
, vec_uc_result1
))
740 printf("Error: vec_xst_be, uc disp = 0, result does not match expected result\n");
741 print_uc (vec_uc_expected1
, vec_uc_result1
);
748 #ifdef __BIG_ENDIAN__
749 vec_si_expected1
= (vector
signed int){ 0, 0, -8, -7 };
751 vec_si_expected1
= (vector
signed int){ 0, 0, -5, -6 };
753 store_data_si
= (vector
signed int){ -8, -7, -6, -5 };
756 vec_si_result1
[i
] = 0;
758 address_si
= &vec_si_result1
[0];
760 vec_xst_be (store_data_si
, disp
, address_si
);
762 if (result_wrong_si (vec_si_expected1
, vec_si_result1
))
765 printf("Error: vec_xst_be, si disp = %d, result does not match expected result\n", disp
);
766 print_si (vec_si_expected1
, vec_si_result1
);
773 #ifdef __BIG_ENDIAN__
774 vec_ui_expected1
= (vector
unsigned int){ 0, 1, 2, 3 };
776 vec_ui_expected1
= (vector
unsigned int){ 3, 2, 1, 0 };
778 store_data_ui
= (vector
unsigned int){ 0, 1, 2, 3 };
781 vec_ui_result1
[i
] = 0;
783 address_ui
= &vec_ui_result1
[0];
785 vec_xst_be (store_data_ui
, disp
, address_ui
);
787 if (result_wrong_ui (vec_ui_expected1
, vec_ui_result1
))
790 printf("Error: vec_xst_be, ui disp = 0, result does not match expected result\n");
791 print_ui (vec_ui_expected1
, vec_ui_result1
);
798 #ifdef __BIG_ENDIAN__
799 vec_ss_expected1
= (vector
signed short int){ -4, -3, -2, -1, 0, 1, 2, 3 };
801 vec_ss_expected1
= (vector
signed short int){ 3, 2, 1, 0, -1, -2, -3, -4 };
803 store_data_ss
= (vector
signed short int){ -4, -3, -2, -1, 0, 1, 2, 3 };
806 vec_ss_result1
[i
] = 0;
808 address_ss
= &vec_ss_result1
[0];
810 vec_xst_be (store_data_ss
, disp
, address_ss
);
812 if (result_wrong_ss (vec_ss_expected1
, vec_ss_result1
))
815 printf("Error: vec_xst_be, ss disp = 0, result does not match expected result\n");
816 print_ss (vec_ss_expected1
, vec_ss_result1
);
823 #ifdef __BIG_ENDIAN__
824 vec_us_expected1
= (vector
unsigned short int){ 0, 1, 2, 3, 4, 5, 6, 7 };
826 vec_us_expected1
= (vector
unsigned short int){ 7, 6, 5, 4, 3, 2, 1, 0 };
828 store_data_us
= (vector
unsigned short int){ 0, 1, 2, 3, 4, 5, 6, 7 };
831 vec_us_result1
[i
] = 0;
833 address_us
= &vec_us_result1
[0];
835 vec_xst_be (store_data_us
, disp
, address_us
);
837 if (result_wrong_us (vec_us_expected1
, vec_us_result1
))
840 printf("Error: vec_xst_be, us disp = 0, result does not match expected result\n");
841 print_us (vec_us_expected1
, vec_us_result1
);
849 #ifdef __BIG_ENDIAN__
850 vec_si_expected1
= (vector
signed int){ -2, -1, 0, 1 };
852 vec_si_expected1
= (vector
signed int){ 1, 0, -1, -2 };
854 store_data_si
= (vector
signed int){ -2, -1, 0, 1 };
857 vec_si_result1
[i
] = 0;
859 address_si
= &vec_si_result1
[0];
861 vec_xst_be (store_data_si
, disp
, address_si
);
862 if (result_wrong_si (vec_si_expected1
, vec_si_result1
))
865 printf("Error: vec_xst_be, si disp = 0, result does not match expected result\n");
866 print_si (vec_si_expected1
, vec_si_result1
);
875 #ifdef __BIG_ENDIAN__
876 vec_ui_expected1
= (vector
unsigned int){ -2, -1, 0, 1 };
878 vec_ui_expected1
= (vector
unsigned int){ 1, 0, -1, -2 };
880 store_data_ui
= (vector
unsigned int){ -2, -1, 0, 1 };
883 vec_ui_result1
[i
] = 0;
885 address_ui
= &vec_ui_result1
[0];
887 vec_xst_be (store_data_ui
, disp
, address_ui
);
889 if (result_wrong_ui (vec_ui_expected1
, vec_ui_result1
))
892 printf("Error: vec_xst_be, ui disp = 0, result does not match expected result\n");
893 print_ui (vec_ui_expected1
, vec_ui_result1
);
901 #ifdef __BIG_ENDIAN__
902 vec_sll_expected1
= (vector
signed long long){ -1, 0 };
904 vec_sll_expected1
= (vector
signed long long){ 0, -1 };
906 store_data_sll
= (vector
signed long long ){ -1, 0 };
909 vec_sll_result1
[i
] = 0;
911 address_sll
= (signed long long *)(&vec_sll_result1
[0]);
913 vec_xst_be (store_data_sll
, disp
, address_sll
);
915 if (result_wrong_sll (vec_sll_expected1
, vec_sll_result1
))
918 printf("Error: vec_xst_be, sll disp = 0, result does not match expected result\n");
919 print_sll (vec_sll_expected1
, vec_sll_result1
);
926 #ifdef __BIG_ENDIAN__
927 vec_ull_expected1
= (vector
unsigned long long){ 0, 1234567890123456 };
929 vec_ull_expected1
= (vector
unsigned long long){1234567890123456, 0 };
931 store_data_ull
= (vector
unsigned long long){ 0, 1234567890123456 };
934 vec_ull_result1
[i
] = 0;
936 address_ull
= (unsigned long long int *)(&vec_ull_result1
[0]);
938 vec_xst_be (store_data_ull
, disp
, address_ull
);
940 if (result_wrong_ull (vec_ull_expected1
, vec_ull_result1
))
943 printf("Error: vec_xst_be, ull disp = 0, result does not match expected result\n");
944 print_ull (vec_ull_expected1
, vec_ull_result1
);
952 #ifdef __BIG_ENDIAN__
953 vec_s128_expected1
= (vector __int128_t
){ (__uint128_t
)12345678911121314 };
955 vec_s128_expected1
= (vector __int128_t
){ (__uint128_t
)12345678911121314 };
957 store_data_s128
= (vector __int128_t
)(__uint128_t
){ 12345678911121314 };
959 vec_s128_result1
[0] = 0;
961 address_s128
= (__int128_t
*)(&vec_s128_result1
[0]);
963 vec_xst_be (store_data_s128
, disp
, address_s128
);
965 if (result_wrong_s128 (vec_s128_expected1
, vec_s128_result1
))
968 printf("Error: vec_xst_be, s128 disp = 0, result does not match expected result\n");
969 print_s128 (vec_s128_expected1
, vec_s128_result1
);
976 #ifdef __BIG_ENDIAN__
977 vec_u128_expected1
= (vector __uint128_t
){ (__uint128_t
)1234567891112131415 };
979 vec_u128_expected1
= (vector __uint128_t
){ (__uint128_t
)1234567891112131415 };
981 store_data_u128
= (vector __uint128_t
){ (__uint128_t
)1234567891112131415 };
983 vec_u128_result1
[0] = 0;
985 address_u128
= (__int128_t
*)(&vec_u128_result1
[0]);
987 vec_xst_be (store_data_u128
, disp
, address_u128
);
989 if (result_wrong_u128 (vec_u128_expected1
, vec_u128_result1
))
992 printf("Error: vec_xst_be, u128 disp = 0, result does not match expected result\n");
993 print_u128 (vec_u128_expected1
, vec_u128_result1
);
1000 #ifdef __BIG_ENDIAN__
1001 vec_d_expected1
= (vector
double){ 0.0, 1.1 };
1003 vec_d_expected1
= (vector
double){ 1.1, 0.0 };
1005 store_data_d
= (vector
double){ 0.0, 1.1 };
1008 vec_d_result1
[i
] = 0;
1010 address_d
= (double *)(&vec_d_result1
[0]);
1012 vec_xst_be (store_data_d
, disp
, address_d
);
1014 if (result_wrong_d (vec_d_expected1
, vec_d_result1
))
1017 printf("Error: vec_xst_be, double disp = 0, result does not match expected result\n");
1018 print_d (vec_d_expected1
, vec_d_result1
);
1025 #ifdef __BIG_ENDIAN__
1026 vec_f_expected1
= (vector
float){ 0.0, 1.2, 2.3, 3.4 };
1028 vec_f_expected1
= (vector
float){ 3.4, 2.3, 1.2, 0.0 };
1030 store_data_f
= (vector
float){ 0.0, 1.2, 2.3, 3.4 };
1033 vec_f_result1
[i
] = 0;
1035 address_f
= (float *)(&vec_f_result1
[0]);
1037 vec_xst_be (store_data_f
, disp
, address_f
);
1039 if (result_wrong_f (vec_f_expected1
, vec_f_result1
))
1042 printf("Error: vec_xst_be, float disp = 0, result does not match expected result\n");
1043 print_f (vec_f_expected1
, vec_f_result1
);