1 /* { dg-do assemble } */
2 /* { dg-skip-if "" { powerpc-ibm-aix* } } */
3 /* { dg-skip-if "no TFmode" { powerpc-*-eabi* } } */
4 /* { dg-require-effective-target longdouble128 } */
5 /* { dg-options "-O2 -fno-align-functions -fno-asynchronous-unwind-tables -mtraceback=no -save-temps" } */
7 #if defined(__LONG_DOUBLE_IEEE128__)
8 /* If long double is IEEE 128-bit, we need to use the __ibm128 type instead of
9 long double. We can't use __ibm128 on systems that don't support IEEE
10 128-bit floating point, because the type is not enabled on those
12 #define TFmode __ibm128
14 #elif defined(__LONG_DOUBLE_IBM128__)
15 #define TFmode long double
18 #error "long double must be either IBM 128-bit or IEEE 128-bit"
21 void w1 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32767) = y
; }
22 void w2 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32766) = y
; }
23 void w3 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32765) = y
; }
24 void w4 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32764) = y
; }
25 void w5 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32763) = y
; }
26 void w6 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32762) = y
; }
27 void w7 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32761) = y
; }
28 void w8 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32760) = y
; }
29 void w9 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32759) = y
; }
30 void w10 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32758) = y
; }
31 void w11 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32757) = y
; }
32 void w12 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32756) = y
; }
33 void w13 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32755) = y
; }
34 void w14 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32754) = y
; }
35 void w15 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32753) = y
; }
36 void w16 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32752) = y
; }
37 void w17 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32751) = y
; }
38 void w18 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32750) = y
; }
39 void w19 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32749) = y
; }
40 void w20 (void *x
, TFmode y
) { *(TFmode
*) (x
+ 32748) = y
; }
42 TFmode
r1 (void *x
) { return *(TFmode
*) (x
+ 32767); }
43 TFmode
r2 (void *x
) { return *(TFmode
*) (x
+ 32766); }
44 TFmode
r3 (void *x
) { return *(TFmode
*) (x
+ 32765); }
45 TFmode
r4 (void *x
) { return *(TFmode
*) (x
+ 32764); }
46 TFmode
r5 (void *x
) { return *(TFmode
*) (x
+ 32763); }
47 TFmode
r6 (void *x
) { return *(TFmode
*) (x
+ 32762); }
48 TFmode
r7 (void *x
) { return *(TFmode
*) (x
+ 32761); }
49 TFmode
r8 (void *x
) { return *(TFmode
*) (x
+ 32760); }
50 TFmode
r9 (void *x
) { return *(TFmode
*) (x
+ 32759); }
51 TFmode
r10 (void *x
) { return *(TFmode
*) (x
+ 32758); }
52 TFmode
r11 (void *x
) { return *(TFmode
*) (x
+ 32757); }
53 TFmode
r12 (void *x
) { return *(TFmode
*) (x
+ 32756); }
54 TFmode
r13 (void *x
) { return *(TFmode
*) (x
+ 32755); }
55 TFmode
r14 (void *x
) { return *(TFmode
*) (x
+ 32754); }
56 TFmode
r15 (void *x
) { return *(TFmode
*) (x
+ 32753); }
57 TFmode
r16 (void *x
) { return *(TFmode
*) (x
+ 32752); }
58 TFmode
r17 (void *x
) { return *(TFmode
*) (x
+ 32751); }
59 TFmode
r18 (void *x
) { return *(TFmode
*) (x
+ 32750); }
60 TFmode
r19 (void *x
) { return *(TFmode
*) (x
+ 32749); }
61 TFmode
r20 (void *x
) { return *(TFmode
*) (x
+ 32748); }
63 /* { dg-final { object-size text == 544 } } */