1 /* { dg-do run { target { powerpc*-*-* && { lp64 && p8vector_hw } } } } */
2 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
3 /* { dg-options "-mcpu=power8 -O3" } */
19 int result_wrong_sc (vector
signed char vec_expected
,
20 vector
signed char vec_actual
)
24 for (i
= 0; i
< 16; i
++)
25 if (vec_expected
[i
] != vec_actual
[i
])
31 void print_sc (vector
signed char vec_expected
,
32 vector
signed char vec_actual
)
36 printf("expected signed char data\n");
37 for (i
= 0; i
< 16; i
++)
38 printf(" %d,", vec_expected
[i
]);
40 printf("\nactual signed char data\n");
41 for (i
= 0; i
< 16; i
++)
42 printf(" %d,", vec_actual
[i
]);
46 int result_wrong_uc (vector
unsigned char vec_expected
,
47 vector
unsigned char vec_actual
)
51 for (i
= 0; i
< 16; i
++)
52 if (vec_expected
[i
] != vec_actual
[i
])
58 void print_uc (vector
unsigned char vec_expected
,
59 vector
unsigned char vec_actual
)
63 printf("expected unsigned char data\n");
64 for (i
= 0; i
< 16; i
++)
65 printf(" %d,", vec_expected
[i
]);
67 printf("\nactual unsigned char data\n");
68 for (i
= 0; i
< 16; i
++)
69 printf(" %d,", vec_actual
[i
]);
73 int result_wrong_us (vector
unsigned short vec_expected
,
74 vector
unsigned short vec_actual
)
78 for (i
= 0; i
< 8; i
++)
79 if (vec_expected
[i
] != vec_actual
[i
])
85 void print_us (vector
unsigned short vec_expected
,
86 vector
unsigned short vec_actual
)
90 printf("expected unsigned short data\n");
91 for (i
= 0; i
< 8; i
++)
92 printf(" %d,", vec_expected
[i
]);
94 printf("\nactual unsigned short data\n");
95 for (i
= 0; i
< 8; i
++)
96 printf(" %d,", vec_actual
[i
]);
100 int result_wrong_ss (vector
signed short vec_expected
,
101 vector
signed short vec_actual
)
105 for (i
= 0; i
< 8; i
++)
106 if (vec_expected
[i
] != vec_actual
[i
])
112 void print_ss (vector
signed short vec_expected
,
113 vector
signed short vec_actual
)
117 printf("expected signed short data\n");
118 for (i
= 0; i
< 8; i
++)
119 printf(" %d,", vec_expected
[i
]);
121 printf("\nactual signed short data\n");
122 for (i
= 0; i
< 8; i
++)
123 printf(" %d,", vec_actual
[i
]);
127 int result_wrong_ui (vector
unsigned int vec_expected
,
128 vector
unsigned int vec_actual
)
132 for (i
= 0; i
< 4; i
++)
133 if (vec_expected
[i
] != vec_actual
[i
])
139 void print_ui (vector
unsigned int vec_expected
,
140 vector
unsigned int vec_actual
)
144 printf("expected unsigned int data\n");
145 for (i
= 0; i
< 4; i
++)
146 printf(" %d,", vec_expected
[i
]);
148 printf("\nactual unsigned int data\n");
149 for (i
= 0; i
< 4; i
++)
150 printf(" %d,", vec_actual
[i
]);
154 int result_wrong_si (vector
signed int vec_expected
,
155 vector
signed int vec_actual
)
159 for (i
= 0; i
< 4; i
++)
160 if (vec_expected
[i
] != vec_actual
[i
])
166 void print_si (vector
signed int vec_expected
,
167 vector
signed int vec_actual
)
171 printf("expected signed int data\n");
172 for (i
= 0; i
< 4; i
++)
173 printf(" %d,", vec_expected
[i
]);
175 printf("\nactual signed int data\n");
176 for (i
= 0; i
< 4; i
++)
177 printf(" %d,", vec_actual
[i
]);
181 int result_wrong_ull (vector
unsigned long long vec_expected
,
182 vector
unsigned long long vec_actual
)
186 for (i
= 0; i
< 2; i
++)
187 if (vec_expected
[i
] != vec_actual
[i
])
193 void print_ull (vector
unsigned long long vec_expected
,
194 vector
unsigned long long vec_actual
)
198 printf("expected unsigned long long data\n");
199 for (i
= 0; i
< 2; i
++)
200 printf(" %llu,", vec_expected
[i
]);
202 printf("\nactual unsigned long long data\n");
203 for (i
= 0; i
< 2; i
++)
204 printf(" %llu,", vec_actual
[i
]);
208 int result_wrong_sll (vector
signed long long vec_expected
,
209 vector
signed long long vec_actual
)
213 for (i
= 0; i
< 2; i
++)
214 if (vec_expected
[i
] != vec_actual
[i
])
220 void print_sll (vector
signed long long vec_expected
,
221 vector
signed long long vec_actual
)
225 printf("expected signed long long data\n");
226 for (i
= 0; i
< 2; i
++)
227 printf(" %lld,", vec_expected
[i
]);
229 printf("\nactual signed long long data\n");
230 for (i
= 0; i
< 2; i
++)
231 printf(" %lld,", vec_actual
[i
]);
235 int result_wrong_u128 (vector __uint128_t vec_expected
,
236 vector __uint128_t vec_actual
)
240 if (vec_expected
[0] != vec_actual
[0])
246 void print_u128 (vector __uint128_t vec_expected
,
247 vector __uint128_t vec_actual
)
249 printf("expected uint128 data\n");
250 printf(" %llu%llu\n", (unsigned long long)(vec_expected
[0] >> 64),
251 (unsigned long long)(vec_expected
[0] & 0xFFFFFFFFFFFFFFFF));
253 printf("\nactual uint128 data\n");
254 printf(" %llu%llu\n", (unsigned long long)(vec_actual
[0] >> 64),
255 (unsigned long long)(vec_actual
[0] & 0xFFFFFFFFFFFFFFFF));
259 int result_wrong_s128 (vector __int128_t vec_expected
,
260 vector __int128_t vec_actual
)
264 if (vec_expected
[0] != vec_actual
[0])
270 void print_s128 (vector __int128 vec_expected
,
271 vector __int128 vec_actual
)
273 printf("expected int128 data\n");
274 printf(" %lld%llu\n", (signed long long)(vec_expected
[0] >> 64),
275 (unsigned long long)(vec_expected
[0] & 0xFFFFFFFFFFFFFFFF));
277 printf("\nactual int128 data\n");
278 printf(" %lld%llu\n", (signed long long)(vec_actual
[0] >> 64),
279 (unsigned long long)(vec_actual
[0] & 0xFFFFFFFFFFFFFFFF));
282 int result_wrong_d (vector
double vec_expected
,
283 vector
double vec_actual
)
287 for (i
= 0; i
< 2; i
++)
288 if (vec_expected
[i
] != vec_actual
[i
])
294 void print_d (vector
double vec_expected
,
295 vector
double vec_actual
)
299 printf("expected double data\n");
300 for (i
= 0; i
< 2; i
++)
301 printf(" %f,", vec_expected
[i
]);
303 printf("\nactual double data\n");
304 for (i
= 0; i
< 2; i
++)
305 printf(" %f,", vec_actual
[i
]);
309 int result_wrong_f (vector
float vec_expected
,
310 vector
float vec_actual
)
314 for (i
= 0; i
< 4; i
++)
315 if (vec_expected
[i
] != vec_actual
[i
])
321 void print_f (vector
float vec_expected
,
322 vector
float vec_actual
)
326 printf("expected float data\n");
327 for (i
= 0; i
< 4; i
++)
328 printf(" %f,", vec_expected
[i
]);
330 printf("\nactual float data\n");
331 for (i
= 0; i
< 4; i
++)
332 printf(" %f,", vec_actual
[i
]);
339 vector
signed char store_data_sc
;
340 vector
unsigned char store_data_uc
;
341 vector
signed int store_data_si
;
342 vector
unsigned int store_data_ui
;
343 vector __int128_t store_data_s128
;
344 vector __uint128_t store_data_u128
;
345 vector
signed long long int store_data_sll
;
346 vector
unsigned long long int store_data_ull
;
347 vector
signed short store_data_ss
;
348 vector
unsigned short store_data_us
;
349 vector
double store_data_d
;
350 vector
float store_data_f
;
352 signed char *address_sc
;
353 unsigned char *address_uc
;
354 signed int *address_si
;
355 unsigned int *address_ui
;
356 __int128_t
*address_s128
;
357 __uint128_t
*address_u128
;
358 signed long long int *address_sll
;
359 unsigned long long int *address_ull
;
360 signed short int *address_ss
;
361 unsigned short int *address_us
;
365 vector
unsigned char *datap
;
367 vector
unsigned char vec_uc_expected1
, vec_uc_result1
;
368 vector
signed char vec_sc_expected1
, vec_sc_result1
;
369 vector
signed int vec_si_expected1
, vec_si_result1
;
370 vector
unsigned int vec_ui_expected1
, vec_ui_result1
;
371 vector __int128_t vec_s128_expected1
, vec_s128_result1
;
372 vector __uint128_t vec_u128_expected1
, vec_u128_result1
;
373 vector
signed long long int vec_sll_expected1
, vec_sll_result1
;
374 vector
unsigned long long int vec_ull_expected1
, vec_ull_result1
;
375 vector
signed short int vec_ss_expected1
, vec_ss_result1
;
376 vector
unsigned short int vec_us_expected1
, vec_us_result1
;
377 vector
double vec_d_expected1
, vec_d_result1
;
378 vector
float vec_f_expected1
, vec_f_result1
;
380 signed long long disp
;
384 vec_sc_expected1
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
385 1, 2, 3, 4, 5, 6, 7, 8 };
386 store_data_sc
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
387 1, 2, 3, 4, 5, 6, 7, 8 };
390 vec_sc_result1
[i
] = 0;
392 address_sc
= &vec_sc_result1
[0];
394 vec_xst (store_data_sc
, disp
, address_sc
);
396 if (result_wrong_sc (vec_sc_expected1
, vec_sc_result1
))
399 printf("Error: vec_xst, sc disp = 0, result does not match expected result\n");
400 print_sc (vec_sc_expected1
, vec_sc_result1
);
407 vec_sc_expected1
= (vector
signed char){ 0, 0, -7, -6, -5, -4, -3, -2,
408 -1, 0, 1, 2, 3, 4, 5, 6 };
409 store_data_sc
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
410 1, 2, 3, 4, 5, 6, 7, 8 };
413 vec_sc_result1
[i
] = 0;
415 address_sc
= &vec_sc_result1
[0];
417 vec_xst (store_data_sc
, disp
, address_sc
);
419 if (result_wrong_sc (vec_sc_expected1
, vec_sc_result1
))
422 printf("Error: vec_xst, sc disp = 2, result does not match expected result\n");
423 print_sc (vec_sc_expected1
, vec_sc_result1
);
430 vec_uc_expected1
= (vector
unsigned char){ 0, 1, 2, 3, 4, 5, 6, 7,
431 8, 9, 10, 11, 12, 13, 14, 15 };
432 store_data_uc
= (vector
unsigned char){ 0, 1, 2, 3, 4, 5, 6, 7,
433 8, 9, 10, 11, 12, 13, 14, 15 };
436 vec_uc_result1
[i
] = 0;
438 address_uc
= &vec_uc_result1
[0];
440 vec_xst (store_data_uc
, disp
, address_uc
);
442 if (result_wrong_uc (vec_uc_expected1
, vec_uc_result1
))
445 printf("Error: vec_xst, uc disp = 0, result does not match expected result\n");
446 print_uc (vec_uc_expected1
, vec_uc_result1
);
453 vec_ss_expected1
= (vector
signed short int){ -4, -3, -2, -1, 0, 1, 2, 3 };
454 store_data_ss
= (vector
signed short int){ -4, -3, -2, -1, 0, 1, 2, 3 };
457 vec_ss_result1
[i
] = 0;
459 address_ss
= &vec_ss_result1
[0];
461 vec_xst (store_data_ss
, disp
, address_ss
);
463 if (result_wrong_ss (vec_ss_expected1
, vec_ss_result1
))
466 printf("Error: vec_xst, ss disp = 0, result does not match expected result\n");
467 print_ss (vec_ss_expected1
, vec_ss_result1
);
474 vec_us_expected1
= (vector
unsigned short int){ 0, 1, 2, 3, 4, 5, 6, 7 };
475 store_data_us
= (vector
unsigned short int){ 0, 1, 2, 3, 4, 5, 6, 7 };
478 vec_us_result1
[i
] = 0;
480 address_us
= &vec_us_result1
[0];
482 vec_xst (store_data_us
, disp
, address_us
);
484 if (result_wrong_us (vec_us_expected1
, vec_us_result1
))
487 printf("Error: vec_xst, us disp = 0, result does not match expected result\n");
488 print_us (vec_us_expected1
, vec_us_result1
);
495 vec_si_expected1
= (vector
signed int){ -2, -1, 0, 1 };
496 store_data_si
= (vector
signed int){ -2, -1, 0, 1 };
499 vec_si_result1
[i
] = 0;
501 address_si
= &vec_si_result1
[0];
503 vec_xst (store_data_si
, disp
, address_si
);
505 if (result_wrong_si (vec_si_expected1
, vec_si_result1
))
508 printf("Error: vec_xst, si disp = 0, result does not match expected result\n");
509 print_si (vec_si_expected1
, vec_si_result1
);
516 vec_ui_expected1
= (vector
unsigned int){ -2, -1, 0, 1 };
517 store_data_ui
= (vector
unsigned int){ -2, -1, 0, 1 };
520 vec_ui_result1
[i
] = 0;
522 address_ui
= &vec_ui_result1
[0];
524 vec_xst (store_data_ui
, disp
, address_ui
);
526 if (result_wrong_ui (vec_ui_expected1
, vec_ui_result1
))
529 printf("Error: vec_xst, ui disp = 0, result does not match expected result\n");
530 print_ui (vec_ui_expected1
, vec_ui_result1
);
537 vec_sll_expected1
= (vector
signed long long){ -1, 0 };
538 store_data_sll
= (vector
signed long long ){ -1, 0 };
541 vec_sll_result1
[i
] = 0;
543 address_sll
= (signed long long *)(&vec_sll_result1
[0]);
545 vec_xst (store_data_sll
, disp
, address_sll
);
547 if (result_wrong_sll (vec_sll_expected1
, vec_sll_result1
))
550 printf("Error: vec_xst, sll disp = 0, result does not match expected result\n");
551 print_sll (vec_sll_expected1
, vec_sll_result1
);
558 vec_ull_expected1
= (vector
unsigned long long){ 0, 1 };
559 store_data_ull
= (vector
unsigned long long){ 0, 1 };
562 vec_ull_result1
[i
] = 0;
564 address_ull
= (unsigned long long int *)(&vec_ull_result1
[0]);
566 vec_xst (store_data_ull
, disp
, address_ull
);
568 if (result_wrong_ull (vec_ull_expected1
, vec_ull_result1
))
571 printf("Error: vec_xst, ull disp = 0, result does not match expected result\n");
572 print_ull (vec_ull_expected1
, vec_ull_result1
);
579 vec_s128_expected1
= (vector __int128_t
){ 12345 };
580 store_data_s128
= (vector __int128_t
){ 12345 };
582 vec_s128_result1
[0] = 0;
584 address_s128
= (__int128_t
*)(&vec_s128_result1
[0]);
586 vec_xst (store_data_s128
, disp
, address_s128
);
588 if (result_wrong_s128 (vec_s128_expected1
, vec_s128_result1
))
591 printf("Error: vec_xst, s128 disp = 0, result does not match expected result\n");
592 print_s128 (vec_s128_expected1
, vec_s128_result1
);
599 vec_u128_expected1
= (vector __uint128_t
){ 12345 };
600 store_data_u128
= (vector __uint128_t
){ 12345 };
602 vec_u128_result1
[0] = 0;
604 address_u128
= (__int128_t
*)(&vec_u128_result1
[0]);
606 vec_xst (store_data_u128
, disp
, address_u128
);
608 if (result_wrong_u128 (vec_u128_expected1
, vec_u128_result1
))
611 printf("Error: vec_xst, u128 disp = 0, result does not match expected result\n");
612 print_u128 (vec_u128_expected1
, vec_u128_result1
);
619 vec_d_expected1
= (vector
double){ 0, 1 };
620 store_data_d
= (vector
double){ 0, 1 };
623 vec_d_result1
[i
] = 0;
625 address_d
= (double *)(&vec_d_result1
[0]);
627 vec_xst (store_data_d
, disp
, address_d
);
629 if (result_wrong_d (vec_d_expected1
, vec_d_result1
))
632 printf("Error: vec_xst, double disp = 0, result does not match expected result\n");
633 print_d (vec_d_expected1
, vec_d_result1
);
640 vec_f_expected1
= (vector
float){ 0, 1 };
641 store_data_f
= (vector
float){ 0, 1 };
644 vec_f_result1
[i
] = 0;
646 address_f
= (float *)(&vec_f_result1
[0]);
648 vec_xst (store_data_f
, disp
, address_f
);
650 if (result_wrong_f (vec_f_expected1
, vec_f_result1
))
653 printf("Error: vec_xst, float disp = 0, result does not match expected result\n");
654 print_f (vec_f_expected1
, vec_f_result1
);
660 /* VEC_XST_BE, these always load in BE order regardless of
661 machine endianess. */
663 #ifdef __BIG_ENDIAN__
664 vec_sc_expected1
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
665 1, 2, 3, 4, 5, 6, 7, 8 };
667 vec_sc_expected1
= (vector
signed char){ 8, 7, 6, 5, 4, 3, 2, 1,
668 0, -1, -2, -3, -4, -5, -6, -7 };
670 store_data_sc
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
671 1, 2, 3, 4, 5, 6, 7, 8 };
674 vec_sc_result1
[i
] = 0;
676 address_sc
= &vec_sc_result1
[0];
678 vec_xst_be (store_data_sc
, disp
, address_sc
);
680 if (result_wrong_sc (vec_sc_expected1
, vec_sc_result1
))
683 printf("Error: vec_xst_be, sc disp = 0, result does not match expected result\n");
684 print_sc (vec_sc_expected1
, vec_sc_result1
);
691 #ifdef __BIG_ENDIAN__
692 vec_sc_expected1
= (vector
signed char){ 0, 0, -7, -6, -5, -4, -3, -2,
693 -1, 0, 1, 2, 3, 4, 5, 6 };
695 vec_sc_expected1
= (vector
signed char){ 0, 0, 8, 7, 6, 5, 4, 3,
696 2, 1, 0, -1, -2, -3, -4, -5 };
698 store_data_sc
= (vector
signed char){ -7, -6, -5, -4, -3, -2, -1, 0,
699 1, 2, 3, 4, 5, 6, 7, 8 };
702 vec_sc_result1
[i
] = 0;
704 address_sc
= &vec_sc_result1
[0];
706 vec_xst_be (store_data_sc
, disp
, address_sc
);
708 if (result_wrong_sc (vec_sc_expected1
, vec_sc_result1
))
711 printf("Error: vec_xst_be, sc disp = 2, result does not match expected result\n");
712 print_sc (vec_sc_expected1
, vec_sc_result1
);
719 #ifdef __BIG_ENDIAN__
720 vec_uc_expected1
= (vector
unsigned char){ 0, 1, 2, 3, 4, 5, 6, 7,
721 8, 9, 10, 11, 12, 13, 14, 15 };
723 vec_uc_expected1
= (vector
unsigned char){ 15, 14, 13, 12, 11, 10, 9, 8,
724 7, 6, 5, 4, 3, 2, 1 };
726 store_data_uc
= (vector
unsigned char){ 0, 1, 2, 3, 4, 5, 6, 7,
727 8, 9, 10, 11, 12, 13, 14, 15 };
730 vec_uc_result1
[i
] = 0;
732 address_uc
= &vec_uc_result1
[0];
734 vec_xst_be (store_data_uc
, disp
, address_uc
);
736 if (result_wrong_uc (vec_uc_expected1
, vec_uc_result1
))
739 printf("Error: vec_xst_be, uc disp = 0, result does not match expected result\n");
740 print_uc (vec_uc_expected1
, vec_uc_result1
);
747 #ifdef __BIG_ENDIAN__
748 vec_si_expected1
= (vector
signed int){ 0, 0, -8, -7 };
750 vec_si_expected1
= (vector
signed int){ 0, 0, -5, -6 };
752 store_data_si
= (vector
signed int){ -8, -7, -6, -5 };
755 vec_si_result1
[i
] = 0;
757 address_si
= &vec_si_result1
[0];
759 vec_xst_be (store_data_si
, disp
, address_si
);
761 if (result_wrong_si (vec_si_expected1
, vec_si_result1
))
764 printf("Error: vec_xst_be, si disp = %d, result does not match expected result\n", disp
);
765 print_si (vec_si_expected1
, vec_si_result1
);
772 #ifdef __BIG_ENDIAN__
773 vec_ui_expected1
= (vector
unsigned int){ 0, 1, 2, 3 };
775 vec_ui_expected1
= (vector
unsigned int){ 3, 2, 1, 0 };
777 store_data_ui
= (vector
unsigned int){ 0, 1, 2, 3 };
780 vec_ui_result1
[i
] = 0;
782 address_ui
= &vec_ui_result1
[0];
784 vec_xst_be (store_data_ui
, disp
, address_ui
);
786 if (result_wrong_ui (vec_ui_expected1
, vec_ui_result1
))
789 printf("Error: vec_xst_be, ui disp = 0, result does not match expected result\n");
790 print_ui (vec_ui_expected1
, vec_ui_result1
);
797 #ifdef __BIG_ENDIAN__
798 vec_ss_expected1
= (vector
signed short int){ -4, -3, -2, -1, 0, 1, 2, 3 };
800 vec_ss_expected1
= (vector
signed short int){ 3, 2, 1, 0, -1, -2, -3, -4 };
802 store_data_ss
= (vector
signed short int){ -4, -3, -2, -1, 0, 1, 2, 3 };
805 vec_ss_result1
[i
] = 0;
807 address_ss
= &vec_ss_result1
[0];
809 vec_xst_be (store_data_ss
, disp
, address_ss
);
811 if (result_wrong_ss (vec_ss_expected1
, vec_ss_result1
))
814 printf("Error: vec_xst_be, ss disp = 0, result does not match expected result\n");
815 print_ss (vec_ss_expected1
, vec_ss_result1
);
822 #ifdef __BIG_ENDIAN__
823 vec_us_expected1
= (vector
unsigned short int){ 0, 1, 2, 3, 4, 5, 6, 7 };
825 vec_us_expected1
= (vector
unsigned short int){ 7, 6, 5, 4, 3, 2, 1, 0 };
827 store_data_us
= (vector
unsigned short int){ 0, 1, 2, 3, 4, 5, 6, 7 };
830 vec_us_result1
[i
] = 0;
832 address_us
= &vec_us_result1
[0];
834 vec_xst_be (store_data_us
, disp
, address_us
);
836 if (result_wrong_us (vec_us_expected1
, vec_us_result1
))
839 printf("Error: vec_xst_be, us disp = 0, result does not match expected result\n");
840 print_us (vec_us_expected1
, vec_us_result1
);
848 #ifdef __BIG_ENDIAN__
849 vec_si_expected1
= (vector
signed int){ -2, -1, 0, 1 };
851 vec_si_expected1
= (vector
signed int){ 1, 0, -1, -2 };
853 store_data_si
= (vector
signed int){ -2, -1, 0, 1 };
856 vec_si_result1
[i
] = 0;
858 address_si
= &vec_si_result1
[0];
860 vec_xst_be (store_data_si
, disp
, address_si
);
861 if (result_wrong_si (vec_si_expected1
, vec_si_result1
))
864 printf("Error: vec_xst_be, si disp = 0, result does not match expected result\n");
865 print_si (vec_si_expected1
, vec_si_result1
);
874 #ifdef __BIG_ENDIAN__
875 vec_ui_expected1
= (vector
unsigned int){ -2, -1, 0, 1 };
877 vec_ui_expected1
= (vector
unsigned int){ 1, 0, -1, -2 };
879 store_data_ui
= (vector
unsigned int){ -2, -1, 0, 1 };
882 vec_ui_result1
[i
] = 0;
884 address_ui
= &vec_ui_result1
[0];
886 vec_xst_be (store_data_ui
, disp
, address_ui
);
888 if (result_wrong_ui (vec_ui_expected1
, vec_ui_result1
))
891 printf("Error: vec_xst_be, ui disp = 0, result does not match expected result\n");
892 print_ui (vec_ui_expected1
, vec_ui_result1
);
900 #ifdef __BIG_ENDIAN__
901 vec_sll_expected1
= (vector
signed long long){ -1, 0 };
903 vec_sll_expected1
= (vector
signed long long){ 0, -1 };
905 store_data_sll
= (vector
signed long long ){ -1, 0 };
908 vec_sll_result1
[i
] = 0;
910 address_sll
= (signed long long *)(&vec_sll_result1
[0]);
912 vec_xst_be (store_data_sll
, disp
, address_sll
);
914 if (result_wrong_sll (vec_sll_expected1
, vec_sll_result1
))
917 printf("Error: vec_xst_be, sll disp = 0, result does not match expected result\n");
918 print_sll (vec_sll_expected1
, vec_sll_result1
);
925 #ifdef __BIG_ENDIAN__
926 vec_ull_expected1
= (vector
unsigned long long){ 0, 1234567890123456 };
928 vec_ull_expected1
= (vector
unsigned long long){1234567890123456, 0 };
930 store_data_ull
= (vector
unsigned long long){ 0, 1234567890123456 };
933 vec_ull_result1
[i
] = 0;
935 address_ull
= (unsigned long long int *)(&vec_ull_result1
[0]);
937 vec_xst_be (store_data_ull
, disp
, address_ull
);
939 if (result_wrong_ull (vec_ull_expected1
, vec_ull_result1
))
942 printf("Error: vec_xst_be, ull disp = 0, result does not match expected result\n");
943 print_ull (vec_ull_expected1
, vec_ull_result1
);
951 #ifdef __BIG_ENDIAN__
952 vec_s128_expected1
= (vector __int128_t
){ (__uint128_t
)12345678911121314 };
954 vec_s128_expected1
= (vector __int128_t
){ (__uint128_t
)12345678911121314 };
956 store_data_s128
= (vector __int128_t
)(__uint128_t
){ 12345678911121314 };
958 vec_s128_result1
[0] = 0;
960 address_s128
= (__int128_t
*)(&vec_s128_result1
[0]);
962 vec_xst_be (store_data_s128
, disp
, address_s128
);
964 if (result_wrong_s128 (vec_s128_expected1
, vec_s128_result1
))
967 printf("Error: vec_xst_be, s128 disp = 0, result does not match expected result\n");
968 print_s128 (vec_s128_expected1
, vec_s128_result1
);
975 #ifdef __BIG_ENDIAN__
976 vec_u128_expected1
= (vector __uint128_t
){ (__uint128_t
)1234567891112131415 };
978 vec_u128_expected1
= (vector __uint128_t
){ (__uint128_t
)1234567891112131415 };
980 store_data_u128
= (vector __uint128_t
){ (__uint128_t
)1234567891112131415 };
982 vec_u128_result1
[0] = 0;
984 address_u128
= (__int128_t
*)(&vec_u128_result1
[0]);
986 vec_xst_be (store_data_u128
, disp
, address_u128
);
988 if (result_wrong_u128 (vec_u128_expected1
, vec_u128_result1
))
991 printf("Error: vec_xst_be, u128 disp = 0, result does not match expected result\n");
992 print_u128 (vec_u128_expected1
, vec_u128_result1
);
999 #ifdef __BIG_ENDIAN__
1000 vec_d_expected1
= (vector
double){ 0.0, 1.1 };
1002 vec_d_expected1
= (vector
double){ 1.1, 0.0 };
1004 store_data_d
= (vector
double){ 0.0, 1.1 };
1007 vec_d_result1
[i
] = 0;
1009 address_d
= (double *)(&vec_d_result1
[0]);
1011 vec_xst_be (store_data_d
, disp
, address_d
);
1013 if (result_wrong_d (vec_d_expected1
, vec_d_result1
))
1016 printf("Error: vec_xst_be, double disp = 0, result does not match expected result\n");
1017 print_d (vec_d_expected1
, vec_d_result1
);
1024 #ifdef __BIG_ENDIAN__
1025 vec_f_expected1
= (vector
float){ 0.0, 1.2, 2.3, 3.4 };
1027 vec_f_expected1
= (vector
float){ 3.4, 2.3, 1.2, 0.0 };
1029 store_data_f
= (vector
float){ 0.0, 1.2, 2.3, 3.4 };
1032 vec_f_result1
[i
] = 0;
1034 address_f
= (float *)(&vec_f_result1
[0]);
1036 vec_xst_be (store_data_f
, disp
, address_f
);
1038 if (result_wrong_f (vec_f_expected1
, vec_f_result1
))
1041 printf("Error: vec_xst_be, float disp = 0, result does not match expected result\n");
1042 print_f (vec_f_expected1
, vec_f_result1
);