diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/riscv')
173 files changed, 9671 insertions, 80 deletions
diff --git a/gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c b/gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c new file mode 100644 index 00000000000..a9a586c98b9 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c @@ -0,0 +1,38 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64ifd -mabi=lp64d -mcmodel=medlow -O" } */ + +__bf16 gvar = 9.87654; +union U +{ + unsigned short i16; + __bf16 f16; +}; + +__bf16 +test1 (unsigned short input) +{ + union U tmp; + tmp.i16 = input; + return tmp.f16; +} + +__bf16 +test2 () +{ + return 1.234f; +} + +__bf16 +test3 () +{ + return gvar; +} + +__bf16 +test () +{ + return 0.0f; +} + +/* { dg-final { scan-assembler-times "li\[ \t\]" 4 } } */ +/* { dg-final { scan-assembler-times "fmv\.w\.x\[ \t\]" 4 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/and-shift32.c b/gcc/testsuite/gcc.target/riscv/and-shift32.c new file mode 100644 index 00000000000..38ee63e8d79 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/and-shift32.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc -mabi=ilp32" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-g" } } */ + +int foo(int a) +{ + return (a << 8) & 24320; +} + +/* { dg-final { scan-assembler-times "\\sandi\\s" 1 } } */ +/* { dg-final { scan-assembler-times "\\sslli\\s" 1 } } */ +/* { dg-final { scan-assembler-not "\\sli\\s" } } */ +/* { dg-final { scan-assembler-not "\\saddi\\s" } } */
\ No newline at end of file diff --git a/gcc/testsuite/gcc.target/riscv/and-shift64.c b/gcc/testsuite/gcc.target/riscv/and-shift64.c new file mode 100644 index 00000000000..ccfaedd508a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/and-shift64.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-g" } } */ + +long long foo(long long a) +{ + return (a << 8) & 24320; +} + +/* { dg-final { scan-assembler-times "\\sandi\\s" 1 } } */ +/* { dg-final { scan-assembler-times "\\sslli\\s" 1 } } */ +/* { dg-final { scan-assembler-not "\\sli\\s" } } */ +/* { dg-final { scan-assembler-not "\\saddi\\s" } } */
\ No newline at end of file diff --git a/gcc/testsuite/gcc.target/riscv/arch-35.c b/gcc/testsuite/gcc.target/riscv/arch-35.c new file mode 100644 index 00000000000..6c783769666 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/arch-35.c @@ -0,0 +1,5 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i_zfbfmin -mabi=ilp32f" } */ +int foo() +{ +} diff --git a/gcc/testsuite/gcc.target/riscv/arch-36.c b/gcc/testsuite/gcc.target/riscv/arch-36.c new file mode 100644 index 00000000000..cbdccf12807 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/arch-36.c @@ -0,0 +1,5 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64i_zfbfmin -mabi=lp64f" } */ +int foo() +{ +} diff --git a/gcc/testsuite/gcc.target/riscv/arch-37.c b/gcc/testsuite/gcc.target/riscv/arch-37.c new file mode 100644 index 00000000000..5b19a73c556 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/arch-37.c @@ -0,0 +1,5 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i_zvfbfwma -mabi=ilp32f" } */ +int +foo () +{} diff --git a/gcc/testsuite/gcc.target/riscv/arch-38.c b/gcc/testsuite/gcc.target/riscv/arch-38.c new file mode 100644 index 00000000000..cee3efebe75 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/arch-38.c @@ -0,0 +1,5 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64iv_zvfbfwma -mabi=lp64d" } */ +int +foo () +{} diff --git a/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c b/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c new file mode 100644 index 00000000000..190cc1d574a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c @@ -0,0 +1,42 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i -mabi=ilp32 -O" { target { rv32 } } } */ +/* { dg-options "-march=rv64i -mabi=lp64 -O" { target { rv64 } } } */ + +/* 1) bf -> sf (call __extendbfsf2) */ +/* 2) sf1 [+|-|*|/] sf2 (call __[add|sub|mul|div]sf3) */ +/* 3) sf -> bf (call __truncsfbf2) */ +extern __bf16 bf; +extern __bf16 bf1; +extern __bf16 bf2; + +void bf_add_bf () { bf = bf1 + bf2; } + +void bf_sub_bf () { bf = bf1 - bf2; } + +void bf_mul_bf () { bf = bf1 * bf2; } + +void bf_div_bf () { bf = bf1 / bf2; } + +void bf_add_const () { bf = bf1 + 3.14f; } + +void const_sub_bf () { bf = 3.14f - bf2; } + +void bf_mul_const () { bf = bf1 * 3.14f; } + +void const_div_bf () { bf = 3.14f / bf2; } + +void bf_inc () { ++bf; } + +void bf_dec () { --bf; } + +/* { dg-final { scan-assembler-times "call\t__extendbfsf2" 16 } } */ +/* { dg-final { scan-assembler-times "call\t__truncsfbf2" 10 } } */ +/* { dg-final { scan-assembler-times "call\t__addsf3" 3 } } */ +/* { dg-final { scan-assembler-times "call\t__subsf3" 3 } } */ +/* { dg-final { scan-assembler-times "call\t__mulsf3" 2 } } */ +/* { dg-final { scan-assembler-times "call\t__divsf3" 2 } } */ + +/* { dg-final { scan-assembler-not "call\t__addbf3" } } */ +/* { dg-final { scan-assembler-not "call\t__subbf3" } } */ +/* { dg-final { scan-assembler-not "call\t__mulbf3" } } */ +/* { dg-final { scan-assembler-not "call\t__divbf3" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/bf16_call.c b/gcc/testsuite/gcc.target/riscv/bf16_call.c new file mode 100644 index 00000000000..6ace1494370 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/bf16_call.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i -mabi=ilp32 -O" { target { rv32 } } } */ +/* { dg-options "-march=rv64i -mabi=lp64 -O" { target { rv64 } } } */ + +/* 1) bf -> sf (call __extendbfsf2) */ +/* 2) sf -> bf (call __truncsfbf2) */ +__attribute__ ((noinline)) __bf16 add (__bf16 a, __bf16 b) { return a + b; } + +__bf16 test(__bf16 a, __bf16 b) { return add (a, b); } + +/* { dg-final { scan-assembler-times "call\t__extendbfsf2" 2 } } */ +/* { dg-final { scan-assembler-times "call\t__truncsfbf2" 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/bf16_comparison.c b/gcc/testsuite/gcc.target/riscv/bf16_comparison.c new file mode 100644 index 00000000000..2c13b8a0c9a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/bf16_comparison.c @@ -0,0 +1,36 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i -mabi=ilp32 -O" { target { rv32 } } } */ +/* { dg-options "-march=rv64i -mabi=lp64 -O" { target { rv64 } } } */ + +/* 1) bf -> sf (call __extendbfsf2) */ +/* 2) sf1 [<|<=|>|>=|==] sf2 (call __[lt|le|gt|ge|eq]sf2) */ +extern __bf16 bf; +extern __bf16 bf1; +extern __bf16 bf2; + +void bf_lt_bf () { bf = (bf1 < bf2) ? bf1 : bf2; } + +void bf_le_bf () { bf = (bf1 <= bf2) ? bf1 : bf2; } + +void bf_gt_bf () { bf = (bf1 > bf2) ? bf1 : bf2; } + +void bf_ge_bf () { bf = (bf1 >= bf2) ? bf1 : bf2; } + +void bf_eq_bf () { bf = (bf1 == bf2) ? bf1 : bf2; } + +void bf_lt_const () { bf = (bf1 < 3.14f) ? bf1 : bf2; } + +void bf_le_const () { bf = (bf1 <= 3.14f) ? bf1 : bf2; } + +void const_gt_bf () { bf = (3.14f > bf2) ? bf1 : bf2; } + +void const_ge_bf () { bf = (3.14f >= bf2) ? bf1 : bf2; } + +void bf_eq_const () { bf = (bf1 == 3.14f) ? bf1 : bf2; } + +/* { dg-final { scan-assembler-times "call\t__extendbfsf2" 15 } } */ +/* { dg-final { scan-assembler-not "call\t__ltbf2" } } */ +/* { dg-final { scan-assembler-not "call\t__lebf2" } } */ +/* { dg-final { scan-assembler-not "call\t__gtbf2" } } */ +/* { dg-final { scan-assembler-not "call\t__gebf2" } } */ +/* { dg-final { scan-assembler-not "call\t__eqbf2" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c new file mode 100644 index 00000000000..423a071d1a5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c @@ -0,0 +1,57 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i -mabi=ilp32 -O" { target { rv32 } } } */ +/* { dg-options "-march=rv64i -mabi=lp64 -O" { target { rv64 } } } */ + + +/* 1) float -> BF16 + * hf/sf/df/tf -> bf (call __trunc[h|s|d|t]fbf2) +*/ + +/* 2) BF16 -> float + * bf -> hf == sf -> hf (call __truncsfhf2) + * bf -> sf (call __extendbfsf2) + * bf -> df == bf -> sf -> df (call __extendbfsf2 && __extendsfdf2) + * bf -> tf == bf -> sf -> tf (call __extendbfsf2 && __extendsftf2) +*/ + +extern __bf16 bf; +extern _Float16 hf; +extern float sf; +extern double df; +extern long double tf; + +void hf_to_bf () { bf = hf; } +void bf_to_hf () { hf = bf; } + +void sf_to_bf () { bf = sf; } +void bf_to_sf () { sf = bf; } + +void df_to_bf () { bf = df; } +void bf_to_df () { df = bf; } + +void tf_to_bf () { bf = tf; } +void bf_to_tf () { tf = bf; } + +/* { dg-final { scan-assembler-times "call\t__extendbfsf2" 3 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__extendbfsf2" 3 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__extendsfdf2" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__extendsfdf2" 1 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__extendsftf2" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__extendsftf2" 1 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__truncsfhf2" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__truncsfhf2" 1 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__trunchfbf2" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__trunchfbf2" 1 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__truncsfbf2" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__truncsfbf2" 1 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__truncdfbf2" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__truncdfbf2" 1 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__trunctfbf2" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__trunctfbf2" 1 { target { rv64 } } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c new file mode 100644 index 00000000000..2c37302e294 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c @@ -0,0 +1,81 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i -mabi=ilp32 -O" { target { rv32 } } } */ +/* { dg-options "-march=rv64i -mabi=lp64 -O" { target { rv64 } } } */ + +/* 1) Integer -> BF16 + * qi/hi/si -> bf (call __floatsibf) + * uqi/uhi/usi -> bf (call __floatunsibf) + * di/ti -> bf (call __float[d|t]ibf) + * udi/uti -> bf (call __floatun[d|t]ibf) +*/ + +/* 2) BF16 -> Integer + * bf -> qi/hi/si (call __fixsfsi) + * bf -> uqi/uhi/usi (call __fixunssfsi) + * bf -> di/ti (call __fixsf[d|t]i) + * bf -> udi/uti (call __fixunssf[d|t]i) +*/ + +extern __bf16 bf; + +extern signed char qi; +extern unsigned char uqi; +extern signed short hi; +extern unsigned short uhi; +extern signed int si; +extern unsigned int usi; +extern signed long long di; +extern unsigned long long udi; + +void qi_to_bf () { bf = qi; } +void uqi_to_bf () { bf = uqi; } +void bf_to_qi () { qi = bf; } +void bf_to_uqi () { uqi = bf; } + +void hi_to_bf () { bf = hi; } +void uhi_to_bf () { bf = uhi; } +void bf_to_hi () { hi = bf; } +void bf_to_uhi () { uhi = bf; } + +void si_to_bf () { bf = si; } +void usi_to_bf () { bf = usi; } +void bf_to_si () { si = bf; } +void bf_to_usi () { usi = bf; } + +void di_to_bf () { bf = di; } +void udi_to_bf () { bf = udi; } +void bf_to_di () { di = bf; } +void bf_to_udi () { udi = bf; } + +#if __riscv_xlen == 64 +extern signed __int128 ti; +extern unsigned __int128 uti; +void ti_to_bf () { bf = ti; } /* { dg-final { scan-assembler-times "call\t__floattibf" 1 { target { rv64 } } } } */ +void uti_to_bf () { bf = uti; } /* { dg-final { scan-assembler-times "call\t__floatuntibf" 1 { target { rv64 } } } } */ +void bf_to_ti () { ti = bf; } /* { dg-final { scan-assembler-times "call\t__fixsfti" 1 { target { rv64 } } } } */ +void bf_to_uti () { uti = bf; } /* { dg-final { scan-assembler-times "call\t__fixunssfti" 1 { target { rv64 } } } } */ +#endif + +/* { dg-final { scan-assembler-times "call\t__fixsfsi" 3 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__fixsfsi" 3 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__fixsfdi" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__fixsfdi" 1 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__fixunssfsi" 3 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__fixunssfsi" 3 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__fixunssfdi" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__fixunssfdi" 1 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__floatsibf" 3 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__floatsibf" 3 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__floatdibf" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__floatdibf" 1 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__floatunsibf" 3 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__floatunsibf" 3 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__floatundibf" 1 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "call\t__floatundibf" 1 { target { rv64 } } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c b/gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c index 6341f7874d3..02c38e201fa 100644 --- a/gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c +++ b/gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c @@ -24,6 +24,6 @@ void foo3() __builtin_riscv_zicbom_cbo_inval((void*)0x111); } -/* { dg-final { scan-assembler-times "cbo.clean" 3 } } */ -/* { dg-final { scan-assembler-times "cbo.flush" 3 } } */ -/* { dg-final { scan-assembler-times "cbo.inval" 3 } } */ +/* { dg-final { scan-assembler-times "cbo.clean\t" 3 } } */ +/* { dg-final { scan-assembler-times "cbo.flush\t" 3 } } */ +/* { dg-final { scan-assembler-times "cbo.inval\t" 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c b/gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c index a04f106c8b0..040b96952bc 100644 --- a/gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c +++ b/gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c @@ -24,6 +24,6 @@ void foo3() __builtin_riscv_zicbom_cbo_inval((void*)0x111); } -/* { dg-final { scan-assembler-times "cbo.clean" 3 } } */ -/* { dg-final { scan-assembler-times "cbo.flush" 3 } } */ -/* { dg-final { scan-assembler-times "cbo.inval" 3 } } */ +/* { dg-final { scan-assembler-times "cbo.clean\t" 3 } } */ +/* { dg-final { scan-assembler-times "cbo.flush\t" 3 } } */ +/* { dg-final { scan-assembler-times "cbo.inval\t" 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c b/gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c index c5d78c1763d..97181154d85 100644 --- a/gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c +++ b/gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c @@ -18,6 +18,6 @@ int foo1() return __builtin_riscv_zicbop_cbo_prefetchi(1); } -/* { dg-final { scan-assembler-times "prefetch.i" 1 } } */ -/* { dg-final { scan-assembler-times "prefetch.r" 4 } } */ -/* { dg-final { scan-assembler-times "prefetch.w" 4 } } */ +/* { dg-final { scan-assembler-times "prefetch.i\t" 1 } } */ +/* { dg-final { scan-assembler-times "prefetch.r\t" 4 } } */ +/* { dg-final { scan-assembler-times "prefetch.w\t" 4 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c b/gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c index 6576365b39c..4871a97b21a 100644 --- a/gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c +++ b/gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c @@ -18,6 +18,6 @@ int foo1() return __builtin_riscv_zicbop_cbo_prefetchi(1); } -/* { dg-final { scan-assembler-times "prefetch.i" 1 } } */ -/* { dg-final { scan-assembler-times "prefetch.r" 4 } } */ -/* { dg-final { scan-assembler-times "prefetch.w" 4 } } */ +/* { dg-final { scan-assembler-times "prefetch.i\t" 1 } } */ +/* { dg-final { scan-assembler-times "prefetch.r\t" 4 } } */ +/* { dg-final { scan-assembler-times "prefetch.w\t" 4 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c b/gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c index 5eb78ab94b5..63b8782bf89 100644 --- a/gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c +++ b/gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c @@ -10,4 +10,4 @@ void foo1() __builtin_riscv_zicboz_cbo_zero((void*)0x121); } -/* { dg-final { scan-assembler-times "cbo.zero" 3 } } */ +/* { dg-final { scan-assembler-times "cbo.zero\t" 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c b/gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c index fdc9c719669..cc3bd505ec0 100644 --- a/gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c +++ b/gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c @@ -10,4 +10,4 @@ void foo1() __builtin_riscv_zicboz_cbo_zero((void*)0x121); } -/* { dg-final { scan-assembler-times "cbo.zero" 3 } } */ +/* { dg-final { scan-assembler-times "cbo.zero\t" 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmo-zicboz-zic64-1.c b/gcc/testsuite/gcc.target/riscv/cmo-zicboz-zic64-1.c new file mode 100644 index 00000000000..9192b391b11 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cmo-zicboz-zic64-1.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc_zic64b_zicboz" { target { rv32 } } } */ +/* { dg-options "-march=rv64gc_zic64b_zicboz" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ + +// 1x cbo.zero, 7x sd (rv64) or 14x sw (rv32), 1x sh, 1x sb +int +clear_buf_123 (void *p) +{ + p = __builtin_assume_aligned(p, 64); + __builtin_memset (p, 0, 123); +} + +// 2x cbo.zero, 1x addi 64 +int +clear_buf_128 (void *p) +{ + p = __builtin_assume_aligned(p, 64); + __builtin_memset (p, 0, 128); +} + +/* { dg-final { scan-assembler-times "cbo\.zero\t" 3 } } */ +/* { dg-final { scan-assembler-times "addi\ta\[0-9\]+,a\[0-9\]+,64" 1 } } */ +/* { dg-final { scan-assembler-times "sd\t" 7 { target { rv64 } } } } */ +/* { dg-final { scan-assembler-times "sw\t" 14 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "sh\t" 1 } } */ +/* { dg-final { scan-assembler-times "sb\t" 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmpmemsi-1.c b/gcc/testsuite/gcc.target/riscv/cmpmemsi-1.c new file mode 100644 index 00000000000..698f27d89fb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cmpmemsi-1.c @@ -0,0 +1,5 @@ +/* { dg-do run } */ +/* { dg-options "-pedantic-errors" } */ +/* { dg-timeout-factor 2 } */ + +#include "../../gcc.dg/memcmp-1.c" diff --git a/gcc/testsuite/gcc.target/riscv/cmpmemsi-2.c b/gcc/testsuite/gcc.target/riscv/cmpmemsi-2.c new file mode 100644 index 00000000000..77aa88b5b9c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cmpmemsi-2.c @@ -0,0 +1,42 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc_zbb" { target { rv32 } } } */ +/* { dg-options "-march=rv64gc_zbb" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */ + +#include <stddef.h> +#define aligned32 __attribute__ ((aligned (32))) + +const char myconst15[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; +const char myconst23[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; +const char myconst31[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; + +/* No expansion (unknown alignment) */ +#define MY_MEM_CMP_N(N) \ +int my_mem_cmp_##N(const char *b1, const char *b2) \ +{ \ + return __builtin_memcmp (b1, b2, N); \ +} + +/* No expansion (unknown alignment) */ +#define MY_MEM_CMP_CONST_N(N) \ +int my_mem_cmp_const_##N(const char *b1) \ +{ \ + return __builtin_memcmp (b1, myconst##N, sizeof(myconst##N)); \ +} + +MY_MEM_CMP_N(15) +MY_MEM_CMP_CONST_N(15) + +MY_MEM_CMP_N(23) +MY_MEM_CMP_CONST_N(23) + +MY_MEM_CMP_N(31) +MY_MEM_CMP_CONST_N(31) + +/* { dg-final { scan-assembler-times "\t(call|tail)\tmemcmp" 6 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmpmemsi-3.c b/gcc/testsuite/gcc.target/riscv/cmpmemsi-3.c new file mode 100644 index 00000000000..193cd4a343e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cmpmemsi-3.c @@ -0,0 +1,43 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc_zbb" { target { rv32 } } } */ +/* { dg-options "-march=rv64gc_zbb" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */ + +#include <stddef.h> +#define aligned32 __attribute__ ((aligned (32))) + +const char myconst15[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; +const char myconst23[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; +const char myconst31[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; + +#define MY_MEM_CMP_ALIGNED_N(N) \ +int my_mem_cmp_aligned_##N(const char *b1, const char *b2) \ +{ \ + b1 = __builtin_assume_aligned (b1, 4096); \ + b2 = __builtin_assume_aligned (b2, 4096); \ + return __builtin_memcmp (b1, b2, N); \ +} + +#define MY_MEM_CMP_ALIGNED_CONST_N(N) \ +int my_mem_cmp_aligned_const_##N(const char *b1) \ +{ \ + b1 = __builtin_assume_aligned (b1, 4096); \ + return __builtin_memcmp (b1, myconst##N, sizeof(myconst##N)); \ +} + +MY_MEM_CMP_ALIGNED_N(15) +MY_MEM_CMP_ALIGNED_CONST_N(15) + +MY_MEM_CMP_ALIGNED_N(23) +MY_MEM_CMP_ALIGNED_CONST_N(23) + +MY_MEM_CMP_ALIGNED_N(31) +MY_MEM_CMP_ALIGNED_CONST_N(31) + +/* { dg-final { scan-assembler-not "\t(call|tail)\tmemcmp" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cmpmemsi.c b/gcc/testsuite/gcc.target/riscv/cmpmemsi.c new file mode 100644 index 00000000000..f4ccf269924 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cmpmemsi.c @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc_zbb" { target { rv32 } } } */ +/* { dg-options "-march=rv64gc_zbb" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */ + +#include <stddef.h> + +/* No expansion (unknown size) */ +int my_mem_cmp_n(const char *b1, const char *b2, size_t n) +{ + return __builtin_memcmp (b1, b2, n); +} + +/* No expansion (unknown size) */ +int my_mem_cmp_aligned(const char *b1, const char *b2, size_t n) +{ + b1 = __builtin_assume_aligned (b1, 4096); + b2 = __builtin_assume_aligned (b2, 4096); + return __builtin_memcmp (b1, b2, n); +} + +/* { dg-final { scan-assembler-times "\t(call|tail)\tmemcmp" 2 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cpymem-32-ooo.c b/gcc/testsuite/gcc.target/riscv/cpymem-32-ooo.c new file mode 100644 index 00000000000..2a48567353a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cpymem-32-ooo.c @@ -0,0 +1,137 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv32 } */ +/* { dg-options "-march=rv32gc -mabi=ilp32d -mtune=generic-ooo" } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ +/* { dg-final { check-function-bodies "**" "" } } */ +/* { dg-allow-blank-lines-in-output 1 } */ + +#define COPY_N(N) \ +void copy_##N (void *to, void *from) \ +{ \ + __builtin_memcpy (to, from, N); \ +} + +#define COPY_ALIGNED_N(N) \ +void copy_aligned_##N (void *to, void *from) \ +{ \ + to = __builtin_assume_aligned(to, sizeof(long)); \ + from = __builtin_assume_aligned(from, sizeof(long)); \ + __builtin_memcpy (to, from, N); \ +} + +/* +**copy_7: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** sw\t[at][0-9],0\([at][0-9]\) +** lw\t[at][0-9],3\([at][0-9]\) +** sw\t[at][0-9],3\([at][0-9]\) +** ... +*/ +COPY_N(7) + +/* +**copy_aligned_7: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** sw\t[at][0-9],0\([at][0-9]\) +** lw\t[at][0-9],3\([at][0-9]\) +** sw\t[at][0-9],3\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(7) + +/* +**copy_8: +** ... +** lw\ta[0-9],0\(a[0-9]\) +** sw\ta[0-9],0\(a[0-9]\) +** ... +*/ +COPY_N(8) + +/* +**copy_aligned_8: +** ... +** lw\ta[0-9],0\(a[0-9]\) +** sw\ta[0-9],0\(a[0-9]\) +** ... +*/ +COPY_ALIGNED_N(8) + +/* +**copy_11: +** ... +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** sw\t[at][0-9],0\([at][0-9]\) +** ... +** lw\t[at][0-9],7\([at][0-9]\) +** sw\t[at][0-9],7\([at][0-9]\) +** ... +*/ +COPY_N(11) + +/* +**copy_aligned_11: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** sw\t[at][0-9],0\([at][0-9]\) +** ... +** lw\t[at][0-9],7\([at][0-9]\) +** sw\t[at][0-9],7\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(11) + +/* +**copy_15: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** ... +** sw\t[at][0-9],0\([at][0-9]\) +** ... +** lw\t[at][0-9],11\([at][0-9]\) +** sw\t[at][0-9],11\([at][0-9]\) +** ... +*/ +COPY_N(15) + +/* +**copy_aligned_15: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** ... +** sw\t[at][0-9],0\([at][0-9]\) +** ... +** lw\t[at][0-9],11\([at][0-9]\) +** sw\t[at][0-9],11\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(15) + +/* +**copy_27: +** ... +** lw\t[at][0-9],20\([at][0-9]\) +** ... +** sw\t[at][0-9],20\([at][0-9]\) +** ... +** lw\t[at][0-9],23\([at][0-9]\) +** sw\t[at][0-9],23\([at][0-9]\) +** ... +*/ +COPY_N(27) + +/* +**copy_aligned_27: +** ... +** lw\t[at][0-9],20\([at][0-9]\) +** ... +** sw\t[at][0-9],20\([at][0-9]\) +** ... +** lw\t[at][0-9],23\([at][0-9]\) +** sw\t[at][0-9],23\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(27) diff --git a/gcc/testsuite/gcc.target/riscv/cpymem-32.c b/gcc/testsuite/gcc.target/riscv/cpymem-32.c new file mode 100644 index 00000000000..2030a39ca97 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cpymem-32.c @@ -0,0 +1,136 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv32 } */ +/* { dg-options "-march=rv32gc -mabi=ilp32d -mtune=rocket" } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ +/* { dg-final { check-function-bodies "**" "" } } */ +/* { dg-allow-blank-lines-in-output 1 } */ + +#define COPY_N(N) \ +void copy_##N (void *to, void *from) \ +{ \ + __builtin_memcpy (to, from, N); \ +} + +#define COPY_ALIGNED_N(N) \ +void copy_aligned_##N (void *to, void *from) \ +{ \ + to = __builtin_assume_aligned(to, sizeof(long)); \ + from = __builtin_assume_aligned(from, sizeof(long)); \ + __builtin_memcpy (to, from, N); \ +} + +/* +**copy_7: +** ... +** lbu\t[at][0-9],0\([at][0-9]\) +** ... +** sb\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],6\([at][0-9]\) +** ... +** sb\t[at][0-9],6\([at][0-9]\) +** ... +*/ +COPY_N(7) + +/* +**copy_aligned_7: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** sw\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],6\([at][0-9]\) +** sb\t[at][0-9],6\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(7) + +/* +**copy_8: +** ... +** lbu\t[at][0-9],0\([at][0-9]\) +** ... +** sb\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],7\([at][0-9]\) +** sb\t[at][0-9],7\([at][0-9]\) +** ... +*/ +COPY_N(8) + +/* +**copy_aligned_8: +** ... +** lw\ta[0-9],0\(a[0-9]\) +** sw\ta[0-9],0\(a[0-9]\) +** ... +*/ +COPY_ALIGNED_N(8) + +/* +**copy_11: +** ... +** lbu\t[at][0-9],0\([at][0-9]\) +** ... +** sb\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],10\([at][0-9]\) +** sb\t[at][0-9],10\([at][0-9]\) +** ... +*/ +COPY_N(11) + +/* +**copy_aligned_11: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** ... +** sw\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],10\([at][0-9]\) +** sb\t[at][0-9],10\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(11) + +/* +**copy_15: +** ... +** (call|tail)\tmemcpy +** ... +*/ +COPY_N(15) + +/* +**copy_aligned_15: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** ... +** sw\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],14\([at][0-9]\) +** sb\t[at][0-9],14\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(15) + +/* +**copy_27: +** ... +** (call|tail)\tmemcpy +** ... +*/ +COPY_N(27) + +/* +**copy_aligned_27: +** ... +** lw\t[at][0-9],20\([at][0-9]\) +** ... +** sw\t[at][0-9],20\([at][0-9]\) +** ... +** lbu\t[at][0-9],26\([at][0-9]\) +** sb\t[at][0-9],26\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(27) diff --git a/gcc/testsuite/gcc.target/riscv/cpymem-64-ooo.c b/gcc/testsuite/gcc.target/riscv/cpymem-64-ooo.c new file mode 100644 index 00000000000..147324093cb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cpymem-64-ooo.c @@ -0,0 +1,130 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=generic-ooo" } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ +/* { dg-final { check-function-bodies "**" "" } } */ +/* { dg-allow-blank-lines-in-output 1 } */ + +#define COPY_N(N) \ +void copy_##N (void *to, void *from) \ +{ \ + __builtin_memcpy (to, from, N); \ +} + +#define COPY_ALIGNED_N(N) \ +void copy_aligned_##N (void *to, void *from) \ +{ \ + to = __builtin_assume_aligned(to, sizeof(long)); \ + from = __builtin_assume_aligned(from, sizeof(long)); \ + __builtin_memcpy (to, from, N); \ +} + +/* +**copy_7: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** sw\t[at][0-9],0\([at][0-9]\) +** lw\t[at][0-9],3\([at][0-9]\) +** sw\t[at][0-9],3\([at][0-9]\) +** ... +*/ +COPY_N(7) + +/* +**copy_aligned_7: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** sw\t[at][0-9],0\([at][0-9]\) +** lw\t[at][0-9],3\([at][0-9]\) +** sw\t[at][0-9],3\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(7) + +/* +**copy_8: +** ... +** ld\ta[0-9],0\(a[0-9]\) +** sd\ta[0-9],0\(a[0-9]\) +** ... +*/ +COPY_N(8) + +/* +**copy_aligned_8: +** ... +** ld\ta[0-9],0\(a[0-9]\) +** sd\ta[0-9],0\(a[0-9]\) +** ... +*/ +COPY_ALIGNED_N(8) + +/* +**copy_11: +** ... +** ld\t[at][0-9],0\([at][0-9]\) +** sd\t[at][0-9],0\([at][0-9]\) +** lw\t[at][0-9],7\([at][0-9]\) +** sw\t[at][0-9],7\([at][0-9]\) +** ... +*/ +COPY_N(11) + +/* +**copy_aligned_11: +** ... +** ld\t[at][0-9],0\([at][0-9]\) +** sd\t[at][0-9],0\([at][0-9]\) +** lw\t[at][0-9],7\([at][0-9]\) +** sw\t[at][0-9],7\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(11) + +/* +**copy_15: +** ... +** ld\t[at][0-9],0\([at][0-9]\) +** sd\t[at][0-9],0\([at][0-9]\) +** ld\t[at][0-9],7\([at][0-9]\) +** sd\t[at][0-9],7\([at][0-9]\) +** ... +*/ +COPY_N(15) + +/* +**copy_aligned_15: +** ... +** ld\t[at][0-9],0\([at][0-9]\) +** sd\t[at][0-9],0\([at][0-9]\) +** ld\t[at][0-9],7\([at][0-9]\) +** sd\t[at][0-9],7\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(15) + +/* +**copy_27: +** ... +** ld\t[at][0-9],16\([at][0-9]\) +** ... +** sd\t[at][0-9],16\([at][0-9]\) +** ... +** lw\t[at][0-9],23\([at][0-9]\) +** sw\t[at][0-9],23\([at][0-9]\) +** ... +*/ +COPY_N(27) + +/* +**copy_aligned_27: +** ... +** ld\t[at][0-9],16\([at][0-9]\) +** ... +** sd\t[at][0-9],16\([at][0-9]\) +** ... +** lw\t[at][0-9],23\([at][0-9]\) +** sw\t[at][0-9],23\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(27) diff --git a/gcc/testsuite/gcc.target/riscv/cpymem-64.c b/gcc/testsuite/gcc.target/riscv/cpymem-64.c new file mode 100644 index 00000000000..37b8ef0e020 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cpymem-64.c @@ -0,0 +1,135 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -mtune=rocket" } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ +/* { dg-final { check-function-bodies "**" "" } } */ +/* { dg-allow-blank-lines-in-output 1 } */ + +#define COPY_N(N) \ +void copy_##N (void *to, void *from) \ +{ \ + __builtin_memcpy (to, from, N); \ +} + +#define COPY_ALIGNED_N(N) \ +void copy_aligned_##N (void *to, void *from) \ +{ \ + to = __builtin_assume_aligned(to, sizeof(long)); \ + from = __builtin_assume_aligned(from, sizeof(long)); \ + __builtin_memcpy (to, from, N); \ +} + +/* +**copy_7: +** ... +** lbu\t[at][0-9],0\([at][0-9]\) +** ... +** sb\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],6\([at][0-9]\) +** sb\t[at][0-9],6\([at][0-9]\) +** ... +*/ +COPY_N(7) + +/* +**copy_aligned_7: +** ... +** lw\t[at][0-9],0\([at][0-9]\) +** sw\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],6\([at][0-9]\) +** sb\t[at][0-9],6\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(7) + +/* +**copy_8: +** ... +** lbu\t[at][0-9],0\([at][0-9]\) +** ... +** sb\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],7\([at][0-9]\) +** sb\t[at][0-9],7\([at][0-9]\) +** ... +*/ +COPY_N(8) + +/* +**copy_aligned_8: +** ... +** ld\ta[0-9],0\(a[0-9]\) +** sd\ta[0-9],0\(a[0-9]\) +** ... +*/ +COPY_ALIGNED_N(8) + +/* +**copy_11: +** ... +** lbu\t[at][0-9],0\([at][0-9]\) +** ... +** sb\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],10\([at][0-9]\) +** sb\t[at][0-9],10\([at][0-9]\) +** ... +*/ +COPY_N(11) + +/* +**copy_aligned_11: +** ... +** ld\t[at][0-9],0\([at][0-9]\) +** ... +** sd\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],10\([at][0-9]\) +** sb\t[at][0-9],10\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(11) + +/* +**copy_15: +** ... +** (call|tail)\tmemcpy +** ... +*/ +COPY_N(15) + +/* +**copy_aligned_15: +** ... +** ld\t[at][0-9],0\([at][0-9]\) +** ... +** sd\t[at][0-9],0\([at][0-9]\) +** ... +** lbu\t[at][0-9],14\([at][0-9]\) +** sb\t[at][0-9],14\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(15) + +/* +**copy_27: +** ... +** (call|tail)\tmemcpy +** ... +*/ +COPY_N(27) + +/* +**copy_aligned_27: +** ... +** ld\t[at][0-9],16\([at][0-9]\) +** ... +** sd\t[at][0-9],16\([at][0-9]\) +** ... +** lbu\t[at][0-9],26\([at][0-9]\) +** sb\t[at][0-9],26\([at][0-9]\) +** ... +*/ +COPY_ALIGNED_N(27) diff --git a/gcc/testsuite/gcc.target/riscv/cpymemsi-1.c b/gcc/testsuite/gcc.target/riscv/cpymemsi-1.c new file mode 100644 index 00000000000..30e9f119bed --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cpymemsi-1.c @@ -0,0 +1,7 @@ +/* { dg-do run } */ +/* { dg-options "-pedantic-errors" } */ +/* { dg-timeout-factor 2 } */ + +#include "../../gcc.dg/memcmp-1.c" +/* Yeah, this memcmp test exercises plenty of memcpy, more than any of the + memcpy tests. */ diff --git a/gcc/testsuite/gcc.target/riscv/cpymemsi-2.c b/gcc/testsuite/gcc.target/riscv/cpymemsi-2.c new file mode 100644 index 00000000000..833d1c04487 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cpymemsi-2.c @@ -0,0 +1,42 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc" { target { rv32 } } } */ +/* { dg-options "-march=rv64gc" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */ + +#include <stddef.h> +#define aligned32 __attribute__ ((aligned (32))) + +const char myconst15[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; +const char myconst23[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; +const char myconst31[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; + +/* No expansion (unknown alignment) */ +#define MY_MEM_CPY_N(N) \ +void my_mem_cpy_##N (char *b1, const char *b2) \ +{ \ + __builtin_memcpy (b1, b2, N); \ +} + +/* No expansion (unknown alignment) */ +#define MY_MEM_CPY_CONST_N(N) \ +void my_mem_cpy_const_##N (char *b1) \ +{ \ + __builtin_memcpy (b1, myconst##N, sizeof(myconst##N));\ +} + +MY_MEM_CPY_N(15) +MY_MEM_CPY_CONST_N(15) + +MY_MEM_CPY_N(23) +MY_MEM_CPY_CONST_N(23) + +MY_MEM_CPY_N(31) +MY_MEM_CPY_CONST_N(31) + +/* { dg-final { scan-assembler-times "\t(call|tail)\tmemcpy" 6 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cpymemsi-3.c b/gcc/testsuite/gcc.target/riscv/cpymemsi-3.c new file mode 100644 index 00000000000..803765195b2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cpymemsi-3.c @@ -0,0 +1,43 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc" { target { rv32 } } } */ +/* { dg-options "-march=rv64gc" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */ + +#include <stddef.h> +#define aligned32 __attribute__ ((aligned (32))) + +const char myconst15[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; +const char myconst23[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; +const char myconst31[] aligned32 = { 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7, + 0, 1, 2, 3, 4, 5, 6, 7 }; + +#define MY_MEM_CPY_ALIGNED_N(N) \ +void my_mem_cpy_aligned_##N(char *b1, const char *b2) \ +{ \ + b1 = __builtin_assume_aligned (b1, 4096); \ + b2 = __builtin_assume_aligned (b2, 4096); \ + __builtin_memcpy (b1, b2, N); \ +} + +#define MY_MEM_CPY_ALIGNED_CONST_N(N) \ +void my_mem_cpy_aligned_const_##N(char *b1) \ +{ \ + b1 = __builtin_assume_aligned (b1, 4096); \ + __builtin_memcpy (b1, myconst##N, sizeof(myconst##N)); \ +} + +MY_MEM_CPY_ALIGNED_N(15) +MY_MEM_CPY_ALIGNED_CONST_N(15) + +MY_MEM_CPY_ALIGNED_N(23) +MY_MEM_CPY_ALIGNED_CONST_N(23) + +MY_MEM_CPY_ALIGNED_N(31) +MY_MEM_CPY_ALIGNED_CONST_N(31) + +/* { dg-final { scan-assembler-not "\t(call|tail)\tmemcpy" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/cpymemsi.c b/gcc/testsuite/gcc.target/riscv/cpymemsi.c new file mode 100644 index 00000000000..d27a488c8ed --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/cpymemsi.c @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc" { target { rv32 } } } */ +/* { dg-options "-march=rv64gc" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */ + +#include <stddef.h> + +/* No expansion (unknown size) */ +void my_mem_cpy_n(char *b1, const char *b2, size_t n) +{ + __builtin_memcpy (b1, b2, n); +} + +/* No expansion (unknown size) */ +void my_mem_cpy_aligned(char *b1, const char *b2, size_t n) +{ + b1 = __builtin_assume_aligned (b1, 4096); + b2 = __builtin_assume_aligned (b2, 4096); + __builtin_memcpy (b1, b2, n); +} + +/* { dg-final { scan-assembler-times "\t(call|tail)\tmemcpy" 2 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/extend-shift-helpers.h b/gcc/testsuite/gcc.target/riscv/extend-shift-helpers.h new file mode 100644 index 00000000000..720672de242 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/extend-shift-helpers.h @@ -0,0 +1,46 @@ +#ifndef EXTEND_SHIFT_HELPERS_H +#define EXTEND_SHIFT_HELPERS_H + +#define RT_EXT_CT_RSHIFT_N_AT(RTS,RT,CTS,CT,N,ATS,AT) \ +RTS RT \ +RTS##_##RT##_ext_##CTS##_##CT##_rshift_##N##_##ATS##_##AT(ATS AT v) \ +{ \ + return (CTS CT)(v >> N); \ +} + +#define SLONG_EXT_SCHAR_RSHIFT_N_SLONG(N) \ + RT_EXT_CT_RSHIFT_N_AT(signed,long,signed,char,N,signed,long) + +#define SLONG_EXT_SSHORT_RSHIFT_N_SLONG(N) \ + RT_EXT_CT_RSHIFT_N_AT(signed,long,signed,short,N,signed,long) + +#define SLONG_EXT_SINT_RSHIFT_N_SLONG(N) \ + RT_EXT_CT_RSHIFT_N_AT(signed,long,signed,int,N,signed,long) + +#define SINT_EXT_SSHORT_RSHIFT_N_SINT(N) \ + RT_EXT_CT_RSHIFT_N_AT(signed,int,signed,short,N,signed,int) + +#define SINT_EXT_SSHORT_RSHIFT_N_SLONG(N) \ + RT_EXT_CT_RSHIFT_N_AT(signed,int,signed,short,N,signed,long) + +#define SLONG_EXT_SSHORT_RSHIFT_N_SINT(N) \ + RT_EXT_CT_RSHIFT_N_AT(signed,long,signed,short,N,signed,int) + + + +#define ULONG_EXT_USHORT_RSHIFT_N_ULONG(N) \ + RT_EXT_CT_RSHIFT_N_AT(unsigned,long,unsigned,short,N,unsigned,long) + +#define ULONG_EXT_UINT_RSHIFT_N_ULONG(N) \ + RT_EXT_CT_RSHIFT_N_AT(unsigned,long,unsigned,int,N,unsigned,long) + +#define UINT_EXT_USHORT_RSHIFT_N_UINT(N) \ + RT_EXT_CT_RSHIFT_N_AT(unsigned,int,unsigned,short,N,unsigned,int) + +#define UINT_EXT_USHORT_RSHIFT_N_ULONG(N) \ + RT_EXT_CT_RSHIFT_N_AT(unsigned,int,unsigned,short,N,unsigned,long) + +#define ULONG_EXT_USHORT_RSHIFT_N_UINT(N) \ + RT_EXT_CT_RSHIFT_N_AT(unsigned,long,unsigned,short,N,unsigned,int) + +#endif /* EXTEND_SHIFT_HELPERS_H */ diff --git a/gcc/testsuite/gcc.target/riscv/fix.c b/gcc/testsuite/gcc.target/riscv/fix.c new file mode 100644 index 00000000000..265a7da1fc5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/fix.c @@ -0,0 +1,34 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" } } */ + +int +foo (double n) +{ + return n; +} + +int +foo_1 (float n) +{ + return n; +} + +unsigned int +foo_2 (double n) +{ + return n; +} + +unsigned int +foo_3 (float n) +{ + return n; +} + +/* { dg-final { scan-assembler-times {\mfcvt.w.d} 1 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.w.s} 1 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.wu.d} 1 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.wu.s} 1 } } */ +/* { dg-final { scan-assembler-not "\\ssext.w\\s" } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/memcpy-nonoverlapping.c b/gcc/testsuite/gcc.target/riscv/memcpy-nonoverlapping.c new file mode 100644 index 00000000000..1c99e13fc26 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/memcpy-nonoverlapping.c @@ -0,0 +1,54 @@ +/* { dg-do compile } */ +/* { dg-options "-mcpu=sifive-u74 -march=rv64gc -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Oz" "-Og" } } */ + + +#define COPY_N(N) \ +void copy##N (char *src, char *dst) \ +{ \ + dst = __builtin_assume_aligned (dst, 4096); \ + src = __builtin_assume_aligned (src, 4096); \ + __builtin_memcpy (dst, src, N); \ +} + +/* Emits 1x {ld,sd} and 1x {lhu,lbu,sh,sb}. */ +COPY_N(11) + +/* Emits 1x {ld,sd} and 1x {lw,lbu,sw,sb}. */ +COPY_N(13) + +/* Emits 1x {ld,sd} and 1x {lw,lhu,sw,sh}. */ +COPY_N(14) + +/* Emits 1x {ld,sd} and 1x {lw,lhu,lbu,sw,sh,sb}. */ +COPY_N(15) + +/* Emits 2x {ld,sd} and 1x {lhu,lbu,sh,sb}. */ +COPY_N(19) + +/* Emits 2x {ld,sd} and 1x {lw,lhu,lbu,sw,sh,sb}. */ +COPY_N(23) + +/* The by-pieces infrastructure handles up to 24 bytes. + So the code below is emitted via cpymemsi/block_move_straight. */ + +/* Emits 3x {ld,sd} and 1x {lhu,lbu,sh,sb}. */ +COPY_N(27) + +/* Emits 3x {ld,sd} and 1x {lw,lbu,sw,sb}. */ +COPY_N(29) + +/* Emits 3x {ld,sd} and 1x {lw,lhu,lbu,sw,sh,sb}. */ +COPY_N(31) + +/* { dg-final { scan-assembler-times "ld\t" 17 } } */ +/* { dg-final { scan-assembler-times "sd\t" 17 } } */ + +/* { dg-final { scan-assembler-times "lw\t" 6 } } */ +/* { dg-final { scan-assembler-times "sw\t" 6 } } */ + +/* { dg-final { scan-assembler-times "lhu\t" 7 } } */ +/* { dg-final { scan-assembler-times "sh\t" 7 } } */ + +/* { dg-final { scan-assembler-times "lbu\t" 8 } } */ +/* { dg-final { scan-assembler-times "sb\t" 8 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/memset-nonoverlapping.c b/gcc/testsuite/gcc.target/riscv/memset-nonoverlapping.c new file mode 100644 index 00000000000..c4311c7a8d0 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/memset-nonoverlapping.c @@ -0,0 +1,45 @@ +/* { dg-do compile } */ +/* { dg-options "-mcpu=sifive-u74 -march=rv64gc -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Oz" "-Og" } } */ + +#define ZERO_N(N) \ +void zero##N (char *dst) \ +{ \ + dst = __builtin_assume_aligned (dst, 4096); \ + __builtin_memset (dst, 0, N); \ +} + +/* Emits 1x sd and 1x {sh,sb}. */ +ZERO_N(11) + +/* Emits 1x sd and 1x {sw,sb}. */ +ZERO_N(13) + +/* Emits 1x sd and 1x {sw,sh}. */ +ZERO_N(14) + +/* Emits 1x sd and 1x {sw,sh,sb}. */ +ZERO_N(15) + +/* Emits 2x sd and 1x {sh,sb}. */ +ZERO_N(19) + +/* Emits 2x sd and 1x {sw,sh,sb}. */ +ZERO_N(23) + +/* The by-pieces infrastructure handles up to 24 bytes. + So the code below is emitted via cpymemsi/block_move_straight. */ + +/* Emits 3x sd and 1x {sh,sb}. */ +ZERO_N(27) + +/* Emits 3x sd and 1x {sw,sb}. */ +ZERO_N(29) + +/* Emits 3x sd and 1x {sw,sh,sb}. */ +ZERO_N(31) + +/* { dg-final { scan-assembler-times "sd\t" 17 } } */ +/* { dg-final { scan-assembler-times "sw\t" 6 } } */ +/* { dg-final { scan-assembler-times "sh\t" 7 } } */ +/* { dg-final { scan-assembler-times "sb\t" 8 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/pack32.c b/gcc/testsuite/gcc.target/riscv/pack32.c new file mode 100644 index 00000000000..24304d6b614 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pack32.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv32gc_zbkb -mabi=ilp32" } */ +/* { dg-skip-if "" { *-*-* } { "-g" "-flto" "-O0" } } */ + +#include <stdint-gcc.h> + +uint32_t foo1(uint32_t rs1, uint32_t rs2) +{ + return (rs1 << 16) | ((rs2 << 16) >> 16); +} + +uint32_t foo2(uint32_t rs1, uint32_t rs2) +{ + return (rs1 << 16) | (rs2 & 65535); +} + +/* { dg-final { scan-assembler-times "\\spack\\s" 2 } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/pack64.c b/gcc/testsuite/gcc.target/riscv/pack64.c new file mode 100644 index 00000000000..7f54baabb2c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pack64.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv64gc_zbkb -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-g" "-flto" "-O0" } } */ +#include <stdint-gcc.h> + +uint64_t foo1(uint64_t rs1, uint64_t rs2) +{ + return (rs1 << 32) | ((rs2 << 32) >> 32); +} + +uint64_t foo2(uint64_t rs1, uint64_t rs2) +{ + return (rs1 << 32) | (rs2 & 4294967295); +} + +/* { dg-final { scan-assembler-times "\\spack\\s" 2 } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/packh32.c b/gcc/testsuite/gcc.target/riscv/packh32.c new file mode 100644 index 00000000000..803224189d5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/packh32.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv32gc_zbkb -mabi=ilp32" } */ +/* { dg-skip-if "" { *-*-* } { "-g" "-flto" "-O0" } } */ + +#include <stdint-gcc.h> + +int32_t foo1(int32_t rs1, int32_t rs2) +{ + return (rs1 & 255) | ((rs2 & 255) << 8); +} + +/* { dg-final { scan-assembler-times "\\spackh\\s" 1 } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/packh64.c b/gcc/testsuite/gcc.target/riscv/packh64.c new file mode 100644 index 00000000000..b91d4014c9a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/packh64.c @@ -0,0 +1,6 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv64gc_zbkb -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-g" "-flto" "-O0" } } */ +#include "packh32.c" +/* { dg-final { scan-assembler-times "\\spackh\\s" 1 } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/packw.c b/gcc/testsuite/gcc.target/riscv/packw.c new file mode 100644 index 00000000000..c178738a43b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/packw.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv64gc_zbkb -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-g" "-flto" "-O0" } } */ +#include <stdint-gcc.h> + +uint32_t foo1(uint32_t rs1, uint32_t rs2) +{ + return (rs1 << 16) | ((rs2 << 16) >> 16); +} + +/* { dg-final { scan-assembler-times "\\spackw\\s" 1 } } */ +/* { dg-final { scan-assembler-not "\\ssext\\s" } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/pr105733.c b/gcc/testsuite/gcc.target/riscv/pr105733.c new file mode 100644 index 00000000000..6156c36dc7e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr105733.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options { -march=rv64gcv -mabi=lp64d } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-Os" "-Oz" } } */ + +#define BUF_SIZE 2064 + +void +foo(unsigned long i) +{ + volatile char buf[BUF_SIZE]; + + buf[i] = 0; +} + +/* { dg-final { scan-assembler-not {li\t[a-x0-9]+,4096} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/pr111501.c b/gcc/testsuite/gcc.target/riscv/pr111501.c new file mode 100644 index 00000000000..db48c34ce9a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr111501.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* { dg-options "-march=rv64gc" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ + +unsigned int +do_shift(unsigned long csum) +{ + return (unsigned short)(csum >> 32); +} + +unsigned int +do_shift2(unsigned long csum) +{ + return (csum << 16) >> 48; +} + +/* { dg-final { scan-assembler-times "slli\t" 2 } } */ +/* { dg-final { scan-assembler-times "srli\t" 2 } } */ +/* { dg-final { scan-assembler-times "slli\ta\[0-9\],a\[0-9\],16" 2 } } */ +/* { dg-final { scan-assembler-times "srli\ta\[0-9\],a\[0-9\],48" 2 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/pr115142.c b/gcc/testsuite/gcc.target/riscv/pr115142.c new file mode 100644 index 00000000000..40ba49dfa20 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr115142.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-O0 -ftree-ter" } */ + +long a; +char b; +void e() { + char f[8][1]; + b = f[a][a]; +} + diff --git a/gcc/testsuite/gcc.target/riscv/predef-34.c b/gcc/testsuite/gcc.target/riscv/predef-34.c new file mode 100644 index 00000000000..0a993271f7f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/predef-34.c @@ -0,0 +1,47 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv32i_zfbfmin -mabi=ilp32f -mcmodel=medlow -misa-spec=20191213" } */ + +int main () { + +#ifndef __riscv_arch_test +#error "__riscv_arch_test" +#endif + +#if __riscv_xlen != 32 +#error "__riscv_xlen" +#endif + +#if !defined(__riscv_i) +#error "__riscv_i" +#endif + +#if !defined(__riscv_f) +#error "__riscv_f" +#endif + +#if !defined(__riscv_zfhmin) +#error "__riscv_zfhmin" +#endif + +#if !defined(__riscv_zfbfmin) +#error "__riscv_zfbfmin" +#endif + +#if defined(__riscv_v) +#error "__riscv_v" +#endif + +#if defined(__riscv_d) +#error "__riscv_d" +#endif + +#if defined(__riscv_c) +#error "__riscv_c" +#endif + +#if defined(__riscv_a) +#error "__riscv_a" +#endif + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/predef-35.c b/gcc/testsuite/gcc.target/riscv/predef-35.c new file mode 100644 index 00000000000..76b328a8932 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/predef-35.c @@ -0,0 +1,47 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv64i_zfbfmin -mabi=lp64f -mcmodel=medlow -misa-spec=20191213" } */ + +int main () { + +#ifndef __riscv_arch_test +#error "__riscv_arch_test" +#endif + +#if __riscv_xlen != 64 +#error "__riscv_xlen" +#endif + +#if !defined(__riscv_i) +#error "__riscv_i" +#endif + +#if !defined(__riscv_f) +#error "__riscv_f" +#endif + +#if !defined(__riscv_zfhmin) +#error "__riscv_zfhmin" +#endif + +#if !defined(__riscv_zfbfmin) +#error "__riscv_zfbfmin" +#endif + +#if defined(__riscv_v) +#error "__riscv_v" +#endif + +#if defined(__riscv_d) +#error "__riscv_d" +#endif + +#if defined(__riscv_c) +#error "__riscv_c" +#endif + +#if defined(__riscv_a) +#error "__riscv_a" +#endif + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/predef-36.c b/gcc/testsuite/gcc.target/riscv/predef-36.c new file mode 100644 index 00000000000..b0205b08513 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/predef-36.c @@ -0,0 +1,48 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv32i_zvfbfwma -mabi=ilp32f -mcmodel=medlow -misa-spec=20191213" } */ + +int +main () +{ +#ifndef __riscv_arch_test +#error "__riscv_arch_test" +#endif + +#if __riscv_xlen != 32 +#error "__riscv_xlen" +#endif + +#if !defined(__riscv_i) +#error "__riscv_i" +#endif + +#if !defined(__riscv_f) +#error "__riscv_f" +#endif + +#if !defined(__riscv_zfbfmin) +#error "__riscv_zfbfmin" +#endif + +#if !defined(__riscv_zvfbfwma) +#error "__riscv_zvfbfwma" +#endif + +#if defined(__riscv_v) +#error "__riscv_v" +#endif + +#if defined(__riscv_d) +#error "__riscv_d" +#endif + +#if defined(__riscv_c) +#error "__riscv_c" +#endif + +#if defined(__riscv_a) +#error "__riscv_a" +#endif + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/predef-37.c b/gcc/testsuite/gcc.target/riscv/predef-37.c new file mode 100644 index 00000000000..b5aa41102f4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/predef-37.c @@ -0,0 +1,48 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv64iv_zvfbfwma -mabi=lp64d -mcmodel=medlow -misa-spec=20191213" } */ + +int +main () +{ +#ifndef __riscv_arch_test +#error "__riscv_arch_test" +#endif + +#if __riscv_xlen != 64 +#error "__riscv_xlen" +#endif + +#if !defined(__riscv_i) +#error "__riscv_i" +#endif + +#if !defined(__riscv_f) +#error "__riscv_f" +#endif + +#if !defined(__riscv_d) +#error "__riscv_d" +#endif + +#if !defined(__riscv_v) +#error "__riscv_v" +#endif + +#if !defined(__riscv_zfbfmin) +#error "__riscv_zfbfmin" +#endif + +#if !defined(__riscv_zvfbfwma) +#error "__riscv_zvfbfwma" +#endif + +#if defined(__riscv_c) +#error "__riscv_c" +#endif + +#if defined(__riscv_a) +#error "__riscv_a" +#endif + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/round.c b/gcc/testsuite/gcc.target/riscv/round.c new file mode 100644 index 00000000000..decfc82a390 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/round.c @@ -0,0 +1,144 @@ +#include <math.h> + +extern void abort (void); +extern void exit (int); + +#define NEQ(a, b) (fabs((a) - (b)) > 0.000001) + +#define DECL_FUNC(TYPE1, TYPE2, ROUND) \ + __attribute__ ((noinline, noclone)) TYPE2 \ + convert_##TYPE1##_to_##TYPE2##_##ROUND (TYPE1 N) \ + { \ + return ROUND (N); \ + } + +#define DECL_ALL_ROUNDS_FOR(ROUND_FUNC) \ + DECL_FUNC(float, float, ROUND_FUNC) \ + DECL_FUNC(double, double, ROUND_FUNC) \ + DECL_FUNC(double, int, ROUND_FUNC) \ + DECL_FUNC(double, long, ROUND_FUNC) \ + DECL_FUNC(float, int, ROUND_FUNC) \ + DECL_FUNC(float, long, ROUND_FUNC) + + +DECL_ALL_ROUNDS_FOR(round) +DECL_ALL_ROUNDS_FOR(ceil) +DECL_ALL_ROUNDS_FOR(floor) +DECL_ALL_ROUNDS_FOR(trunc) +DECL_ALL_ROUNDS_FOR(nearbyint) + +#define TEST_ROUND(TYPE1, TYPE2, N, N_R, ROUND) \ + if (NEQ (convert_##TYPE1##_to_##TYPE2##_##ROUND (N), N_R)) \ + abort (); + + +int main () { + + /* Round */ + TEST_ROUND(double, double, -4.8, -5.0, round); + TEST_ROUND(double, double, -4.2, -4.0, round); + TEST_ROUND(double, double, 4.8, 5.0, round); + TEST_ROUND(double, double, 4.2, 4.0, round); + + TEST_ROUND(double, int, -4.8, -5, round); + TEST_ROUND(double, int, -4.2, -4, round); + TEST_ROUND(double, int, 4.8, 5, round); + TEST_ROUND(double, int, 4.2, 4, round); + + TEST_ROUND(double, long, -4.8, -5, round); + TEST_ROUND(double, long, -4.2, -4, round); + TEST_ROUND(double, long, 4.8, 5, round); + TEST_ROUND(double, long, 4.2, 4, round); + + TEST_ROUND(float, long, -4.8, -5, round); + TEST_ROUND(float, long, -4.2, -4, round); + TEST_ROUND(float, long, 4.8, 5, round); + TEST_ROUND(float, long, 4.2, 4, round); + + /* Ceil */ + TEST_ROUND(double, double, -4.8, -4.0, ceil); + TEST_ROUND(double, double, -4.2, -4.0, ceil); + TEST_ROUND(double, double, 4.8, 5.0, ceil); + TEST_ROUND(double, double, 4.2, 5.0, ceil); + + TEST_ROUND(double, int, -4.8, -4, ceil); + TEST_ROUND(double, int, -4.2, -4, ceil); + TEST_ROUND(double, int, 4.8, 5, ceil); + TEST_ROUND(double, int, 4.2, 5, ceil); + + TEST_ROUND(double, long, -4.8, -4, ceil); + TEST_ROUND(double, long, -4.2, -4, ceil); + TEST_ROUND(double, long, 4.8, 5, ceil); + TEST_ROUND(double, long, 4.2, 5, ceil); + + TEST_ROUND(float, long, -4.8, -4, ceil); + TEST_ROUND(float, long, -4.2, -4, ceil); + TEST_ROUND(float, long, 4.8, 5, ceil); + TEST_ROUND(float, long, 4.2, 5, ceil); + + /* Floor */ + TEST_ROUND(double, double, -4.8, -5.0, floor); + TEST_ROUND(double, double, -4.2, -5.0, floor); + TEST_ROUND(double, double, 4.8, 4.0, floor); + TEST_ROUND(double, double, 4.2, 4.0, floor); + + TEST_ROUND(double, int, -4.8, -5, floor); + TEST_ROUND(double, int, -4.2, -5, floor); + TEST_ROUND(double, int, 4.8, 4, floor); + TEST_ROUND(double, int, 4.2, 4, floor); + + TEST_ROUND(double, long, -4.8, -5, floor); + TEST_ROUND(double, long, -4.2, -5, floor); + TEST_ROUND(double, long, 4.8, 4, floor); + TEST_ROUND(double, long, 4.2, 4, floor); + + TEST_ROUND(float, long, -4.8, -5, floor); + TEST_ROUND(float, long, -4.2, -5, floor); + TEST_ROUND(float, long, 4.8, 4, floor); + TEST_ROUND(float, long, 4.2, 4, floor); + + /* Trunc */ + TEST_ROUND(double, double, -4.8, -4.0, trunc); + TEST_ROUND(double, double, -4.2, -4.0, trunc); + TEST_ROUND(double, double, 4.8, 4.0, trunc); + TEST_ROUND(double, double, 4.2, 4.0, trunc); + + TEST_ROUND(double, int, -4.8, -4, trunc); + TEST_ROUND(double, int, -4.2, -4, trunc); + TEST_ROUND(double, int, 4.8, 4, trunc); + TEST_ROUND(double, int, 4.2, 4, trunc); + + TEST_ROUND(double, long, -4.8, -4, trunc); + TEST_ROUND(double, long, -4.2, -4, trunc); + TEST_ROUND(double, long, 4.8, 4, trunc); + TEST_ROUND(double, long, 4.2, 4, trunc); + + TEST_ROUND(float, long, -4.8, -4, trunc); + TEST_ROUND(float, long, -4.2, -4, trunc); + TEST_ROUND(float, long, 4.8, 4, trunc); + TEST_ROUND(float, long, 4.2, 4, trunc); + + /* Nearbyint */ + TEST_ROUND(double, double, -4.8, -5.0, nearbyint); + TEST_ROUND(double, double, -4.2, -4.0, nearbyint); + TEST_ROUND(double, double, 4.8, 5.0, nearbyint); + TEST_ROUND(double, double, 4.2, 4.0, nearbyint); + + TEST_ROUND(double, int, -4.8, -5, nearbyint); + TEST_ROUND(double, int, -4.2, -4, nearbyint); + TEST_ROUND(double, int, 4.8, 5, nearbyint); + TEST_ROUND(double, int, 4.2, 4, nearbyint); + + TEST_ROUND(double, long, -4.8, -5, nearbyint); + TEST_ROUND(double, long, -4.2, -4, nearbyint); + TEST_ROUND(double, long, 4.8, 5, nearbyint); + TEST_ROUND(double, long, 4.2, 4, nearbyint); + + TEST_ROUND(float, long, -4.8, -5, nearbyint); + TEST_ROUND(float, long, -4.2, -4, nearbyint); + TEST_ROUND(float, long, 4.8, 5, nearbyint); + TEST_ROUND(float, long, 4.2, 4, nearbyint); + + exit(0); +} + diff --git a/gcc/testsuite/gcc.target/riscv/round_32.c b/gcc/testsuite/gcc.target/riscv/round_32.c new file mode 100644 index 00000000000..88ff77aff2e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/round_32.c @@ -0,0 +1,23 @@ +/* { dg-do compile { target { riscv32*-*-* } } } */ +/* { dg-require-effective-target glibc } */ +/* { dg-options "-march=rv32gc -mabi=ilp32d -fno-math-errno -funsafe-math-optimizations -fno-inline" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" } } */ + +#include "round.c" + +/* { dg-final { scan-assembler-times {\mfcvt.w.s} 15 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.s.w} 5 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.d.w} 65 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.w.d} 15 } } */ +/* { dg-final { scan-assembler-times {,rup} 6 } } */ +/* { dg-final { scan-assembler-times {,rmm} 6 } } */ +/* { dg-final { scan-assembler-times {,rdn} 6 } } */ +/* { dg-final { scan-assembler-times {,rtz} 6 } } */ +/* { dg-final { scan-assembler-not {\mfcvt.l.d} } } */ +/* { dg-final { scan-assembler-not {\mfcvt.d.l} } } */ +/* { dg-final { scan-assembler-not "\\sceil\\s" } } */ +/* { dg-final { scan-assembler-not "\\sfloor\\s" } } */ +/* { dg-final { scan-assembler-not "\\sround\\s" } } */ +/* { dg-final { scan-assembler-not "\\snearbyint\\s" } } */ +/* { dg-final { scan-assembler-not "\\srint\\s" } } */ +/* { dg-final { scan-assembler-not "\\stail\\s" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/round_64.c b/gcc/testsuite/gcc.target/riscv/round_64.c new file mode 100644 index 00000000000..5e13bccdcd2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/round_64.c @@ -0,0 +1,24 @@ +/* { dg-do compile { target { riscv64*-*-* } } } */ +/* { dg-require-effective-target glibc } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -fno-math-errno -funsafe-math-optimizations -fno-inline" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" } } */ + +#include "round.c" + +/* { dg-final { scan-assembler-times {\mfcvt.w.s} 10 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.s.w} 5 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.l.d} 10 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.d.l} 45 } } */ +/* { dg-final { scan-assembler-times {\mfcvt.w.d} 5 } } */ +/* { dg-final { scan-assembler-times {,rup} 6 } } */ +/* { dg-final { scan-assembler-times {,rmm} 6 } } */ +/* { dg-final { scan-assembler-times {,rdn} 6 } } */ +/* { dg-final { scan-assembler-times {,rtz} 6 } } */ +/* { dg-final { scan-assembler-not "\\sceil\\s" } } */ +/* { dg-final { scan-assembler-not "\\sfloor\\s" } } */ +/* { dg-final { scan-assembler-not "\\sround\\s" } } */ +/* { dg-final { scan-assembler-not "\\snearbyint\\s" } } */ +/* { dg-final { scan-assembler-not "\\srint\\s" } } */ +/* { dg-final { scan-assembler-not "\\stail\\s" } } */ +/* { dg-final { scan-assembler-not "\\ssext.w\\s" } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-1.c new file mode 100644 index 00000000000..3bb5bf8dd5b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-1.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-add-options "riscv_zvbb" } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model" } */ + +#include "vandn-template.h" + +/* { dg-final { scan-assembler-times {\tvandn\.vv} 8 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-run.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-run.c new file mode 100644 index 00000000000..243c5975068 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-run.c @@ -0,0 +1,54 @@ +/* { dg-do run } */ +/* { dg-require-effective-target "riscv_zvbb_ok" } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-add-options "riscv_zvbb" } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model" } */ + +#include "vandn-template.h" + +#include <assert.h> + +#define SZ 512 + +#define RUN(TYPE, VAL) \ + TYPE a##TYPE[SZ]; \ + TYPE b##TYPE[SZ]; \ + for (int i = 0; i < SZ; i++) \ + { \ + a##TYPE[i] = 123; \ + b##TYPE[i] = VAL; \ + } \ + vandn_##TYPE (a##TYPE, a##TYPE, b##TYPE, SZ); \ + for (int i = 0; i < SZ; i++) \ + assert (a##TYPE[i] == (TYPE) (123 & ~VAL)); + +#define RUN2(TYPE, VAL) \ + TYPE as##TYPE[SZ]; \ + for (int i = 0; i < SZ; i++) \ + as##TYPE[i] = 123; \ + vandns_##TYPE (as##TYPE, as##TYPE, VAL, SZ); \ + for (int i = 0; i < SZ; i++) \ + assert (as##TYPE[i] == (123 & ~VAL)); + +#define RUN_ALL() \ + RUN (int8_t, -1) \ + RUN (uint8_t, 2) \ + RUN (int16_t, -1) \ + RUN (uint16_t, 2) \ + RUN (int32_t, -3) \ + RUN (uint32_t, 4) \ + RUN (int64_t, -5) \ + RUN (uint64_t, 6) \ + RUN2 (int8_t, -7) \ + RUN2 (uint8_t, 8) \ + RUN2 (int16_t, -7) \ + RUN2 (uint16_t, 8) \ + RUN2 (int32_t, -9) \ + RUN2 (uint32_t, 10) \ + RUN2 (int64_t, -11) \ + RUN2 (uint64_t, 12) + +int main () +{ + RUN_ALL() +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-template.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-template.h new file mode 100644 index 00000000000..47ee86a1dba --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-template.h @@ -0,0 +1,38 @@ +#include <stdint-gcc.h> + +#define TEST_TYPE(TYPE) \ + __attribute__ ((noipa)) void vandn_##TYPE (TYPE *restrict dst, \ + TYPE *restrict a, \ + TYPE *restrict b, int n) \ + { \ + for (int i = 0; i < n; i++) \ + dst[i] = a[i] & ~b[i]; \ + } + +#define TEST2_TYPE(TYPE) \ + __attribute__ ((noipa)) void vandns_##TYPE (TYPE *restrict dst, \ + TYPE *restrict a, TYPE b, int n) \ + { \ + for (int i = 0; i < n; i++) \ + dst[i] = a[i] & ~b; \ + } + +#define TEST_ALL() \ + TEST_TYPE (int8_t) \ + TEST_TYPE(uint8_t) \ + TEST_TYPE(int16_t) \ + TEST_TYPE(uint16_t) \ + TEST_TYPE(int32_t) \ + TEST_TYPE(uint32_t) \ + TEST_TYPE(int64_t) \ + TEST_TYPE(uint64_t) \ + TEST2_TYPE(int8_t) \ + TEST2_TYPE(uint8_t) \ + TEST2_TYPE(int16_t) \ + TEST2_TYPE(uint16_t) \ + TEST2_TYPE(int32_t) \ + TEST2_TYPE(uint32_t) \ + TEST2_TYPE(int64_t) \ + TEST2_TYPE(uint64_t) + +TEST_ALL() diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_binary.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_binary.h new file mode 100644 index 00000000000..0976ae97830 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_binary.h @@ -0,0 +1,33 @@ +#ifndef HAVE_DEFINED_VEC_SAT_BINARY +#define HAVE_DEFINED_VEC_SAT_BINARY + +/* To leverage this header files for run test, you need to: + 1. define T as the type, for example uint8_t, + 2. defint N as the test array size, for example 16. + 3. define RUN_VEC_SAT_BINARY as run function. + 4. prepare the test_data for test cases. + */ + +int +main () +{ + unsigned i, k; + T out[N]; + + for (i = 0; i < sizeof (test_data) / sizeof (test_data[0]); i++) + { + T *op_1 = test_data[i][0]; + T *op_2 = test_data[i][1]; + T *expect = test_data[i][2]; + + RUN_VEC_SAT_BINARY (T, out, op_1, op_2, N); + + for (k = 0; k < N; k++) + if (out[k] != expect[k]) + __builtin_abort (); + } + + return 0; +} + +#endif diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-1.c new file mode 100644 index 00000000000..dbbfa00afe2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-1.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -ftree-vectorize -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "../../../sat_arith.h" + +/* +** vec_sat_u_add_uint8_t_fmt_1: +** ... +** vsetvli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*e8,\s*m1,\s*ta,\s*ma +** vle8\.v\s+v[0-9]+,\s*0\([atx][0-9]+\) +** vle8\.v\s+v[0-9]+,\s*0\([atx][0-9]+\) +** vsaddu\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+ +** ... +*/ +DEF_VEC_SAT_U_ADD_FMT_1(uint8_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 4 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-2.c new file mode 100644 index 00000000000..1253fdb5f60 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-2.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -ftree-vectorize -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "../../../sat_arith.h" + +/* +** vec_sat_u_add_uint16_t_fmt_1: +** ... +** vsetvli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*e16,\s*m1,\s*ta,\s*ma +** ... +** vle16\.v\s+v[0-9]+,\s*0\([atx][0-9]+\) +** vle16\.v\s+v[0-9]+,\s*0\([atx][0-9]+\) +** vsaddu\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+ +** ... +*/ +DEF_VEC_SAT_U_ADD_FMT_1(uint16_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 4 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-3.c new file mode 100644 index 00000000000..74bba9cadd1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-3.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -ftree-vectorize -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "../../../sat_arith.h" + +/* +** vec_sat_u_add_uint32_t_fmt_1: +** ... +** vsetvli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*e32,\s*m1,\s*ta,\s*ma +** ... +** vle32\.v\s+v[0-9]+,\s*0\([atx][0-9]+\) +** vle32\.v\s+v[0-9]+,\s*0\([atx][0-9]+\) +** vsaddu\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+ +** ... +*/ +DEF_VEC_SAT_U_ADD_FMT_1(uint32_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 4 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-4.c new file mode 100644 index 00000000000..f3692b4cc25 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-4.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -ftree-vectorize -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "../../../sat_arith.h" + +/* +** vec_sat_u_add_uint64_t_fmt_1: +** ... +** vsetvli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*e64,\s*m1,\s*ta,\s*ma +** ... +** vle64\.v\s+v[0-9]+,\s*0\([atx][0-9]+\) +** vle64\.v\s+v[0-9]+,\s*0\([atx][0-9]+\) +** vsaddu\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+ +** ... +*/ +DEF_VEC_SAT_U_ADD_FMT_1(uint64_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 4 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-1.c new file mode 100644 index 00000000000..1dcb333f687 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-1.c @@ -0,0 +1,75 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "../../../sat_arith.h" + +#define T uint8_t +#define N 16 +#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_ADD_FMT_1 + +DEF_VEC_SAT_U_ADD_FMT_1(T) + +T test_data[][3][N] = { + { + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* arg_0 */ + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* arg_1 */ + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* expect */ + }, + { + { + 255, 255, 255, 255, + 255, 255, 255, 255, + 255, 255, 255, 255, + 255, 255, 255, 255, + }, + { + 255, 255, 255, 255, + 255, 255, 255, 255, + 255, 255, 255, 255, + 255, 255, 255, 255, + }, + { + 255, 255, 255, 255, + 255, 255, 255, 255, + 255, 255, 255, 255, + 255, 255, 255, 255, + }, + }, + { + { + 0, 0, 1, 0, + 1, 2, 3, 0, + 1, 2, 3, 4, + 5, 254, 255, 9, + }, + { + 0, 1, 1, 254, + 254, 254, 254, 255, + 255, 255, 255, 255, + 255, 255, 255, 9, + }, + { + 0, 1, 2, 254, + 255, 255, 255, 255, + 255, 255, 255, 255, + 255, 255, 255, 18, + }, + }, +}; + +#include "vec_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-2.c new file mode 100644 index 00000000000..dbf01ac863d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-2.c @@ -0,0 +1,75 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "../../../sat_arith.h" + +#define T uint16_t +#define N 16 +#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_ADD_FMT_1 + +DEF_VEC_SAT_U_ADD_FMT_1(T) + +T test_data[][3][N] = { + { + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* arg_0 */ + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* arg_1 */ + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* expect */ + }, + { + { + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + }, + { + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + }, + { + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + }, + }, + { + { + 0, 0, 1, 0, + 1, 2, 3, 0, + 1, 2, 3, 4, + 5, 65534, 65535, 9, + }, + { + 0, 1, 1, 65534, + 65534, 65534, 65534, 65535, + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 9, + }, + { + 0, 1, 2, 65534, + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 18, + }, + }, +}; + +#include "vec_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-3.c new file mode 100644 index 00000000000..20ad2736403 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-3.c @@ -0,0 +1,75 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "../../../sat_arith.h" + +#define T uint32_t +#define N 16 +#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_ADD_FMT_1 + +DEF_VEC_SAT_U_ADD_FMT_1(T) + +T test_data[][3][N] = { + { + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* arg_0 */ + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* arg_1 */ + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* expect */ + }, + { + { + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + }, + { + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + }, + { + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + }, + }, + { + { + 0, 0, 1, 0, + 1, 2, 3, 0, + 1, 2, 3, 4, + 5, 4294967294, 4294967295, 9, + }, + { + 0, 1, 1, 4294967294, + 4294967294, 4294967294, 4294967294, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 9, + }, + { + 0, 1, 2, 4294967294, + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 4294967295, + 4294967295, 4294967295, 4294967295, 18, + }, + }, +}; + +#include "vec_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-4.c new file mode 100644 index 00000000000..2f31edc527e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-4.c @@ -0,0 +1,75 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "../../../sat_arith.h" + +#define T uint64_t +#define N 16 +#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_ADD_FMT_1 + +DEF_VEC_SAT_U_ADD_FMT_1(T) + +T test_data[][3][N] = { + { + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* arg_0 */ + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* arg_1 */ + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + }, /* expect */ + }, + { + { + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + }, + { + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + }, + { + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + }, + }, + { + { + 0, 0, 1, 0, + 1, 2, 3, 0, + 1, 2, 3, 4, + 5, 18446744073709551614u, 18446744073709551615u, 9, + }, + { + 0, 1, 1, 18446744073709551614u, + 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 9, + }, + { + 0, 1, 2, 18446744073709551614u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, 18, + }, + }, +}; + +#include "vec_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-1.c new file mode 100644 index 00000000000..a2e5b4f5aa1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-1.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-add-options "riscv_zvbb" } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model" } */ + +#include "vwsll-template.h" + +/* { dg-final { scan-assembler-times {\tvwsll\.vv} 3 } } */ +/* { dg-final { scan-assembler-times {\tvwsll\.vx} 3 } } */ +/* { dg-final { scan-assembler-times {\tvwsll\.vi} 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-run.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-run.c new file mode 100644 index 00000000000..ddb84618b50 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-run.c @@ -0,0 +1,67 @@ +/* { dg-do run } */ +/* { dg-require-effective-target "riscv_zvbb_ok" } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-add-options "riscv_zvbb" } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model" } */ + +#include "vwsll-template.h" + +#include <assert.h> + +#define SZ 512 + +#define RUN(TYPE1, TYPE2, VAL) \ + TYPE1 dst##TYPE1[SZ]; \ + TYPE2 a##TYPE2[SZ]; \ + TYPE2 b##TYPE2[SZ]; \ + for (int i = 0; i < SZ; i++) \ + { \ + dst##TYPE1[i] = 0; \ + a##TYPE2[i] = VAL; \ + b##TYPE2[i] = i % 4; \ + } \ + vwsll_vv##TYPE1 (dst##TYPE1, a##TYPE2, b##TYPE2, SZ); \ + for (int i = 0; i < SZ; i++) \ + assert (dst##TYPE1[i] == (VAL << (i % 4))); + +#define RUN2(TYPE1, TYPE2, VAL) \ + TYPE1 dst2##TYPE1[SZ]; \ + TYPE2 a2##TYPE2[SZ]; \ + for (int i = 0; i < SZ; i++) \ + { \ + dst2##TYPE1[i] = 0; \ + a2##TYPE2[i] = VAL; \ + } \ + TYPE2 b2##TYPE2 = 7; \ + vwsll_vx##TYPE1 (dst2##TYPE1, a2##TYPE2, b2##TYPE2, SZ); \ + for (int i = 0; i < SZ; i++) \ + assert (dst2##TYPE1[i] == (VAL << b2##TYPE2)); + +#define RUN3(TYPE1, TYPE2, VAL) \ + TYPE1 dst3##TYPE1[SZ]; \ + TYPE2 a3##TYPE2[SZ]; \ + for (int i = 0; i < SZ; i++) \ + { \ + dst3##TYPE1[i] = 0; \ + a3##TYPE2[i] = VAL; \ + } \ + vwsll_vi##TYPE1 (dst3##TYPE1, a3##TYPE2, SZ); \ + for (int i = 0; i < SZ; i++) \ + assert (dst3##TYPE1[i] == (VAL << 6)); + +#define RUN_ALL() \ + RUN (uint16_t, uint8_t, 2) \ + RUN (uint32_t, uint16_t, 2) \ + RUN (uint64_t, uint32_t, 4) \ + RUN2 (uint16_t, uint8_t, 8) \ + RUN2 (uint32_t, uint16_t, 8) \ + RUN2 (uint64_t, uint32_t, 10) \ + RUN3 (uint16_t, uint8_t, 255) \ + RUN3 (uint32_t, uint16_t, 34853) \ + RUN3 (uint64_t, uint32_t, 1794394) + +int +main () +{ + RUN_ALL () +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-template.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-template.h new file mode 100644 index 00000000000..376cbaee0d5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-template.h @@ -0,0 +1,49 @@ +/* { dg-do compile } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-add-options "riscv_zvbb" } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model" } */ + +#include <stdint-gcc.h> + +#define TEST1_TYPE(TYPE1, TYPE2) \ + __attribute__ ((noipa)) void vwsll_vv##TYPE1 (TYPE1 *restrict dst, \ + TYPE2 *restrict a, \ + TYPE2 *restrict b, int n) \ + { \ + for (int i = 0; i < n; i++) \ + dst[i] = (TYPE1) a[i] << b[i]; \ + } + +#define TEST2_TYPE(TYPE1, TYPE2) \ + __attribute__ ((noipa)) void vwsll_vx##TYPE1 (TYPE1 *restrict dst, \ + TYPE2 *restrict a, TYPE2 b, \ + int n) \ + { \ + for (int i = 0; i < n; i++) \ + dst[i] = (TYPE1) a[i] << b; \ + } + +#define TEST3_TYPE(TYPE1, TYPE2) \ + __attribute__ ((noipa)) void vwsll_vi##TYPE1 (TYPE1 *restrict dst, \ + TYPE2 *restrict a, int n) \ + { \ + for (int i = 0; i < n; i++) \ + dst[i] = (TYPE1) a[i] << 6; \ + } + +#define TEST_ALL() \ + TEST1_TYPE (uint16_t, uint8_t) \ + TEST1_TYPE (uint32_t, uint16_t) \ + TEST1_TYPE (uint64_t, uint32_t) \ + TEST2_TYPE (uint16_t, uint8_t) \ + TEST2_TYPE (uint32_t, uint16_t) \ + TEST2_TYPE (uint64_t, uint32_t) \ + TEST3_TYPE (uint16_t, uint8_t) \ + TEST3_TYPE (uint32_t, uint16_t) \ + TEST3_TYPE (uint64_t, uint32_t) + +TEST_ALL() + +/* { dg-final { scan-assembler-times {\tvwsll\.vv} 3 } } */ +/* { dg-final { scan-assembler-times {\tvwsll\.vx} 3 } } */ +/* { dg-final { scan-assembler-times {\tvwsll\.vi} 3 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-1.c new file mode 100644 index 00000000000..f70979e81f1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-1.c @@ -0,0 +1,34 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 -fdump-tree-vect-details" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#define N 803 + +unsigned vect_a[N]; +unsigned vect_b[N]; + +/* +** test: +** ... +** vmsltu\.vv\s+v[0-9]+\s*,v[0-9]+,\s*v[0-9]+ +** vcpop\.m\s+[atx][0-9]+\s*,v[0-9]+ +** ... +*/ +unsigned test (unsigned x, int n) +{ + unsigned ret = 0; + + for (int i = 0; i < n; i++) + { + vect_b[i] = x + i; + + if (vect_a[i] > x) + break; + + vect_a[i] = x; + } + + return ret; +} + +/* { dg-final { scan-tree-dump-times "LOOP VECTORIZED" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-2.c new file mode 100644 index 00000000000..d405783d2c4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-2.c @@ -0,0 +1,37 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 -fdump-tree-vect-details" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#define N 1728 + +unsigned vect_a[N]; +unsigned vect_b[N]; + +/* +** test: +** ... +** vmsltu\.vv\s+v[0-9]+\s*,v[0-9]+,\s*v[0-9]+ +** vcpop\.m\s+[atx][0-9]+\s*,v[0-9]+ +** ... +*/ +unsigned test (unsigned limit, int n) +{ + unsigned ret = 0; + + for (int i = 0; i < n; i++) + { + vect_b[i] = limit + i; + + if (vect_a[i] > limit) + { + ret = vect_b[i]; + return ret; + } + + vect_a[i] = limit; + } + + return ret; +} + +/* { dg-final { scan-tree-dump-times "LOOP VECTORIZED" 1 "vect" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-12-zvbb.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-12-zvbb.c new file mode 100644 index 00000000000..11a4031f47b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-12-zvbb.c @@ -0,0 +1,113 @@ +/* { dg-do compile } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-add-options "riscv_zvbb" } */ +/* { dg-additional-options "-fno-vect-cost-model -fdump-tree-vect-details -mrvv-max-lmul=m4" } */ + +#include <stdint-gcc.h> + +#define TEST_LOOP(DATA_TYPE, INDEX_TYPE) \ + void __attribute__ ((noinline, noclone)) \ + f_##DATA_TYPE##_##INDEX_TYPE (DATA_TYPE *restrict y, DATA_TYPE *restrict x, \ + INDEX_TYPE *restrict index) \ + { \ + for (int i = 0; i < 100; ++i) \ + { \ + y[i * 2] = x[index[i * 2]] + 1; \ + y[i * 2 + 1] = x[index[i * 2 + 1]] + 2; \ + } \ + } + +TEST_LOOP (int8_t, int8_t) +TEST_LOOP (uint8_t, int8_t) +TEST_LOOP (int16_t, int8_t) +TEST_LOOP (uint16_t, int8_t) +TEST_LOOP (int32_t, int8_t) +TEST_LOOP (uint32_t, int8_t) +TEST_LOOP (int64_t, int8_t) +TEST_LOOP (uint64_t, int8_t) +TEST_LOOP (_Float16, int8_t) +TEST_LOOP (float, int8_t) +TEST_LOOP (double, int8_t) +TEST_LOOP (int8_t, int16_t) +TEST_LOOP (uint8_t, int16_t) +TEST_LOOP (int16_t, int16_t) +TEST_LOOP (uint16_t, int16_t) +TEST_LOOP (int32_t, int16_t) +TEST_LOOP (uint32_t, int16_t) +TEST_LOOP (int64_t, int16_t) +TEST_LOOP (uint64_t, int16_t) +TEST_LOOP (_Float16, int16_t) +TEST_LOOP (float, int16_t) +TEST_LOOP (double, int16_t) +TEST_LOOP (int8_t, int32_t) +TEST_LOOP (uint8_t, int32_t) +TEST_LOOP (int16_t, int32_t) +TEST_LOOP (uint16_t, int32_t) +TEST_LOOP (int32_t, int32_t) +TEST_LOOP (uint32_t, int32_t) +TEST_LOOP (int64_t, int32_t) +TEST_LOOP (uint64_t, int32_t) +TEST_LOOP (_Float16, int32_t) +TEST_LOOP (float, int32_t) +TEST_LOOP (double, int32_t) +TEST_LOOP (int8_t, int64_t) +TEST_LOOP (uint8_t, int64_t) +TEST_LOOP (int16_t, int64_t) +TEST_LOOP (uint16_t, int64_t) +TEST_LOOP (int32_t, int64_t) +TEST_LOOP (uint32_t, int64_t) +TEST_LOOP (int64_t, int64_t) +TEST_LOOP (uint64_t, int64_t) +TEST_LOOP (_Float16, int64_t) +TEST_LOOP (float, int64_t) +TEST_LOOP (double, int64_t) +TEST_LOOP (int8_t, uint8_t) +TEST_LOOP (uint8_t, uint8_t) +TEST_LOOP (int16_t, uint8_t) +TEST_LOOP (uint16_t, uint8_t) +TEST_LOOP (int32_t, uint8_t) +TEST_LOOP (uint32_t, uint8_t) +TEST_LOOP (int64_t, uint8_t) +TEST_LOOP (uint64_t, uint8_t) +TEST_LOOP (_Float16, uint8_t) +TEST_LOOP (float, uint8_t) +TEST_LOOP (double, uint8_t) +TEST_LOOP (int8_t, uint16_t) +TEST_LOOP (uint8_t, uint16_t) +TEST_LOOP (int16_t, uint16_t) +TEST_LOOP (uint16_t, uint16_t) +TEST_LOOP (int32_t, uint16_t) +TEST_LOOP (uint32_t, uint16_t) +TEST_LOOP (int64_t, uint16_t) +TEST_LOOP (uint64_t, uint16_t) +TEST_LOOP (_Float16, uint16_t) +TEST_LOOP (float, uint16_t) +TEST_LOOP (double, uint16_t) +TEST_LOOP (int8_t, uint32_t) +TEST_LOOP (uint8_t, uint32_t) +TEST_LOOP (int16_t, uint32_t) +TEST_LOOP (uint16_t, uint32_t) +TEST_LOOP (int32_t, uint32_t) +TEST_LOOP (uint32_t, uint32_t) +TEST_LOOP (int64_t, uint32_t) +TEST_LOOP (uint64_t, uint32_t) +TEST_LOOP (_Float16, uint32_t) +TEST_LOOP (float, uint32_t) +TEST_LOOP (double, uint32_t) +TEST_LOOP (int8_t, uint64_t) +TEST_LOOP (uint8_t, uint64_t) +TEST_LOOP (int16_t, uint64_t) +TEST_LOOP (uint16_t, uint64_t) +TEST_LOOP (int32_t, uint64_t) +TEST_LOOP (uint32_t, uint64_t) +TEST_LOOP (int64_t, uint64_t) +TEST_LOOP (uint64_t, uint64_t) +TEST_LOOP (_Float16, uint64_t) +TEST_LOOP (float, uint64_t) +TEST_LOOP (double, uint64_t) + +/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 88 "vect" } } */ +/* { dg-final { scan-tree-dump " \.MASK_LEN_GATHER_LOAD" "vect" } } */ +/* { dg-final { scan-tree-dump-not " \.GATHER_LOAD" "vect" } } */ +/* { dg-final { scan-tree-dump-not " \.MASK_GATHER_LOAD" "vect" } } */ +/* { dg-final { scan-assembler "vwsll.vi" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113474.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113474.c new file mode 100644 index 00000000000..0364bf9f5e3 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113474.c @@ -0,0 +1,13 @@ +/* { dg-do compile { target riscv_v } } */ +/* { dg-additional-options "-std=c99" } */ + +void +foo (int n, int **a) +{ + int b; + for (b = 0; b < n; b++) + for (long e = 8; e > 0; e--) + a[b][e] = a[b][e] == 15; +} + +/* { dg-final { scan-assembler "vmerge.vim" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114734.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114734.c new file mode 100644 index 00000000000..b605d992aa1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114734.c @@ -0,0 +1,25 @@ +/* { dg-do run } */ +/* { dg-require-effective-target riscv_v } */ +/* { dg-options { -march=rv64gcv_zvl256b -mabi=lp64d -fwhole-program -O3 -mrvv-vector-bits=zvl } } */ + +int f[18]; +int g[18]; +int h[18][18][18]; +int a[324]; +long b[18]; +int *i = g; +int (*j)[18][18] = h; +int z; +int main() { + for (int m = 0; m < 18; ++m) + f[m] = 3; + for (int m = 0; m < 18; m += 1) + for (int n = 0; n < 18; n += 3) { + a[m * 8 + n] = j[m][m][0] ? i[n] : 0; + b[n] = f[n] ? -i[m] : 0; + } + for (long n = 0; n < 8; ++n) + z = a[n]; + if (b[15] != 0) + __builtin_abort(); +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114749.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114749.c new file mode 100644 index 00000000000..6733b0481a6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114749.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv_zvl128b -mabi=lp64d -fwhole-program -O3 -mrvv-vector-bits=zvl" } */ + +extern int a[]; +extern char b[]; +int c = 24; +_Bool d[24][24][24]; +_Bool (*e)[24][24] = d; +int main() { + for (short f = 0; f < 24; f += 3) + for (unsigned g = 0; g < (char)c; g += 2) { + a[f] = 0; + b[g] |= ({ e[f][f][f]; }); + } +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-1.c new file mode 100644 index 00000000000..c27d9d399b9 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-1.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-add-options "riscv_zvbb" } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model" } */ + +#include "clz-template.h" + +/* { dg-final { scan-assembler-times {\tvclz.v} 8 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-run.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-run.c new file mode 100644 index 00000000000..df6f893b8fb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-run.c @@ -0,0 +1,36 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model -mrvv-vector-bits=zvl -ffast-math" } */ + +#include "clz-template.h" + +#include <assert.h> +#include <stdio.h> + +#define SZ 128 + +#define RUN(TYPE) \ + TYPE dst##TYPE[SZ]; \ + TYPE a##TYPE[SZ]; \ + for (int i = 0; i < SZ; i++) \ + { \ + dst##TYPE[i] = 0; \ + a##TYPE[i] = i; \ + } \ + vclz_##TYPE (dst##TYPE, a##TYPE, SZ); \ + for (int i = 0; i < SZ; i++) \ + assert (dst##TYPE[i] == __builtin_clz (a##TYPE[i])); + +#define RUN_ALL() \ + RUN (int8_t) \ + RUN (uint8_t) \ + RUN (int16_t) \ + RUN (uint16_t) \ + RUN (int32_t) \ + RUN (uint32_t) \ + RUN (int64_t) \ + RUN (uint64_t) + +int main () +{ + RUN_ALL() +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-template.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-template.h new file mode 100644 index 00000000000..1cde9fbc32c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-template.h @@ -0,0 +1,21 @@ +#include <stdint-gcc.h> + +#define TEST_TYPE(TYPE) \ + __attribute__ ((noipa)) void vclz_##TYPE (TYPE *restrict dst, \ + TYPE *restrict a, int n) \ + { \ + for (int i = 0; i < n; i++) \ + dst[i] = __builtin_clz (a[i]); \ + } + +#define TEST_ALL() \ + TEST_TYPE (int8_t) \ + TEST_TYPE (uint8_t) \ + TEST_TYPE (int16_t) \ + TEST_TYPE (uint16_t) \ + TEST_TYPE (int32_t) \ + TEST_TYPE (uint32_t) \ + TEST_TYPE (int64_t) \ + TEST_TYPE (uint64_t) + +TEST_ALL() diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-1.c new file mode 100644 index 00000000000..d5989bd5aad --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-1.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-add-options "riscv_zvbb" } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model" } */ + +#include "ctz-template.h" + +/* { dg-final { scan-assembler-times {\tvctz.v} 8 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-run.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-run.c new file mode 100644 index 00000000000..9a74ba20a73 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-run.c @@ -0,0 +1,36 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model -mrvv-vector-bits=zvl -ffast-math" } */ + +#include "ctz-template.h" + +#include <assert.h> +#include <stdio.h> + +#define SZ 126 + +#define RUN(TYPE) \ + TYPE dst##TYPE[SZ]; \ + TYPE a##TYPE[SZ]; \ + for (int i = 0; i < SZ; i++) \ + { \ + dst##TYPE[i] = 0; \ + a##TYPE[i] = i + 1; \ + } \ + vctz_##TYPE (dst##TYPE, a##TYPE, SZ); \ + for (int i = 0; i < SZ; i++) \ + assert (dst##TYPE[i] == __builtin_ctz (a##TYPE[i]));\ + +#define RUN_ALL() \ + RUN (uint8_t) \ + RUN (int8_t) \ + RUN (int16_t) \ + RUN (uint16_t) \ + RUN (int32_t) \ + RUN (uint32_t) \ + //RUN (int64_t) \ + //RUN (uint64_t) + +int main () +{ + RUN_ALL() +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-template.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-template.h new file mode 100644 index 00000000000..c47fc19935d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-template.h @@ -0,0 +1,21 @@ +#include <stdint-gcc.h> + +#define TEST_TYPE(TYPE) \ + __attribute__ ((noipa)) void vctz_##TYPE (TYPE *restrict dst, \ + TYPE *restrict a, int n) \ + { \ + for (int i = 0; i < n; i++) \ + dst[i] = __builtin_ctz (a[i]); \ + } + +#define TEST_ALL() \ + TEST_TYPE (int8_t) \ + TEST_TYPE (uint8_t) \ + TEST_TYPE (int16_t) \ + TEST_TYPE (uint16_t) \ + TEST_TYPE (int32_t) \ + TEST_TYPE (uint32_t) \ + TEST_TYPE (int64_t) \ + TEST_TYPE (uint64_t) + +TEST_ALL() diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-1.c index fad528a842e..1396e46ec8c 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -mrvv-vector-bits=scalable -fno-vect-cost-model -fdump-tree-vect-details" } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-additional-options "-mrvv-vector-bits=scalable -fno-vect-cost-model -fdump-tree-vect-details" } */ #include <stdint-gcc.h> @@ -18,3 +19,4 @@ popcount_64 (uint64_t *restrict dst, uint64_t *restrict src, int size) } /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 2 "vect" } } */ +/* { dg-final { scan-assembler-times "vcpop.v" 2 { target { riscv_zvbb } } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-2.c index 0199f8cb515..116cc304da3 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-2.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-additional-options "-march=rv64gcv -mabi=lp64d -mrvv-vector-bits=scalable -fno-vect-cost-model -fdump-tree-slp-details" } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-additional-options "-mrvv-vector-bits=scalable -fno-vect-cost-model -fdump-tree-slp-details" } */ int x[8]; int y[8]; @@ -17,3 +18,4 @@ void foo () } /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "slp2" } } */ +/* { dg-final { scan-assembler "vcpop.v" { target { riscv_zvbb } } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-3.c new file mode 100644 index 00000000000..00b87a07fd8 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-3.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-add-options "riscv_v" } */ +/* { dg-add-options "riscv_zvbb" } */ +/* { dg-additional-options "-std=c99 -fno-vect-cost-model" } */ + +#include "popcount-template.h" + +/* { dg-final { scan-assembler-times {\tvcpop.v} 8 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-run-1.c index 38f1633da99..8ddb1783dd0 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-run-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-run-1.c @@ -1,4 +1,5 @@ -/* { dg-do run { target { riscv_v } } } */ +/* { dg-do run { target { riscv_v_ok } } } */ +/* { dg-add-options "riscv_v" } */ #include "popcount-1.c" diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-template.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-template.h new file mode 100644 index 00000000000..28399565bb3 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-template.h @@ -0,0 +1,21 @@ +#include <stdint-gcc.h> + +#define TEST_TYPE(TYPE) \ + __attribute__ ((noipa)) void vpopcount_##TYPE (TYPE *restrict dst, \ + TYPE *restrict a, int n) \ + { \ + for (int i = 0; i < n; i++) \ + dst[i] = __builtin_popcount (a[i]); \ + } + +#define TEST_ALL() \ + TEST_TYPE (int8_t) \ + TEST_TYPE (uint8_t) \ + TEST_TYPE (int16_t) \ + TEST_TYPE (uint16_t) \ + TEST_TYPE (int32_t) \ + TEST_TYPE (uint32_t) \ + TEST_TYPE (int64_t) \ + TEST_TYPE (uint64_t) + +TEST_ALL() diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c index d73bad4af6f..fae2ae91572 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c @@ -2,11 +2,12 @@ /* { dg-additional-options "-std=c99 -O3 -march=rv64gcv_zvl128b -mabi=lp64d -fno-vect-cost-model -mrvv-vector-bits=zvl" } */ #include <stdint-gcc.h> -#include <assert.h> /* This would cause us to emit a vl1r.v for VNx4HImode even when the hardware vector size vl > 64. */ +extern int16_t test_element (int16_t); + typedef int16_t V __attribute__((vector_size (128))); int main () @@ -14,9 +15,10 @@ int main () V v; for (int i = 0; i < sizeof (v) / sizeof (v[0]); i++) (v)[i] = i; + V res = v; for (int i = 0; i < sizeof (v) / sizeof (v[0]); i++) - assert (res[i] == i); + test_element (res[i]); } /* { dg-final { scan-assembler-not {vl[1248]r.v} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-1.c index b64c73f34f1..6afcf1db593 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-1.c @@ -129,5 +129,5 @@ spill_12 (int8_t *in, int8_t *out) /* { dg-final { scan-assembler-times {addi\tsp,sp,-256} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-512} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-1024} 1 } } */ -/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 1 } } */ -/* { dg-final { scan-assembler-times {li\t[a-x0-9]+,-4096\s+add\tsp,sp,[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 3 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,2032} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-2.c index 8fcdca70538..544e8628a27 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-2.c @@ -120,5 +120,5 @@ spill_11 (int16_t *in, int16_t *out) /* { dg-final { scan-assembler-times {addi\tsp,sp,-256} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-512} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-1024} 1 } } */ -/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 1 } } */ -/* { dg-final { scan-assembler-times {li\t[a-x0-9]+,-4096\s+add\tsp,sp,[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 3 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,2032} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-3.c index ca296ce02d6..4bfeb07e9ac 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-3.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-3.c @@ -111,5 +111,5 @@ spill_10 (int32_t *in, int32_t *out) /* { dg-final { scan-assembler-times {addi\tsp,sp,-256} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-512} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-1024} 1 } } */ -/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 1 } } */ -/* { dg-final { scan-assembler-times {li\t[a-x0-9]+,-4096\s+add\tsp,sp,[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 3 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,2032} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-4.c index ef61d9a2c0c..1faf31ffd8e 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-4.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-4.c @@ -102,5 +102,5 @@ spill_9 (int64_t *in, int64_t *out) /* { dg-final { scan-assembler-times {addi\tsp,sp,-256} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-512} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-1024} 1 } } */ -/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 1 } } */ -/* { dg-final { scan-assembler-times {li\t[a-x0-9]+,-4096\s+add\tsp,sp,[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 3 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,2032} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-5.c index 150135a9110..0c8dccc518e 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-5.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-5.c @@ -120,5 +120,5 @@ spill_11 (_Float16 *in, _Float16 *out) /* { dg-final { scan-assembler-times {addi\tsp,sp,-256} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-512} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-1024} 1 } } */ -/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 1 } } */ -/* { dg-final { scan-assembler-times {li\t[a-x0-9]+,-4096\s+add\tsp,sp,[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 3 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,2032} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-6.c index c5d2d019434..8bf53b84d1c 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-6.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-6.c @@ -111,5 +111,5 @@ spill_10 (float *in, float *out) /* { dg-final { scan-assembler-times {addi\tsp,sp,-256} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-512} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-1024} 1 } } */ -/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 1 } } */ -/* { dg-final { scan-assembler-times {li\t[a-x0-9]+,-4096\s+add\tsp,sp,[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 3 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,2032} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-7.c index 70ca683908d..e3980a29540 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-7.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-7.c @@ -102,5 +102,5 @@ spill_9 (int64_t *in, int64_t *out) /* { dg-final { scan-assembler-times {addi\tsp,sp,-256} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-512} 1 } } */ /* { dg-final { scan-assembler-times {addi\tsp,sp,-1024} 1 } } */ -/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 1 } } */ -/* { dg-final { scan-assembler-times {li\t[a-x0-9]+,-4096\s+add\tsp,sp,[a-x0-9]+} 1 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,-2048} 3 } } */ +/* { dg-final { scan-assembler-times {addi\tsp,sp,2032} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/bug-6.c b/gcc/testsuite/gcc.target/riscv/rvv/base/bug-6.c new file mode 100644 index 00000000000..5bb00b8f587 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/bug-6.c @@ -0,0 +1,22 @@ +/* Test that we do not have ice when compile */ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -ftree-vectorize" } */ + +struct A { float x, y; }; +struct B { struct A u; }; + +extern void bar (struct A *); + +float +f3 (struct B *x, int y) +{ + struct A p = {1.0f, 2.0f}; + struct A *q = &x[y].u; + + __builtin_memcpy (&q->x, &p.x, sizeof (float)); + __builtin_memcpy (&q->y, &p.y, sizeof (float)); + + bar (&p); + + return x[y].u.x + x[y].u.y; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c index 6b9a7c448f0..6f9c6f7bd8c 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c @@ -101,4 +101,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-10.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-10.c index 5f161b31fa1..5d3f2fbe46d 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-10.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-10.c @@ -101,4 +101,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-11.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-11.c index 82827d14e34..6a2301b523f 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-11.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-11.c @@ -65,4 +65,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-12.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-12.c index c4ae60755ea..0f3eb4d58de 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-12.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-12.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c index fde7076d34f..71786995c56 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c @@ -185,4 +185,4 @@ foo2 (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-16.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-16.c index 98f42458883..42d11611d98 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-16.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-16.c @@ -65,4 +65,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-17.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-17.c index 9b60005344d..9ecc62e234b 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-17.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-17.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c index dd65b2fa098..4365fe0af54 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c index da92d59406f..b99dd19e623 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c @@ -65,4 +65,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c index 90db18217bb..ac56703c75c 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c @@ -185,4 +185,4 @@ foo2 (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-23.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-23.c index ee0b928e9df..f91119307f4 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-23.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-23.c @@ -116,4 +116,4 @@ foo2 (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-24.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-24.c index 603e2941cd3..bcd60c0a7c3 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-24.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-24.c @@ -83,4 +83,4 @@ foo2 (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-25.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-25.c index 0b52b9f24eb..57a8ef28486 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-25.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-25.c @@ -101,4 +101,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-26.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-26.c index d21a73765ed..0f05e2b2e1d 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-26.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-26.c @@ -65,4 +65,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-27.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-27.c index 2423f7b33ee..d640bcf74ba 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-27.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-27.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-28.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-28.c index d81afd2610f..c16cbdfe9f9 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-28.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-28.c @@ -101,4 +101,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-29.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-29.c index 2f8adb8ebee..cee6afafe87 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-29.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-29.c @@ -65,4 +65,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c index 46f93a9049b..cac50bd003c 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-30.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-30.c index d3ce98852db..f2e23628022 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-30.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-30.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-31.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-31.c index 72b928a579b..2cf006bd4c9 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-31.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-31.c @@ -65,4 +65,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-32.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-32.c index 273c5fca642..284b7a2891c 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-32.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-32.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-33.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-33.c index a5c2ad1de62..82baf0fadb3 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-33.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-33.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c index 6337ff875fe..66e81ea905a 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c @@ -97,7 +97,7 @@ foo9 (void *in, void *out) } /* { dg-final { scan-assembler-not {vmv1r} } } */ -/* { dg-final { scan-assembler-not {vmv2r} } } */ -/* { dg-final { scan-assembler-not {vmv4r} } } */ -/* { dg-final { scan-assembler-not {vmv8r} } } */ +/* { dg-final { scan-assembler-not {vmv2r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv4r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv8r} { xfail riscv*-*-* } } } */ /* { dg-final { scan-assembler-not {csrr} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c index 7b7d6cc7e98..a0cf9afc88e 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c @@ -75,8 +75,8 @@ foo6 (void *in, void *out) __riscv_vse64_v_f64m8 (out, result, 4); } -/* { dg-final { scan-assembler-not {vmv1r} } } */ -/* { dg-final { scan-assembler-not {vmv2r} } } */ -/* { dg-final { scan-assembler-not {vmv4r} } } */ -/* { dg-final { scan-assembler-not {vmv8r} } } */ +/* { dg-final { scan-assembler-not {vmv1r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv2r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv4r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv8r} { xfail riscv*-*-* } } } */ /* { dg-final { scan-assembler-not {csrr} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c index 47820dd29f0..1234718bb35 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c @@ -152,7 +152,7 @@ foo2 (void *in, void *out, int n) } /* { dg-final { scan-assembler-not {vmv1r} } } */ -/* { dg-final { scan-assembler-not {vmv2r} } } */ +/* { dg-final { scan-assembler-not {vmv2r} { xfail riscv*-*-* } } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-4.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-4.c index 4cc6aa68b13..cecf796e10c 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-4.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-4.c @@ -101,4 +101,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c index e44b8010579..5d6577cfe6e 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c @@ -89,6 +89,6 @@ foo2 (void *in, void *out, int n) /* { dg-final { scan-assembler-not {vmv1r} } } */ /* { dg-final { scan-assembler-not {vmv2r} } } */ -/* { dg-final { scan-assembler-not {vmv4r} } } */ +/* { dg-final { scan-assembler-not {vmv4r} { xfail riscv*-*-* } } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c index dc27006f6f9..c31144c05b5 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c @@ -58,5 +58,5 @@ foo2 (void *in, void *out, int n) /* { dg-final { scan-assembler-not {vmv1r} } } */ /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ -/* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {vmv8r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-42.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-42.c index 1ee5b20a899..fa5dac58a20 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-42.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-42.c @@ -21,7 +21,7 @@ reduc_plus_float (float *__restrict a, int n) return r; } -/* { dg-final { scan-assembler-not {vmv1r} } } */ +/* { dg-final { scan-assembler-not {vmv1r} { xfail riscv*-*-* } } } */ /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-5.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-5.c index f7d668c624b..b34a835b965 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-5.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-5.c @@ -65,4 +65,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-6.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-6.c index 3eed1198a70..95af07166a3 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-6.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-6.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-7.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-7.c index 7064471496c..59cbd7ff4be 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-7.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-7.c @@ -101,6 +101,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ - - +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-8.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-8.c index ab56d0d69af..3a8ca02bd21 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-8.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-8.c @@ -65,4 +65,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-9.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-9.c index 82f369c0cd9..88ab1d9da5c 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-9.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-9.c @@ -48,4 +48,4 @@ foo (char const *buf, size_t len) /* { dg-final { scan-assembler-not {vmv2r} } } */ /* { dg-final { scan-assembler-not {vmv4r} } } */ /* { dg-final { scan-assembler-not {vmv8r} } } */ -/* { dg-final { scan-assembler-not {csrr} } } */ +/* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-1.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-1.c new file mode 100644 index 00000000000..b8474804c88 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */ + +#include "riscv_vector.h" + +vfloat32mf2_t test_vfwsub_wf_f32mf2(vfloat32mf2_t vs2, _Float16 rs1, size_t vl) +{ + return __riscv_vfwsub_wf_f32mf2(vs2, rs1, vl); /* { dg-error {built-in function '__riscv_vfwsub_wf_f32mf2\(vs2, rs1, vl\)' requires the zvfhmin or zvfh ISA extension} } */ +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-2.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-2.c new file mode 100644 index 00000000000..49aa3141af3 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-2.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */ + +#include "riscv_vector.h" + +vfloat32mf2_t test_vfwadd_wf_f32mf2(vfloat32mf2_t vs2, _Float16 rs1, size_t vl) +{ + return __riscv_vfwadd_wf_f32mf2(vs2, rs1, vl); /* { dg-error {built-in function '__riscv_vfwadd_wf_f32mf2\(vs2, rs1, vl\)' requires the zvfhmin or zvfh ISA extension} } */ +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr115068-run.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr115068-run.c new file mode 100644 index 00000000000..d552eb568f6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr115068-run.c @@ -0,0 +1,6 @@ +/* { dg-do run } */ +/* { dg-require-effective-target riscv_v_ok } */ +/* { dg-add-options riscv_v } */ +/* { dg-additional-options "-std=gnu99" } */ + +#include "pr115068.c" diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr115068.c b/gcc/testsuite/gcc.target/riscv/rvv/base/pr115068.c new file mode 100644 index 00000000000..8359e81629d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr115068.c @@ -0,0 +1,55 @@ +/* { dg-do compile } */ +/* { dg-add-options riscv_v } */ +/* { dg-additional-options "-std=gnu99" } */ + +#include <stdint.h> +#include <riscv_vector.h> + +vfloat64m8_t +test_vfwadd_wf_f64m8_m (vbool8_t vm, vfloat64m8_t vs2, float rs1, size_t vl) +{ + return __riscv_vfwadd_wf_f64m8_m (vm, vs2, rs1, vl); +} + +vint64m8_t +test_vwadd_wx_i64m8_m (vbool8_t vm, vint64m8_t vs2, int32_t rs1, size_t vl) +{ + return __riscv_vwadd_wx_i64m8_m (vm, vs2, rs1, vl); +} + +vint64m8_t +test_vwsub_wx_i64m8_m (vbool8_t vm, vint64m8_t vs2, int32_t rs1, size_t vl) +{ + return __riscv_vwsub_wx_i64m8_m (vm, vs2, rs1, vl); +} + +char global_memory[1024]; +void *fake_memory = (void *) global_memory; + +int +main () +{ + asm volatile ("fence" ::: "memory"); + vfloat64m8_t vfwadd_wf_f64m8_m_vd = test_vfwadd_wf_f64m8_m ( + __riscv_vreinterpret_v_i8m1_b8 (__riscv_vundefined_i8m1 ()), + __riscv_vundefined_f64m8 (), 1.0, __riscv_vsetvlmax_e64m8 ()); + asm volatile ("" ::"vr"(vfwadd_wf_f64m8_m_vd) : "memory"); + + asm volatile ("fence" ::: "memory"); + vint64m8_t vwadd_wx_i64m8_m_vd = test_vwadd_wx_i64m8_m ( + __riscv_vreinterpret_v_i8m1_b8 (__riscv_vundefined_i8m1 ()), + __riscv_vundefined_i64m8 (), 1.0, __riscv_vsetvlmax_e64m8 ()); + asm volatile ("" ::"vr"(vwadd_wx_i64m8_m_vd) : "memory"); + + asm volatile ("fence" ::: "memory"); + vint64m8_t vwsub_wx_i64m8_m_vd = test_vwsub_wx_i64m8_m ( + __riscv_vreinterpret_v_i8m1_b8 (__riscv_vundefined_i8m1 ()), + __riscv_vundefined_i64m8 (), 1.0, __riscv_vsetvlmax_e64m8 ()); + asm volatile ("" ::"vr"(vwsub_wx_i64m8_m_vd) : "memory"); + + return 0; +} + +/* { dg-final { scan-assembler-not "vfwadd.wf\tv0.*v0" } } */ +/* { dg-final { scan-assembler-not "vwadd.wx\tv0.*v0" } } */ +/* { dg-final { scan-assembler-not "vwsub.wx\tv0.*v0" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/vwaddsub-1.c b/gcc/testsuite/gcc.target/riscv/rvv/base/vwaddsub-1.c new file mode 100644 index 00000000000..196215a1f7b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/vwaddsub-1.c @@ -0,0 +1,48 @@ +/* { dg-do compile } */ +/* { dg-add-options riscv_v } */ +/* { dg-additional-options "-std=gnu99 -O3 -fno-schedule-insns -fno-schedule-insns2" } */ + +#include <stdint.h> +#include <riscv_vector.h> + +/* +** vwadd_wx_i64m8_m: +** vsetvli\s+zero,[a-x0-9]+,\s*e32,\s*m4,\s*t[au],\s*m[au] +** vwadd\.wx\tv8,v8,a0,v0.t +** ret +*/ +vint64m8_t +vwadd_wx_i64m8_m (vbool8_t vm, vint64m8_t vs2, int64_t rs1, size_t vl) +{ + return __riscv_vwadd_wx_i64m8_m (vm, vs2, rs1, vl); +} + +/* +** vwsub_wx_i64m8_m: +** vsetvli\s+zero,[a-x0-9]+,\s*e32,\s*m4,\s*t[au],\s*m[au] +** vwsub\.wx\tv8,v8,a0,v0.t +** ret +*/ +vint64m8_t +vwsub_wx_i64m8_m (vbool8_t vm, vint64m8_t vs2, int64_t rs1, size_t vl) +{ + return __riscv_vwsub_wx_i64m8_m (vm, vs2, rs1, vl); +} + +/* +** vwadd_wx_i32m8_m: +** ... +** vsetvli\s+zero,[a-x0-9]+,\s*e16,\s*m4,\s*t[au],\s*m[au] +** vwadd\.wx\tv8,v8,a5,v0.t +** ret +*/ + +extern int8_t bla; + +vint32m8_t +vwadd_wx_i32m8_m (vbool4_t vm, vint32m8_t vs2, int16_t rs1, size_t vl) +{ + return __riscv_vwadd_wx_i32m8_m (vm, vs2, bla, vl); +} + +/* { dg-final { check-function-bodies "**" "" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr115214.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr115214.c new file mode 100644 index 00000000000..fce2e9da766 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr115214.c @@ -0,0 +1,52 @@ +/* { dg-do compile } */ +/* { dg-options "-mrvv-vector-bits=scalable -march=rv64gcv -mabi=lp64d -O3 -w" } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } } */ + +#include <riscv_vector.h> + +static inline __attribute__(()) int vaddq_f32(); +static inline __attribute__(()) int vload_tillz_f32(int nlane) { + vint32m1_t __trans_tmp_9; + { + int __trans_tmp_0 = nlane; + { + vint64m1_t __trans_tmp_1; + vint64m1_t __trans_tmp_2; + vint64m1_t __trans_tmp_3; + vint64m1_t __trans_tmp_4; + if (__trans_tmp_0 == 1) { + { + __trans_tmp_3 = + __riscv_vslideup_vx_i64m1(__trans_tmp_1, __trans_tmp_2, 1, 2); + } + __trans_tmp_4 = __trans_tmp_2; + } + __trans_tmp_4 = __trans_tmp_3; + __trans_tmp_9 = __riscv_vreinterpret_v_i64m1_i32m1(__trans_tmp_3); + } + } + return vaddq_f32(__trans_tmp_9); /* { dg-error {RVV type 'vint32m1_t' cannot be passed to an unprototyped function} } */ +} + +char CFLOAT_add_args[3]; +const int *CFLOAT_add_steps; +const int CFLOAT_steps; + +__attribute__(()) void CFLOAT_add() { + char *b_src0 = &CFLOAT_add_args[0], *b_src1 = &CFLOAT_add_args[1], + *b_dst = &CFLOAT_add_args[2]; + const float *src1 = (float *)b_src1; + float *dst = (float *)b_dst; + const int ssrc1 = CFLOAT_add_steps[1] / sizeof(float); + const int sdst = CFLOAT_add_steps[2] / sizeof(float); + const int hstep = 4 / 2; + vfloat32m1x2_t a; + int len = 255; + for (; len > 0; len -= hstep, src1 += 4, dst += 4) { + int b = vload_tillz_f32(len); + int r = vaddq_f32(a.__val[0], b); /* { dg-error {RVV type '__rvv_float32m1_t' cannot be passed to an unprototyped function} } */ + } + for (; len > 0; --len, b_src0 += CFLOAT_steps, + b_src1 += CFLOAT_add_steps[1], b_dst += CFLOAT_add_steps[2]) + ; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat_arith.h b/gcc/testsuite/gcc.target/riscv/sat_arith.h new file mode 100644 index 00000000000..2ef9fd825f3 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_arith.h @@ -0,0 +1,31 @@ +#ifndef HAVE_SAT_ARITH +#define HAVE_SAT_ARITH + +#include <stdint-gcc.h> + +#define DEF_SAT_U_ADD_FMT_1(T) \ +T __attribute__((noinline)) \ +sat_u_add_##T##_fmt_1 (T x, T y) \ +{ \ + return (x + y) | (-(T)((T)(x + y) < x)); \ +} + +#define DEF_VEC_SAT_U_ADD_FMT_1(T) \ +void __attribute__((noinline)) \ +vec_sat_u_add_##T##_fmt_1 (T *out, T *op_1, T *op_2, unsigned limit) \ +{ \ + unsigned i; \ + for (i = 0; i < limit; i++) \ + { \ + T x = op_1[i]; \ + T y = op_2[i]; \ + out[i] = (x + y) | (-(T)((T)(x + y) < x)); \ + } \ +} + +#define RUN_SAT_U_ADD_FMT_1(T, x, y) sat_u_add_##T##_fmt_1(x, y) + +#define RUN_VEC_SAT_U_ADD_FMT_1(T, out, op_1, op_2, N) \ + vec_sat_u_add_##T##_fmt_1(out, op_1, op_2, N) + +#endif diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-1.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-1.c new file mode 100644 index 00000000000..609e1ea343b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-1.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint8_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_FMT_1(uint8_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-2.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-2.c new file mode 100644 index 00000000000..d30436c782a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-2.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint16_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_FMT_1(uint16_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-3.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-3.c new file mode 100644 index 00000000000..12347c607bd --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-3.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint32_t_fmt_1: +** addw\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_FMT_1(uint32_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-4.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-4.c new file mode 100644 index 00000000000..f2c6b74d917 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-4.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint64_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_FMT_1(uint64_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1.c new file mode 100644 index 00000000000..f1972490006 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint8_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 + +DEF_SAT_U_ADD_FMT_1(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2.c new file mode 100644 index 00000000000..cb3879d0cde --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint16_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 + +DEF_SAT_U_ADD_FMT_1(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3.c new file mode 100644 index 00000000000..c9a6080ca3b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint32_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 + +DEF_SAT_U_ADD_FMT_1(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4.c new file mode 100644 index 00000000000..c19b7e22387 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint64_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 + +DEF_SAT_U_ADD_FMT_1(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/scalar_sat_binary.h b/gcc/testsuite/gcc.target/riscv/scalar_sat_binary.h new file mode 100644 index 00000000000..cbb2d750107 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/scalar_sat_binary.h @@ -0,0 +1,27 @@ +#ifndef HAVE_DEFINED_SCALAR_SAT_BINARY +#define HAVE_DEFINED_SCALAR_SAT_BINARY + +/* To leverage this header files for run test, you need to: + 1. define T as the type, for example uint8_t, + 2. define RUN_SAT_BINARY as run function. + 3. prepare the test_data for test cases. + */ + +int +main () +{ + unsigned i; + T *d; + + for (i = 0; i < sizeof (test_data) / sizeof (test_data[0]); i++) + { + d = test_data[i]; + + if (RUN_SAT_BINARY (T, d[0], d[1]) != d[2]) + __builtin_abort (); + } + + return 0; +} + +#endif diff --git a/gcc/testsuite/gcc.target/riscv/shift-add-1.c b/gcc/testsuite/gcc.target/riscv/shift-add-1.c new file mode 100644 index 00000000000..d98875c3271 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/shift-add-1.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" } } */ + +int composeFromSurrogate(const unsigned short high) { + + return ((high - 0xD800) << 10) ; +} + + +long composeFromSurrogate_2(const unsigned long high) { + + return ((high - 0xD800) << 10) ; +} + + +/* { dg-final { scan-assembler-times "\tli\t" 2 } } */ +/* { dg-final { scan-assembler-times "\tslli\t" 2 } } */ +/* { dg-final { scan-assembler-times "\taddw\t" 1 } } */ +/* { dg-final { scan-assembler-times "\tadd\t" 1 } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/shift-add-2.c b/gcc/testsuite/gcc.target/riscv/shift-add-2.c new file mode 100644 index 00000000000..87439858e59 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/shift-add-2.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" } } */ + +int sub2(int a, long long b) { + b = (b << 32) >> 31; + unsigned int x = a + b; + return x; +} + + +/* { dg-final { scan-assembler-times "\tslli\t" 1 } } */ +/* { dg-final { scan-assembler-times "\taddw\t" 1 } } */ +/* { dg-final { scan-assembler-not "\tsrai\t" } } */ +/* { dg-final { scan-assembler-not "\tsh.add\t" } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/sign-extend-1.c b/gcc/testsuite/gcc.target/riscv/sign-extend-1.c new file mode 100644 index 00000000000..d8c18dd1aaa --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sign-extend-1.c @@ -0,0 +1,28 @@ +/* { dg-do compile { target { riscv64*-*-* } } } */ +/* { dg-options "-march=rv64gc -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ + +signed long +foo1 (int i) +{ + return i >> 31; +} +/* { dg-final { scan-assembler "sraiw\ta\[0-9\],a\[0-9\],31" } } */ + +signed char +sub2 (long i) +{ + return i >> 24; +} +/* { dg-final { scan-assembler "sraiw\ta\[0-9\],a\[0-9\],24" } } */ + +signed short +sub3 (long i) +{ + return i >> 16; +} +/* { dg-final { scan-assembler "sraiw\ta\[0-9\],a\[0-9\],16" } } */ + +/* { dg-final { scan-assembler-not "srai\t" } } */ +/* { dg-final { scan-assembler-not "srli\t" } } */ +/* { dg-final { scan-assembler-not "srliw\t" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sign-extend-rshift-32.c b/gcc/testsuite/gcc.target/riscv/sign-extend-rshift-32.c new file mode 100644 index 00000000000..895dd18c8f6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sign-extend-rshift-32.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv32 } */ +/* { dg-options "-march=rv32gc" } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ + +#include "extend-shift-helpers.h" + +/* { dg-final { scan-assembler "slli\ta\[0-9\],a\[0-9\],15" } } */ +/* { dg-final { scan-assembler "srai\ta\[0-9\],a\[0-9\],24" } } */ +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(9) + +/* { dg-final { scan-assembler "slli\ta\[0-9\],a\[0-9\],2" } } */ +/* { dg-final { scan-assembler "srai\ta\[0-9\],a\[0-9\],16" } } */ +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(14) + +/* { dg-final { scan-assembler "srai\ta\[0-9\],a\[0-9\],23" } } */ +SLONG_EXT_SINT_RSHIFT_N_SLONG(23) diff --git a/gcc/testsuite/gcc.target/riscv/sign-extend-rshift-64.c b/gcc/testsuite/gcc.target/riscv/sign-extend-rshift-64.c new file mode 100644 index 00000000000..13d18f73eab --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sign-extend-rshift-64.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* { dg-options "-march=rv64gc" } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ + +#include "extend-shift-helpers.h" + +/* { dg-final { scan-assembler "slli\ta\[0-9\],a\[0-9\],47" } } */ +/* { dg-final { scan-assembler "srai\ta\[0-9\],a\[0-9\],56" } } */ +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(9) + +/* { dg-final { scan-assembler "slli\ta\[0-9\],a\[0-9\],34" } } */ +/* { dg-final { scan-assembler "srai\ta\[0-9\],a\[0-9\],48" } } */ +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(14) + +/* { dg-final { scan-assembler "srai\ta\[0-9\],a\[0-9\],51" } } */ +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(51) diff --git a/gcc/testsuite/gcc.target/riscv/sign-extend-rshift.c b/gcc/testsuite/gcc.target/riscv/sign-extend-rshift.c new file mode 100644 index 00000000000..90a44eadb59 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sign-extend-rshift.c @@ -0,0 +1,123 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc" { target { rv32 } } } */ +/* { dg-options "-march=rv64gc" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-O1" "-Os" "-Og" "-Oz" "-flto" } } */ + +// Tests for merging rshifts into sero-extensions. +// s32-casts are skipped as they can be done with one instruction (sext.w). + +#include "extend-shift-helpers.h" + +// Below "slli (24-N); srai 24" for rv32 +// Below "slli ((32+24)-N); srai (32+24)" for rv64 +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(1) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(7) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(8) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(9) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(15) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(16) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(17) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(23) +// Below "srai N" for rv32 +// Below "sraiw N" for rv64 +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(24) +// Below "srai N" for rv32 +// Below "slli ((32+24)-N); srai (32+24)" for rv64 +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(25) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(31) +// Below compiler warning for rv32 +#if __riscv_xlen == 64 +// Below "slli ((32+24)-N); srai (32+24)" for rv64 +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(32) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(33) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(39) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(40) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(41) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(47) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(48) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(49) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(55) +// Below "srai N" for rv64 +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(56) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(57) +SLONG_EXT_SCHAR_RSHIFT_N_SLONG(63) +#endif /* __riscv_xlen == 64 */ + + + +// Below "slli (16-N); srai 16" for rv32 +// Below "slli ((32+16)-N); srai (32+16)" for rv64 +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(1) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(7) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(8) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(9) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(15) +// Below "srai 16" for rv32 +// Below "sraiw 16" for rv64 +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(16) +// Below "srai N" for rv32 +// Below "slli ((32+16)-N); srai (32+16)" for rv64 +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(17) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(23) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(24) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(25) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(31) +// Below compiler warning for rv32 +#if __riscv_xlen == 64 +// Below "slli ((32+16)-N); srai (32+16)" for rv64 +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(32) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(33) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(39) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(40) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(41) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(47) +// Below "srai N" for rv64 +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(48) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(49) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(55) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(56) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(57) +SLONG_EXT_SSHORT_RSHIFT_N_SLONG(63) +#endif /* __riscv_xlen == 64 */ + + + +#if __riscv_xlen == 64 +// Below "slli ((32+16)-N); srai (32+16)" for rv64 +// or "slli (16-N); sraiw 16" for rv64 +SINT_EXT_SSHORT_RSHIFT_N_SINT(1) +SINT_EXT_SSHORT_RSHIFT_N_SINT(7) +SINT_EXT_SSHORT_RSHIFT_N_SINT(8) +SINT_EXT_SSHORT_RSHIFT_N_SINT(9) +SINT_EXT_SSHORT_RSHIFT_N_SINT(15) +// Below "srai N" for rv64 +SINT_EXT_SSHORT_RSHIFT_N_SINT(16) +SINT_EXT_SSHORT_RSHIFT_N_SINT(17) +SINT_EXT_SSHORT_RSHIFT_N_SINT(23) +SINT_EXT_SSHORT_RSHIFT_N_SINT(24) +SINT_EXT_SSHORT_RSHIFT_N_SINT(25) +// Below "sraiw N" for rv64 +SINT_EXT_SSHORT_RSHIFT_N_SINT(31) +#endif /* __riscv_xlen == 64 */ + + + +// Below "slli (16-N); srai 16" for rv32 +// Below "slli ((32+16)-N); srai (32+16)" for rv64 +// or "slli (16-N); sraiw 16" for rv64 +SINT_EXT_SSHORT_RSHIFT_N_SLONG(9) +SINT_EXT_SSHORT_RSHIFT_N_SLONG(15) + + + +// Below "slli (16-N); srai 16" for rv32 +// Below "slli ((32+16)-N); srai (32+16)" for rv64 +SLONG_EXT_SSHORT_RSHIFT_N_SINT(9) +SLONG_EXT_SSHORT_RSHIFT_N_SINT(15) + +/* { dg-final { scan-assembler-times "slli\t" 17 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "srai\t" 26 { target { rv32 } } } } */ + +/* { dg-final { scan-assembler-times "slli\t" 44 { target { rv64 } } } } */ +/* { dg-final { scan-assembler-times "srai\t" 51 { target { rv64 } } } } */ +/* { dg-final { scan-assembler-times "sraiw\t" 10 { target { rv64 } } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c b/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c new file mode 100644 index 00000000000..4d6d135de5f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c @@ -0,0 +1,45 @@ +// TBD: This doesn't quite work for rv32 yet +/* { dg-do compile } */ +/* { dg-options { -march=rv64gcv -mabi=lp64d } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-Os" "-Oz" } } */ + +/* Ensure that gcc doesn't generate standlone li reg, 4096. */ +long +plus1(unsigned long i) +{ + return i + 2048; +} + +long +plus2(unsigned long i) +{ + return i + 4094; +} + +long +plus3(unsigned long i) +{ + return i + 2064; +} + +/* Ensure that gcc doesn't generate standlone li reg, -4096. */ +long +minus1(unsigned long i) +{ + return i - 4096; +} + +long +minus2(unsigned long i) +{ + return i - 2049; +} + +long +minus3(unsigned long i) +{ + return i - 2064; +} + +/* { dg-final { scan-assembler-not {li\t[a-x0-9]+,-4096} } } */ +/* { dg-final { scan-assembler-not {li\t[a-x0-9]+,4096} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-2.c b/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-2.c new file mode 100644 index 00000000000..9343b43c310 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-2.c @@ -0,0 +1,15 @@ +/* Reduced from glibc/stdio-common/tempnam.c. + Can't have invalid insn in final output: + add s0, sp, 2048 */ + +/* { dg-do compile } */ +/* { dg-options { -march=rv64gcv -mabi=lp64d -O2 } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "O1" "-Og" "-Os" "-Oz" } } */ + +int a() { + char b[4096]; + if (a(b)) + a(b); +} + +/* { dg-final { scan-assembler-not {add\t[a-x0-9]+,sp,2048} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-3.c b/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-3.c new file mode 100644 index 00000000000..5dcab52c261 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-3.c @@ -0,0 +1,22 @@ +/* Reduced version of c-c++-common/torture/builtin-convertvector-1.c. */ +/* This should NOT ICE */ + +/* { dg-do compile } */ + +typedef long b __attribute__((vector_size(256 * sizeof(long)))); +typedef double c __attribute__((vector_size(256 * sizeof(double)))); +int d; +void e(b *f, c *g) { *g = __builtin_convertvector(*f, c); } +void h() { + struct { + b i; + } j; + union { + c i; + double a[6]; + } k; + e(&j.i, &k.i); + if (k.a[d]) + for (;;) + ; +} diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-1.c b/gcc/testsuite/gcc.target/riscv/synthesis-1.c new file mode 100644 index 00000000000..9176d5f4989 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-1.c @@ -0,0 +1,2034 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs" } */ + +/* Rather than test for a specific synthesis of all these constants or + having thousands of tests each testing one variant, we just test the + total number of instructions. + + This isn't expected to change much and any change is worthy of a look. */ +/* { dg-final { scan-assembler-times "\\t(add|addi|bseti|li|ret|sh1add|sh2add|sh3add|slli)" 5822 } } */ + + unsigned long foo_0x3(void) { return 0x3UL; } + unsigned long foo_0x5(void) { return 0x5UL; } + unsigned long foo_0x9(void) { return 0x9UL; } + unsigned long foo_0x11(void) { return 0x11UL; } + unsigned long foo_0x21(void) { return 0x21UL; } + unsigned long foo_0x41(void) { return 0x41UL; } + unsigned long foo_0x81(void) { return 0x81UL; } + unsigned long foo_0x101(void) { return 0x101UL; } + unsigned long foo_0x201(void) { return 0x201UL; } + unsigned long foo_0x401(void) { return 0x401UL; } + unsigned long foo_0x801(void) { return 0x801UL; } + unsigned long foo_0x1001(void) { return 0x1001UL; } + unsigned long foo_0x2001(void) { return 0x2001UL; } + unsigned long foo_0x4001(void) { return 0x4001UL; } + unsigned long foo_0x8001(void) { return 0x8001UL; } + unsigned long foo_0x10001(void) { return 0x10001UL; } + unsigned long foo_0x20001(void) { return 0x20001UL; } + unsigned long foo_0x40001(void) { return 0x40001UL; } + unsigned long foo_0x80001(void) { return 0x80001UL; } + unsigned long foo_0x100001(void) { return 0x100001UL; } + unsigned long foo_0x200001(void) { return 0x200001UL; } + unsigned long foo_0x400001(void) { return 0x400001UL; } + unsigned long foo_0x800001(void) { return 0x800001UL; } + unsigned long foo_0x1000001(void) { return 0x1000001UL; } + unsigned long foo_0x2000001(void) { return 0x2000001UL; } + unsigned long foo_0x4000001(void) { return 0x4000001UL; } + unsigned long foo_0x8000001(void) { return 0x8000001UL; } + unsigned long foo_0x10000001(void) { return 0x10000001UL; } + unsigned long foo_0x20000001(void) { return 0x20000001UL; } + unsigned long foo_0x40000001(void) { return 0x40000001UL; } + unsigned long foo_0x80000001(void) { return 0x80000001UL; } + unsigned long foo_0x100000001(void) { return 0x100000001UL; } + unsigned long foo_0x200000001(void) { return 0x200000001UL; } + unsigned long foo_0x400000001(void) { return 0x400000001UL; } + unsigned long foo_0x800000001(void) { return 0x800000001UL; } + unsigned long foo_0x1000000001(void) { return 0x1000000001UL; } + unsigned long foo_0x2000000001(void) { return 0x2000000001UL; } + unsigned long foo_0x4000000001(void) { return 0x4000000001UL; } + unsigned long foo_0x8000000001(void) { return 0x8000000001UL; } + unsigned long foo_0x10000000001(void) { return 0x10000000001UL; } + unsigned long foo_0x20000000001(void) { return 0x20000000001UL; } + unsigned long foo_0x40000000001(void) { return 0x40000000001UL; } + unsigned long foo_0x80000000001(void) { return 0x80000000001UL; } + unsigned long foo_0x100000000001(void) { return 0x100000000001UL; } + unsigned long foo_0x200000000001(void) { return 0x200000000001UL; } + unsigned long foo_0x400000000001(void) { return 0x400000000001UL; } + unsigned long foo_0x800000000001(void) { return 0x800000000001UL; } + unsigned long foo_0x1000000000001(void) { return 0x1000000000001UL; } + unsigned long foo_0x2000000000001(void) { return 0x2000000000001UL; } + unsigned long foo_0x4000000000001(void) { return 0x4000000000001UL; } + unsigned long foo_0x8000000000001(void) { return 0x8000000000001UL; } + unsigned long foo_0x10000000000001(void) { return 0x10000000000001UL; } + unsigned long foo_0x20000000000001(void) { return 0x20000000000001UL; } + unsigned long foo_0x40000000000001(void) { return 0x40000000000001UL; } + unsigned long foo_0x80000000000001(void) { return 0x80000000000001UL; } + unsigned long foo_0x100000000000001(void) { return 0x100000000000001UL; } + unsigned long foo_0x200000000000001(void) { return 0x200000000000001UL; } + unsigned long foo_0x400000000000001(void) { return 0x400000000000001UL; } + unsigned long foo_0x800000000000001(void) { return 0x800000000000001UL; } + unsigned long foo_0x1000000000000001(void) { return 0x1000000000000001UL; } + unsigned long foo_0x2000000000000001(void) { return 0x2000000000000001UL; } + unsigned long foo_0x4000000000000001(void) { return 0x4000000000000001UL; } + unsigned long foo_0x8000000000000001(void) { return 0x8000000000000001UL; } + unsigned long foo_0x6(void) { return 0x6UL; } + unsigned long foo_0xa(void) { return 0xaUL; } + unsigned long foo_0x12(void) { return 0x12UL; } + unsigned long foo_0x22(void) { return 0x22UL; } + unsigned long foo_0x42(void) { return 0x42UL; } + unsigned long foo_0x82(void) { return 0x82UL; } + unsigned long foo_0x102(void) { return 0x102UL; } + unsigned long foo_0x202(void) { return 0x202UL; } + unsigned long foo_0x402(void) { return 0x402UL; } + unsigned long foo_0x802(void) { return 0x802UL; } + unsigned long foo_0x1002(void) { return 0x1002UL; } + unsigned long foo_0x2002(void) { return 0x2002UL; } + unsigned long foo_0x4002(void) { return 0x4002UL; } + unsigned long foo_0x8002(void) { return 0x8002UL; } + unsigned long foo_0x10002(void) { return 0x10002UL; } + unsigned long foo_0x20002(void) { return 0x20002UL; } + unsigned long foo_0x40002(void) { return 0x40002UL; } + unsigned long foo_0x80002(void) { return 0x80002UL; } + unsigned long foo_0x100002(void) { return 0x100002UL; } + unsigned long foo_0x200002(void) { return 0x200002UL; } + unsigned long foo_0x400002(void) { return 0x400002UL; } + unsigned long foo_0x800002(void) { return 0x800002UL; } + unsigned long foo_0x1000002(void) { return 0x1000002UL; } + unsigned long foo_0x2000002(void) { return 0x2000002UL; } + unsigned long foo_0x4000002(void) { return 0x4000002UL; } + unsigned long foo_0x8000002(void) { return 0x8000002UL; } + unsigned long foo_0x10000002(void) { return 0x10000002UL; } + unsigned long foo_0x20000002(void) { return 0x20000002UL; } + unsigned long foo_0x40000002(void) { return 0x40000002UL; } + unsigned long foo_0x80000002(void) { return 0x80000002UL; } + unsigned long foo_0x100000002(void) { return 0x100000002UL; } + unsigned long foo_0x200000002(void) { return 0x200000002UL; } + unsigned long foo_0x400000002(void) { return 0x400000002UL; } + unsigned long foo_0x800000002(void) { return 0x800000002UL; } + unsigned long foo_0x1000000002(void) { return 0x1000000002UL; } + unsigned long foo_0x2000000002(void) { return 0x2000000002UL; } + unsigned long foo_0x4000000002(void) { return 0x4000000002UL; } + unsigned long foo_0x8000000002(void) { return 0x8000000002UL; } + unsigned long foo_0x10000000002(void) { return 0x10000000002UL; } + unsigned long foo_0x20000000002(void) { return 0x20000000002UL; } + unsigned long foo_0x40000000002(void) { return 0x40000000002UL; } + unsigned long foo_0x80000000002(void) { return 0x80000000002UL; } + unsigned long foo_0x100000000002(void) { return 0x100000000002UL; } + unsigned long foo_0x200000000002(void) { return 0x200000000002UL; } + unsigned long foo_0x400000000002(void) { return 0x400000000002UL; } + unsigned long foo_0x800000000002(void) { return 0x800000000002UL; } + unsigned long foo_0x1000000000002(void) { return 0x1000000000002UL; } + unsigned long foo_0x2000000000002(void) { return 0x2000000000002UL; } + unsigned long foo_0x4000000000002(void) { return 0x4000000000002UL; } + unsigned long foo_0x8000000000002(void) { return 0x8000000000002UL; } + unsigned long foo_0x10000000000002(void) { return 0x10000000000002UL; } + unsigned long foo_0x20000000000002(void) { return 0x20000000000002UL; } + unsigned long foo_0x40000000000002(void) { return 0x40000000000002UL; } + unsigned long foo_0x80000000000002(void) { return 0x80000000000002UL; } + unsigned long foo_0x100000000000002(void) { return 0x100000000000002UL; } + unsigned long foo_0x200000000000002(void) { return 0x200000000000002UL; } + unsigned long foo_0x400000000000002(void) { return 0x400000000000002UL; } + unsigned long foo_0x800000000000002(void) { return 0x800000000000002UL; } + unsigned long foo_0x1000000000000002(void) { return 0x1000000000000002UL; } + unsigned long foo_0x2000000000000002(void) { return 0x2000000000000002UL; } + unsigned long foo_0x4000000000000002(void) { return 0x4000000000000002UL; } + unsigned long foo_0x8000000000000002(void) { return 0x8000000000000002UL; } + unsigned long foo_0xc(void) { return 0xcUL; } + unsigned long foo_0x14(void) { return 0x14UL; } + unsigned long foo_0x24(void) { return 0x24UL; } + unsigned long foo_0x44(void) { return 0x44UL; } + unsigned long foo_0x84(void) { return 0x84UL; } + unsigned long foo_0x104(void) { return 0x104UL; } + unsigned long foo_0x204(void) { return 0x204UL; } + unsigned long foo_0x404(void) { return 0x404UL; } + unsigned long foo_0x804(void) { return 0x804UL; } + unsigned long foo_0x1004(void) { return 0x1004UL; } + unsigned long foo_0x2004(void) { return 0x2004UL; } + unsigned long foo_0x4004(void) { return 0x4004UL; } + unsigned long foo_0x8004(void) { return 0x8004UL; } + unsigned long foo_0x10004(void) { return 0x10004UL; } + unsigned long foo_0x20004(void) { return 0x20004UL; } + unsigned long foo_0x40004(void) { return 0x40004UL; } + unsigned long foo_0x80004(void) { return 0x80004UL; } + unsigned long foo_0x100004(void) { return 0x100004UL; } + unsigned long foo_0x200004(void) { return 0x200004UL; } + unsigned long foo_0x400004(void) { return 0x400004UL; } + unsigned long foo_0x800004(void) { return 0x800004UL; } + unsigned long foo_0x1000004(void) { return 0x1000004UL; } + unsigned long foo_0x2000004(void) { return 0x2000004UL; } + unsigned long foo_0x4000004(void) { return 0x4000004UL; } + unsigned long foo_0x8000004(void) { return 0x8000004UL; } + unsigned long foo_0x10000004(void) { return 0x10000004UL; } + unsigned long foo_0x20000004(void) { return 0x20000004UL; } + unsigned long foo_0x40000004(void) { return 0x40000004UL; } + unsigned long foo_0x80000004(void) { return 0x80000004UL; } + unsigned long foo_0x100000004(void) { return 0x100000004UL; } + unsigned long foo_0x200000004(void) { return 0x200000004UL; } + unsigned long foo_0x400000004(void) { return 0x400000004UL; } + unsigned long foo_0x800000004(void) { return 0x800000004UL; } + unsigned long foo_0x1000000004(void) { return 0x1000000004UL; } + unsigned long foo_0x2000000004(void) { return 0x2000000004UL; } + unsigned long foo_0x4000000004(void) { return 0x4000000004UL; } + unsigned long foo_0x8000000004(void) { return 0x8000000004UL; } + unsigned long foo_0x10000000004(void) { return 0x10000000004UL; } + unsigned long foo_0x20000000004(void) { return 0x20000000004UL; } + unsigned long foo_0x40000000004(void) { return 0x40000000004UL; } + unsigned long foo_0x80000000004(void) { return 0x80000000004UL; } + unsigned long foo_0x100000000004(void) { return 0x100000000004UL; } + unsigned long foo_0x200000000004(void) { return 0x200000000004UL; } + unsigned long foo_0x400000000004(void) { return 0x400000000004UL; } + unsigned long foo_0x800000000004(void) { return 0x800000000004UL; } + unsigned long foo_0x1000000000004(void) { return 0x1000000000004UL; } + unsigned long foo_0x2000000000004(void) { return 0x2000000000004UL; } + unsigned long foo_0x4000000000004(void) { return 0x4000000000004UL; } + unsigned long foo_0x8000000000004(void) { return 0x8000000000004UL; } + unsigned long foo_0x10000000000004(void) { return 0x10000000000004UL; } + unsigned long foo_0x20000000000004(void) { return 0x20000000000004UL; } + unsigned long foo_0x40000000000004(void) { return 0x40000000000004UL; } + unsigned long foo_0x80000000000004(void) { return 0x80000000000004UL; } + unsigned long foo_0x100000000000004(void) { return 0x100000000000004UL; } + unsigned long foo_0x200000000000004(void) { return 0x200000000000004UL; } + unsigned long foo_0x400000000000004(void) { return 0x400000000000004UL; } + unsigned long foo_0x800000000000004(void) { return 0x800000000000004UL; } + unsigned long foo_0x1000000000000004(void) { return 0x1000000000000004UL; } + unsigned long foo_0x2000000000000004(void) { return 0x2000000000000004UL; } + unsigned long foo_0x4000000000000004(void) { return 0x4000000000000004UL; } + unsigned long foo_0x8000000000000004(void) { return 0x8000000000000004UL; } + unsigned long foo_0x18(void) { return 0x18UL; } + unsigned long foo_0x28(void) { return 0x28UL; } + unsigned long foo_0x48(void) { return 0x48UL; } + unsigned long foo_0x88(void) { return 0x88UL; } + unsigned long foo_0x108(void) { return 0x108UL; } + unsigned long foo_0x208(void) { return 0x208UL; } + unsigned long foo_0x408(void) { return 0x408UL; } + unsigned long foo_0x808(void) { return 0x808UL; } + unsigned long foo_0x1008(void) { return 0x1008UL; } + unsigned long foo_0x2008(void) { return 0x2008UL; } + unsigned long foo_0x4008(void) { return 0x4008UL; } + unsigned long foo_0x8008(void) { return 0x8008UL; } + unsigned long foo_0x10008(void) { return 0x10008UL; } + unsigned long foo_0x20008(void) { return 0x20008UL; } + unsigned long foo_0x40008(void) { return 0x40008UL; } + unsigned long foo_0x80008(void) { return 0x80008UL; } + unsigned long foo_0x100008(void) { return 0x100008UL; } + unsigned long foo_0x200008(void) { return 0x200008UL; } + unsigned long foo_0x400008(void) { return 0x400008UL; } + unsigned long foo_0x800008(void) { return 0x800008UL; } + unsigned long foo_0x1000008(void) { return 0x1000008UL; } + unsigned long foo_0x2000008(void) { return 0x2000008UL; } + unsigned long foo_0x4000008(void) { return 0x4000008UL; } + unsigned long foo_0x8000008(void) { return 0x8000008UL; } + unsigned long foo_0x10000008(void) { return 0x10000008UL; } + unsigned long foo_0x20000008(void) { return 0x20000008UL; } + unsigned long foo_0x40000008(void) { return 0x40000008UL; } + unsigned long foo_0x80000008(void) { return 0x80000008UL; } + unsigned long foo_0x100000008(void) { return 0x100000008UL; } + unsigned long foo_0x200000008(void) { return 0x200000008UL; } + unsigned long foo_0x400000008(void) { return 0x400000008UL; } + unsigned long foo_0x800000008(void) { return 0x800000008UL; } + unsigned long foo_0x1000000008(void) { return 0x1000000008UL; } + unsigned long foo_0x2000000008(void) { return 0x2000000008UL; } + unsigned long foo_0x4000000008(void) { return 0x4000000008UL; } + unsigned long foo_0x8000000008(void) { return 0x8000000008UL; } + unsigned long foo_0x10000000008(void) { return 0x10000000008UL; } + unsigned long foo_0x20000000008(void) { return 0x20000000008UL; } + unsigned long foo_0x40000000008(void) { return 0x40000000008UL; } + unsigned long foo_0x80000000008(void) { return 0x80000000008UL; } + unsigned long foo_0x100000000008(void) { return 0x100000000008UL; } + unsigned long foo_0x200000000008(void) { return 0x200000000008UL; } + unsigned long foo_0x400000000008(void) { return 0x400000000008UL; } + unsigned long foo_0x800000000008(void) { return 0x800000000008UL; } + unsigned long foo_0x1000000000008(void) { return 0x1000000000008UL; } + unsigned long foo_0x2000000000008(void) { return 0x2000000000008UL; } + unsigned long foo_0x4000000000008(void) { return 0x4000000000008UL; } + unsigned long foo_0x8000000000008(void) { return 0x8000000000008UL; } + unsigned long foo_0x10000000000008(void) { return 0x10000000000008UL; } + unsigned long foo_0x20000000000008(void) { return 0x20000000000008UL; } + unsigned long foo_0x40000000000008(void) { return 0x40000000000008UL; } + unsigned long foo_0x80000000000008(void) { return 0x80000000000008UL; } + unsigned long foo_0x100000000000008(void) { return 0x100000000000008UL; } + unsigned long foo_0x200000000000008(void) { return 0x200000000000008UL; } + unsigned long foo_0x400000000000008(void) { return 0x400000000000008UL; } + unsigned long foo_0x800000000000008(void) { return 0x800000000000008UL; } + unsigned long foo_0x1000000000000008(void) { return 0x1000000000000008UL; } + unsigned long foo_0x2000000000000008(void) { return 0x2000000000000008UL; } + unsigned long foo_0x4000000000000008(void) { return 0x4000000000000008UL; } + unsigned long foo_0x8000000000000008(void) { return 0x8000000000000008UL; } + unsigned long foo_0x30(void) { return 0x30UL; } + unsigned long foo_0x50(void) { return 0x50UL; } + unsigned long foo_0x90(void) { return 0x90UL; } + unsigned long foo_0x110(void) { return 0x110UL; } + unsigned long foo_0x210(void) { return 0x210UL; } + unsigned long foo_0x410(void) { return 0x410UL; } + unsigned long foo_0x810(void) { return 0x810UL; } + unsigned long foo_0x1010(void) { return 0x1010UL; } + unsigned long foo_0x2010(void) { return 0x2010UL; } + unsigned long foo_0x4010(void) { return 0x4010UL; } + unsigned long foo_0x8010(void) { return 0x8010UL; } + unsigned long foo_0x10010(void) { return 0x10010UL; } + unsigned long foo_0x20010(void) { return 0x20010UL; } + unsigned long foo_0x40010(void) { return 0x40010UL; } + unsigned long foo_0x80010(void) { return 0x80010UL; } + unsigned long foo_0x100010(void) { return 0x100010UL; } + unsigned long foo_0x200010(void) { return 0x200010UL; } + unsigned long foo_0x400010(void) { return 0x400010UL; } + unsigned long foo_0x800010(void) { return 0x800010UL; } + unsigned long foo_0x1000010(void) { return 0x1000010UL; } + unsigned long foo_0x2000010(void) { return 0x2000010UL; } + unsigned long foo_0x4000010(void) { return 0x4000010UL; } + unsigned long foo_0x8000010(void) { return 0x8000010UL; } + unsigned long foo_0x10000010(void) { return 0x10000010UL; } + unsigned long foo_0x20000010(void) { return 0x20000010UL; } + unsigned long foo_0x40000010(void) { return 0x40000010UL; } + unsigned long foo_0x80000010(void) { return 0x80000010UL; } + unsigned long foo_0x100000010(void) { return 0x100000010UL; } + unsigned long foo_0x200000010(void) { return 0x200000010UL; } + unsigned long foo_0x400000010(void) { return 0x400000010UL; } + unsigned long foo_0x800000010(void) { return 0x800000010UL; } + unsigned long foo_0x1000000010(void) { return 0x1000000010UL; } + unsigned long foo_0x2000000010(void) { return 0x2000000010UL; } + unsigned long foo_0x4000000010(void) { return 0x4000000010UL; } + unsigned long foo_0x8000000010(void) { return 0x8000000010UL; } + unsigned long foo_0x10000000010(void) { return 0x10000000010UL; } + unsigned long foo_0x20000000010(void) { return 0x20000000010UL; } + unsigned long foo_0x40000000010(void) { return 0x40000000010UL; } + unsigned long foo_0x80000000010(void) { return 0x80000000010UL; } + unsigned long foo_0x100000000010(void) { return 0x100000000010UL; } + unsigned long foo_0x200000000010(void) { return 0x200000000010UL; } + unsigned long foo_0x400000000010(void) { return 0x400000000010UL; } + unsigned long foo_0x800000000010(void) { return 0x800000000010UL; } + unsigned long foo_0x1000000000010(void) { return 0x1000000000010UL; } + unsigned long foo_0x2000000000010(void) { return 0x2000000000010UL; } + unsigned long foo_0x4000000000010(void) { return 0x4000000000010UL; } + unsigned long foo_0x8000000000010(void) { return 0x8000000000010UL; } + unsigned long foo_0x10000000000010(void) { return 0x10000000000010UL; } + unsigned long foo_0x20000000000010(void) { return 0x20000000000010UL; } + unsigned long foo_0x40000000000010(void) { return 0x40000000000010UL; } + unsigned long foo_0x80000000000010(void) { return 0x80000000000010UL; } + unsigned long foo_0x100000000000010(void) { return 0x100000000000010UL; } + unsigned long foo_0x200000000000010(void) { return 0x200000000000010UL; } + unsigned long foo_0x400000000000010(void) { return 0x400000000000010UL; } + unsigned long foo_0x800000000000010(void) { return 0x800000000000010UL; } + unsigned long foo_0x1000000000000010(void) { return 0x1000000000000010UL; } + unsigned long foo_0x2000000000000010(void) { return 0x2000000000000010UL; } + unsigned long foo_0x4000000000000010(void) { return 0x4000000000000010UL; } + unsigned long foo_0x8000000000000010(void) { return 0x8000000000000010UL; } + unsigned long foo_0x60(void) { return 0x60UL; } + unsigned long foo_0xa0(void) { return 0xa0UL; } + unsigned long foo_0x120(void) { return 0x120UL; } + unsigned long foo_0x220(void) { return 0x220UL; } + unsigned long foo_0x420(void) { return 0x420UL; } + unsigned long foo_0x820(void) { return 0x820UL; } + unsigned long foo_0x1020(void) { return 0x1020UL; } + unsigned long foo_0x2020(void) { return 0x2020UL; } + unsigned long foo_0x4020(void) { return 0x4020UL; } + unsigned long foo_0x8020(void) { return 0x8020UL; } + unsigned long foo_0x10020(void) { return 0x10020UL; } + unsigned long foo_0x20020(void) { return 0x20020UL; } + unsigned long foo_0x40020(void) { return 0x40020UL; } + unsigned long foo_0x80020(void) { return 0x80020UL; } + unsigned long foo_0x100020(void) { return 0x100020UL; } + unsigned long foo_0x200020(void) { return 0x200020UL; } + unsigned long foo_0x400020(void) { return 0x400020UL; } + unsigned long foo_0x800020(void) { return 0x800020UL; } + unsigned long foo_0x1000020(void) { return 0x1000020UL; } + unsigned long foo_0x2000020(void) { return 0x2000020UL; } + unsigned long foo_0x4000020(void) { return 0x4000020UL; } + unsigned long foo_0x8000020(void) { return 0x8000020UL; } + unsigned long foo_0x10000020(void) { return 0x10000020UL; } + unsigned long foo_0x20000020(void) { return 0x20000020UL; } + unsigned long foo_0x40000020(void) { return 0x40000020UL; } + unsigned long foo_0x80000020(void) { return 0x80000020UL; } + unsigned long foo_0x100000020(void) { return 0x100000020UL; } + unsigned long foo_0x200000020(void) { return 0x200000020UL; } + unsigned long foo_0x400000020(void) { return 0x400000020UL; } + unsigned long foo_0x800000020(void) { return 0x800000020UL; } + unsigned long foo_0x1000000020(void) { return 0x1000000020UL; } + unsigned long foo_0x2000000020(void) { return 0x2000000020UL; } + unsigned long foo_0x4000000020(void) { return 0x4000000020UL; } + unsigned long foo_0x8000000020(void) { return 0x8000000020UL; } + unsigned long foo_0x10000000020(void) { return 0x10000000020UL; } + unsigned long foo_0x20000000020(void) { return 0x20000000020UL; } + unsigned long foo_0x40000000020(void) { return 0x40000000020UL; } + unsigned long foo_0x80000000020(void) { return 0x80000000020UL; } + unsigned long foo_0x100000000020(void) { return 0x100000000020UL; } + unsigned long foo_0x200000000020(void) { return 0x200000000020UL; } + unsigned long foo_0x400000000020(void) { return 0x400000000020UL; } + unsigned long foo_0x800000000020(void) { return 0x800000000020UL; } + unsigned long foo_0x1000000000020(void) { return 0x1000000000020UL; } + unsigned long foo_0x2000000000020(void) { return 0x2000000000020UL; } + unsigned long foo_0x4000000000020(void) { return 0x4000000000020UL; } + unsigned long foo_0x8000000000020(void) { return 0x8000000000020UL; } + unsigned long foo_0x10000000000020(void) { return 0x10000000000020UL; } + unsigned long foo_0x20000000000020(void) { return 0x20000000000020UL; } + unsigned long foo_0x40000000000020(void) { return 0x40000000000020UL; } + unsigned long foo_0x80000000000020(void) { return 0x80000000000020UL; } + unsigned long foo_0x100000000000020(void) { return 0x100000000000020UL; } + unsigned long foo_0x200000000000020(void) { return 0x200000000000020UL; } + unsigned long foo_0x400000000000020(void) { return 0x400000000000020UL; } + unsigned long foo_0x800000000000020(void) { return 0x800000000000020UL; } + unsigned long foo_0x1000000000000020(void) { return 0x1000000000000020UL; } + unsigned long foo_0x2000000000000020(void) { return 0x2000000000000020UL; } + unsigned long foo_0x4000000000000020(void) { return 0x4000000000000020UL; } + unsigned long foo_0x8000000000000020(void) { return 0x8000000000000020UL; } + unsigned long foo_0xc0(void) { return 0xc0UL; } + unsigned long foo_0x140(void) { return 0x140UL; } + unsigned long foo_0x240(void) { return 0x240UL; } + unsigned long foo_0x440(void) { return 0x440UL; } + unsigned long foo_0x840(void) { return 0x840UL; } + unsigned long foo_0x1040(void) { return 0x1040UL; } + unsigned long foo_0x2040(void) { return 0x2040UL; } + unsigned long foo_0x4040(void) { return 0x4040UL; } + unsigned long foo_0x8040(void) { return 0x8040UL; } + unsigned long foo_0x10040(void) { return 0x10040UL; } + unsigned long foo_0x20040(void) { return 0x20040UL; } + unsigned long foo_0x40040(void) { return 0x40040UL; } + unsigned long foo_0x80040(void) { return 0x80040UL; } + unsigned long foo_0x100040(void) { return 0x100040UL; } + unsigned long foo_0x200040(void) { return 0x200040UL; } + unsigned long foo_0x400040(void) { return 0x400040UL; } + unsigned long foo_0x800040(void) { return 0x800040UL; } + unsigned long foo_0x1000040(void) { return 0x1000040UL; } + unsigned long foo_0x2000040(void) { return 0x2000040UL; } + unsigned long foo_0x4000040(void) { return 0x4000040UL; } + unsigned long foo_0x8000040(void) { return 0x8000040UL; } + unsigned long foo_0x10000040(void) { return 0x10000040UL; } + unsigned long foo_0x20000040(void) { return 0x20000040UL; } + unsigned long foo_0x40000040(void) { return 0x40000040UL; } + unsigned long foo_0x80000040(void) { return 0x80000040UL; } + unsigned long foo_0x100000040(void) { return 0x100000040UL; } + unsigned long foo_0x200000040(void) { return 0x200000040UL; } + unsigned long foo_0x400000040(void) { return 0x400000040UL; } + unsigned long foo_0x800000040(void) { return 0x800000040UL; } + unsigned long foo_0x1000000040(void) { return 0x1000000040UL; } + unsigned long foo_0x2000000040(void) { return 0x2000000040UL; } + unsigned long foo_0x4000000040(void) { return 0x4000000040UL; } + unsigned long foo_0x8000000040(void) { return 0x8000000040UL; } + unsigned long foo_0x10000000040(void) { return 0x10000000040UL; } + unsigned long foo_0x20000000040(void) { return 0x20000000040UL; } + unsigned long foo_0x40000000040(void) { return 0x40000000040UL; } + unsigned long foo_0x80000000040(void) { return 0x80000000040UL; } + unsigned long foo_0x100000000040(void) { return 0x100000000040UL; } + unsigned long foo_0x200000000040(void) { return 0x200000000040UL; } + unsigned long foo_0x400000000040(void) { return 0x400000000040UL; } + unsigned long foo_0x800000000040(void) { return 0x800000000040UL; } + unsigned long foo_0x1000000000040(void) { return 0x1000000000040UL; } + unsigned long foo_0x2000000000040(void) { return 0x2000000000040UL; } + unsigned long foo_0x4000000000040(void) { return 0x4000000000040UL; } + unsigned long foo_0x8000000000040(void) { return 0x8000000000040UL; } + unsigned long foo_0x10000000000040(void) { return 0x10000000000040UL; } + unsigned long foo_0x20000000000040(void) { return 0x20000000000040UL; } + unsigned long foo_0x40000000000040(void) { return 0x40000000000040UL; } + unsigned long foo_0x80000000000040(void) { return 0x80000000000040UL; } + unsigned long foo_0x100000000000040(void) { return 0x100000000000040UL; } + unsigned long foo_0x200000000000040(void) { return 0x200000000000040UL; } + unsigned long foo_0x400000000000040(void) { return 0x400000000000040UL; } + unsigned long foo_0x800000000000040(void) { return 0x800000000000040UL; } + unsigned long foo_0x1000000000000040(void) { return 0x1000000000000040UL; } + unsigned long foo_0x2000000000000040(void) { return 0x2000000000000040UL; } + unsigned long foo_0x4000000000000040(void) { return 0x4000000000000040UL; } + unsigned long foo_0x8000000000000040(void) { return 0x8000000000000040UL; } + unsigned long foo_0x180(void) { return 0x180UL; } + unsigned long foo_0x280(void) { return 0x280UL; } + unsigned long foo_0x480(void) { return 0x480UL; } + unsigned long foo_0x880(void) { return 0x880UL; } + unsigned long foo_0x1080(void) { return 0x1080UL; } + unsigned long foo_0x2080(void) { return 0x2080UL; } + unsigned long foo_0x4080(void) { return 0x4080UL; } + unsigned long foo_0x8080(void) { return 0x8080UL; } + unsigned long foo_0x10080(void) { return 0x10080UL; } + unsigned long foo_0x20080(void) { return 0x20080UL; } + unsigned long foo_0x40080(void) { return 0x40080UL; } + unsigned long foo_0x80080(void) { return 0x80080UL; } + unsigned long foo_0x100080(void) { return 0x100080UL; } + unsigned long foo_0x200080(void) { return 0x200080UL; } + unsigned long foo_0x400080(void) { return 0x400080UL; } + unsigned long foo_0x800080(void) { return 0x800080UL; } + unsigned long foo_0x1000080(void) { return 0x1000080UL; } + unsigned long foo_0x2000080(void) { return 0x2000080UL; } + unsigned long foo_0x4000080(void) { return 0x4000080UL; } + unsigned long foo_0x8000080(void) { return 0x8000080UL; } + unsigned long foo_0x10000080(void) { return 0x10000080UL; } + unsigned long foo_0x20000080(void) { return 0x20000080UL; } + unsigned long foo_0x40000080(void) { return 0x40000080UL; } + unsigned long foo_0x80000080(void) { return 0x80000080UL; } + unsigned long foo_0x100000080(void) { return 0x100000080UL; } + unsigned long foo_0x200000080(void) { return 0x200000080UL; } + unsigned long foo_0x400000080(void) { return 0x400000080UL; } + unsigned long foo_0x800000080(void) { return 0x800000080UL; } + unsigned long foo_0x1000000080(void) { return 0x1000000080UL; } + unsigned long foo_0x2000000080(void) { return 0x2000000080UL; } + unsigned long foo_0x4000000080(void) { return 0x4000000080UL; } + unsigned long foo_0x8000000080(void) { return 0x8000000080UL; } + unsigned long foo_0x10000000080(void) { return 0x10000000080UL; } + unsigned long foo_0x20000000080(void) { return 0x20000000080UL; } + unsigned long foo_0x40000000080(void) { return 0x40000000080UL; } + unsigned long foo_0x80000000080(void) { return 0x80000000080UL; } + unsigned long foo_0x100000000080(void) { return 0x100000000080UL; } + unsigned long foo_0x200000000080(void) { return 0x200000000080UL; } + unsigned long foo_0x400000000080(void) { return 0x400000000080UL; } + unsigned long foo_0x800000000080(void) { return 0x800000000080UL; } + unsigned long foo_0x1000000000080(void) { return 0x1000000000080UL; } + unsigned long foo_0x2000000000080(void) { return 0x2000000000080UL; } + unsigned long foo_0x4000000000080(void) { return 0x4000000000080UL; } + unsigned long foo_0x8000000000080(void) { return 0x8000000000080UL; } + unsigned long foo_0x10000000000080(void) { return 0x10000000000080UL; } + unsigned long foo_0x20000000000080(void) { return 0x20000000000080UL; } + unsigned long foo_0x40000000000080(void) { return 0x40000000000080UL; } + unsigned long foo_0x80000000000080(void) { return 0x80000000000080UL; } + unsigned long foo_0x100000000000080(void) { return 0x100000000000080UL; } + unsigned long foo_0x200000000000080(void) { return 0x200000000000080UL; } + unsigned long foo_0x400000000000080(void) { return 0x400000000000080UL; } + unsigned long foo_0x800000000000080(void) { return 0x800000000000080UL; } + unsigned long foo_0x1000000000000080(void) { return 0x1000000000000080UL; } + unsigned long foo_0x2000000000000080(void) { return 0x2000000000000080UL; } + unsigned long foo_0x4000000000000080(void) { return 0x4000000000000080UL; } + unsigned long foo_0x8000000000000080(void) { return 0x8000000000000080UL; } + unsigned long foo_0x300(void) { return 0x300UL; } + unsigned long foo_0x500(void) { return 0x500UL; } + unsigned long foo_0x900(void) { return 0x900UL; } + unsigned long foo_0x1100(void) { return 0x1100UL; } + unsigned long foo_0x2100(void) { return 0x2100UL; } + unsigned long foo_0x4100(void) { return 0x4100UL; } + unsigned long foo_0x8100(void) { return 0x8100UL; } + unsigned long foo_0x10100(void) { return 0x10100UL; } + unsigned long foo_0x20100(void) { return 0x20100UL; } + unsigned long foo_0x40100(void) { return 0x40100UL; } + unsigned long foo_0x80100(void) { return 0x80100UL; } + unsigned long foo_0x100100(void) { return 0x100100UL; } + unsigned long foo_0x200100(void) { return 0x200100UL; } + unsigned long foo_0x400100(void) { return 0x400100UL; } + unsigned long foo_0x800100(void) { return 0x800100UL; } + unsigned long foo_0x1000100(void) { return 0x1000100UL; } + unsigned long foo_0x2000100(void) { return 0x2000100UL; } + unsigned long foo_0x4000100(void) { return 0x4000100UL; } + unsigned long foo_0x8000100(void) { return 0x8000100UL; } + unsigned long foo_0x10000100(void) { return 0x10000100UL; } + unsigned long foo_0x20000100(void) { return 0x20000100UL; } + unsigned long foo_0x40000100(void) { return 0x40000100UL; } + unsigned long foo_0x80000100(void) { return 0x80000100UL; } + unsigned long foo_0x100000100(void) { return 0x100000100UL; } + unsigned long foo_0x200000100(void) { return 0x200000100UL; } + unsigned long foo_0x400000100(void) { return 0x400000100UL; } + unsigned long foo_0x800000100(void) { return 0x800000100UL; } + unsigned long foo_0x1000000100(void) { return 0x1000000100UL; } + unsigned long foo_0x2000000100(void) { return 0x2000000100UL; } + unsigned long foo_0x4000000100(void) { return 0x4000000100UL; } + unsigned long foo_0x8000000100(void) { return 0x8000000100UL; } + unsigned long foo_0x10000000100(void) { return 0x10000000100UL; } + unsigned long foo_0x20000000100(void) { return 0x20000000100UL; } + unsigned long foo_0x40000000100(void) { return 0x40000000100UL; } + unsigned long foo_0x80000000100(void) { return 0x80000000100UL; } + unsigned long foo_0x100000000100(void) { return 0x100000000100UL; } + unsigned long foo_0x200000000100(void) { return 0x200000000100UL; } + unsigned long foo_0x400000000100(void) { return 0x400000000100UL; } + unsigned long foo_0x800000000100(void) { return 0x800000000100UL; } + unsigned long foo_0x1000000000100(void) { return 0x1000000000100UL; } + unsigned long foo_0x2000000000100(void) { return 0x2000000000100UL; } + unsigned long foo_0x4000000000100(void) { return 0x4000000000100UL; } + unsigned long foo_0x8000000000100(void) { return 0x8000000000100UL; } + unsigned long foo_0x10000000000100(void) { return 0x10000000000100UL; } + unsigned long foo_0x20000000000100(void) { return 0x20000000000100UL; } + unsigned long foo_0x40000000000100(void) { return 0x40000000000100UL; } + unsigned long foo_0x80000000000100(void) { return 0x80000000000100UL; } + unsigned long foo_0x100000000000100(void) { return 0x100000000000100UL; } + unsigned long foo_0x200000000000100(void) { return 0x200000000000100UL; } + unsigned long foo_0x400000000000100(void) { return 0x400000000000100UL; } + unsigned long foo_0x800000000000100(void) { return 0x800000000000100UL; } + unsigned long foo_0x1000000000000100(void) { return 0x1000000000000100UL; } + unsigned long foo_0x2000000000000100(void) { return 0x2000000000000100UL; } + unsigned long foo_0x4000000000000100(void) { return 0x4000000000000100UL; } + unsigned long foo_0x8000000000000100(void) { return 0x8000000000000100UL; } + unsigned long foo_0x600(void) { return 0x600UL; } + unsigned long foo_0xa00(void) { return 0xa00UL; } + unsigned long foo_0x1200(void) { return 0x1200UL; } + unsigned long foo_0x2200(void) { return 0x2200UL; } + unsigned long foo_0x4200(void) { return 0x4200UL; } + unsigned long foo_0x8200(void) { return 0x8200UL; } + unsigned long foo_0x10200(void) { return 0x10200UL; } + unsigned long foo_0x20200(void) { return 0x20200UL; } + unsigned long foo_0x40200(void) { return 0x40200UL; } + unsigned long foo_0x80200(void) { return 0x80200UL; } + unsigned long foo_0x100200(void) { return 0x100200UL; } + unsigned long foo_0x200200(void) { return 0x200200UL; } + unsigned long foo_0x400200(void) { return 0x400200UL; } + unsigned long foo_0x800200(void) { return 0x800200UL; } + unsigned long foo_0x1000200(void) { return 0x1000200UL; } + unsigned long foo_0x2000200(void) { return 0x2000200UL; } + unsigned long foo_0x4000200(void) { return 0x4000200UL; } + unsigned long foo_0x8000200(void) { return 0x8000200UL; } + unsigned long foo_0x10000200(void) { return 0x10000200UL; } + unsigned long foo_0x20000200(void) { return 0x20000200UL; } + unsigned long foo_0x40000200(void) { return 0x40000200UL; } + unsigned long foo_0x80000200(void) { return 0x80000200UL; } + unsigned long foo_0x100000200(void) { return 0x100000200UL; } + unsigned long foo_0x200000200(void) { return 0x200000200UL; } + unsigned long foo_0x400000200(void) { return 0x400000200UL; } + unsigned long foo_0x800000200(void) { return 0x800000200UL; } + unsigned long foo_0x1000000200(void) { return 0x1000000200UL; } + unsigned long foo_0x2000000200(void) { return 0x2000000200UL; } + unsigned long foo_0x4000000200(void) { return 0x4000000200UL; } + unsigned long foo_0x8000000200(void) { return 0x8000000200UL; } + unsigned long foo_0x10000000200(void) { return 0x10000000200UL; } + unsigned long foo_0x20000000200(void) { return 0x20000000200UL; } + unsigned long foo_0x40000000200(void) { return 0x40000000200UL; } + unsigned long foo_0x80000000200(void) { return 0x80000000200UL; } + unsigned long foo_0x100000000200(void) { return 0x100000000200UL; } + unsigned long foo_0x200000000200(void) { return 0x200000000200UL; } + unsigned long foo_0x400000000200(void) { return 0x400000000200UL; } + unsigned long foo_0x800000000200(void) { return 0x800000000200UL; } + unsigned long foo_0x1000000000200(void) { return 0x1000000000200UL; } + unsigned long foo_0x2000000000200(void) { return 0x2000000000200UL; } + unsigned long foo_0x4000000000200(void) { return 0x4000000000200UL; } + unsigned long foo_0x8000000000200(void) { return 0x8000000000200UL; } + unsigned long foo_0x10000000000200(void) { return 0x10000000000200UL; } + unsigned long foo_0x20000000000200(void) { return 0x20000000000200UL; } + unsigned long foo_0x40000000000200(void) { return 0x40000000000200UL; } + unsigned long foo_0x80000000000200(void) { return 0x80000000000200UL; } + unsigned long foo_0x100000000000200(void) { return 0x100000000000200UL; } + unsigned long foo_0x200000000000200(void) { return 0x200000000000200UL; } + unsigned long foo_0x400000000000200(void) { return 0x400000000000200UL; } + unsigned long foo_0x800000000000200(void) { return 0x800000000000200UL; } + unsigned long foo_0x1000000000000200(void) { return 0x1000000000000200UL; } + unsigned long foo_0x2000000000000200(void) { return 0x2000000000000200UL; } + unsigned long foo_0x4000000000000200(void) { return 0x4000000000000200UL; } + unsigned long foo_0x8000000000000200(void) { return 0x8000000000000200UL; } + unsigned long foo_0xc00(void) { return 0xc00UL; } + unsigned long foo_0x1400(void) { return 0x1400UL; } + unsigned long foo_0x2400(void) { return 0x2400UL; } + unsigned long foo_0x4400(void) { return 0x4400UL; } + unsigned long foo_0x8400(void) { return 0x8400UL; } + unsigned long foo_0x10400(void) { return 0x10400UL; } + unsigned long foo_0x20400(void) { return 0x20400UL; } + unsigned long foo_0x40400(void) { return 0x40400UL; } + unsigned long foo_0x80400(void) { return 0x80400UL; } + unsigned long foo_0x100400(void) { return 0x100400UL; } + unsigned long foo_0x200400(void) { return 0x200400UL; } + unsigned long foo_0x400400(void) { return 0x400400UL; } + unsigned long foo_0x800400(void) { return 0x800400UL; } + unsigned long foo_0x1000400(void) { return 0x1000400UL; } + unsigned long foo_0x2000400(void) { return 0x2000400UL; } + unsigned long foo_0x4000400(void) { return 0x4000400UL; } + unsigned long foo_0x8000400(void) { return 0x8000400UL; } + unsigned long foo_0x10000400(void) { return 0x10000400UL; } + unsigned long foo_0x20000400(void) { return 0x20000400UL; } + unsigned long foo_0x40000400(void) { return 0x40000400UL; } + unsigned long foo_0x80000400(void) { return 0x80000400UL; } + unsigned long foo_0x100000400(void) { return 0x100000400UL; } + unsigned long foo_0x200000400(void) { return 0x200000400UL; } + unsigned long foo_0x400000400(void) { return 0x400000400UL; } + unsigned long foo_0x800000400(void) { return 0x800000400UL; } + unsigned long foo_0x1000000400(void) { return 0x1000000400UL; } + unsigned long foo_0x2000000400(void) { return 0x2000000400UL; } + unsigned long foo_0x4000000400(void) { return 0x4000000400UL; } + unsigned long foo_0x8000000400(void) { return 0x8000000400UL; } + unsigned long foo_0x10000000400(void) { return 0x10000000400UL; } + unsigned long foo_0x20000000400(void) { return 0x20000000400UL; } + unsigned long foo_0x40000000400(void) { return 0x40000000400UL; } + unsigned long foo_0x80000000400(void) { return 0x80000000400UL; } + unsigned long foo_0x100000000400(void) { return 0x100000000400UL; } + unsigned long foo_0x200000000400(void) { return 0x200000000400UL; } + unsigned long foo_0x400000000400(void) { return 0x400000000400UL; } + unsigned long foo_0x800000000400(void) { return 0x800000000400UL; } + unsigned long foo_0x1000000000400(void) { return 0x1000000000400UL; } + unsigned long foo_0x2000000000400(void) { return 0x2000000000400UL; } + unsigned long foo_0x4000000000400(void) { return 0x4000000000400UL; } + unsigned long foo_0x8000000000400(void) { return 0x8000000000400UL; } + unsigned long foo_0x10000000000400(void) { return 0x10000000000400UL; } + unsigned long foo_0x20000000000400(void) { return 0x20000000000400UL; } + unsigned long foo_0x40000000000400(void) { return 0x40000000000400UL; } + unsigned long foo_0x80000000000400(void) { return 0x80000000000400UL; } + unsigned long foo_0x100000000000400(void) { return 0x100000000000400UL; } + unsigned long foo_0x200000000000400(void) { return 0x200000000000400UL; } + unsigned long foo_0x400000000000400(void) { return 0x400000000000400UL; } + unsigned long foo_0x800000000000400(void) { return 0x800000000000400UL; } + unsigned long foo_0x1000000000000400(void) { return 0x1000000000000400UL; } + unsigned long foo_0x2000000000000400(void) { return 0x2000000000000400UL; } + unsigned long foo_0x4000000000000400(void) { return 0x4000000000000400UL; } + unsigned long foo_0x8000000000000400(void) { return 0x8000000000000400UL; } + unsigned long foo_0x1800(void) { return 0x1800UL; } + unsigned long foo_0x2800(void) { return 0x2800UL; } + unsigned long foo_0x4800(void) { return 0x4800UL; } + unsigned long foo_0x8800(void) { return 0x8800UL; } + unsigned long foo_0x10800(void) { return 0x10800UL; } + unsigned long foo_0x20800(void) { return 0x20800UL; } + unsigned long foo_0x40800(void) { return 0x40800UL; } + unsigned long foo_0x80800(void) { return 0x80800UL; } + unsigned long foo_0x100800(void) { return 0x100800UL; } + unsigned long foo_0x200800(void) { return 0x200800UL; } + unsigned long foo_0x400800(void) { return 0x400800UL; } + unsigned long foo_0x800800(void) { return 0x800800UL; } + unsigned long foo_0x1000800(void) { return 0x1000800UL; } + unsigned long foo_0x2000800(void) { return 0x2000800UL; } + unsigned long foo_0x4000800(void) { return 0x4000800UL; } + unsigned long foo_0x8000800(void) { return 0x8000800UL; } + unsigned long foo_0x10000800(void) { return 0x10000800UL; } + unsigned long foo_0x20000800(void) { return 0x20000800UL; } + unsigned long foo_0x40000800(void) { return 0x40000800UL; } + unsigned long foo_0x80000800(void) { return 0x80000800UL; } + unsigned long foo_0x100000800(void) { return 0x100000800UL; } + unsigned long foo_0x200000800(void) { return 0x200000800UL; } + unsigned long foo_0x400000800(void) { return 0x400000800UL; } + unsigned long foo_0x800000800(void) { return 0x800000800UL; } + unsigned long foo_0x1000000800(void) { return 0x1000000800UL; } + unsigned long foo_0x2000000800(void) { return 0x2000000800UL; } + unsigned long foo_0x4000000800(void) { return 0x4000000800UL; } + unsigned long foo_0x8000000800(void) { return 0x8000000800UL; } + unsigned long foo_0x10000000800(void) { return 0x10000000800UL; } + unsigned long foo_0x20000000800(void) { return 0x20000000800UL; } + unsigned long foo_0x40000000800(void) { return 0x40000000800UL; } + unsigned long foo_0x80000000800(void) { return 0x80000000800UL; } + unsigned long foo_0x100000000800(void) { return 0x100000000800UL; } + unsigned long foo_0x200000000800(void) { return 0x200000000800UL; } + unsigned long foo_0x400000000800(void) { return 0x400000000800UL; } + unsigned long foo_0x800000000800(void) { return 0x800000000800UL; } + unsigned long foo_0x1000000000800(void) { return 0x1000000000800UL; } + unsigned long foo_0x2000000000800(void) { return 0x2000000000800UL; } + unsigned long foo_0x4000000000800(void) { return 0x4000000000800UL; } + unsigned long foo_0x8000000000800(void) { return 0x8000000000800UL; } + unsigned long foo_0x10000000000800(void) { return 0x10000000000800UL; } + unsigned long foo_0x20000000000800(void) { return 0x20000000000800UL; } + unsigned long foo_0x40000000000800(void) { return 0x40000000000800UL; } + unsigned long foo_0x80000000000800(void) { return 0x80000000000800UL; } + unsigned long foo_0x100000000000800(void) { return 0x100000000000800UL; } + unsigned long foo_0x200000000000800(void) { return 0x200000000000800UL; } + unsigned long foo_0x400000000000800(void) { return 0x400000000000800UL; } + unsigned long foo_0x800000000000800(void) { return 0x800000000000800UL; } + unsigned long foo_0x1000000000000800(void) { return 0x1000000000000800UL; } + unsigned long foo_0x2000000000000800(void) { return 0x2000000000000800UL; } + unsigned long foo_0x4000000000000800(void) { return 0x4000000000000800UL; } + unsigned long foo_0x8000000000000800(void) { return 0x8000000000000800UL; } + unsigned long foo_0x3000(void) { return 0x3000UL; } + unsigned long foo_0x5000(void) { return 0x5000UL; } + unsigned long foo_0x9000(void) { return 0x9000UL; } + unsigned long foo_0x11000(void) { return 0x11000UL; } + unsigned long foo_0x21000(void) { return 0x21000UL; } + unsigned long foo_0x41000(void) { return 0x41000UL; } + unsigned long foo_0x81000(void) { return 0x81000UL; } + unsigned long foo_0x101000(void) { return 0x101000UL; } + unsigned long foo_0x201000(void) { return 0x201000UL; } + unsigned long foo_0x401000(void) { return 0x401000UL; } + unsigned long foo_0x801000(void) { return 0x801000UL; } + unsigned long foo_0x1001000(void) { return 0x1001000UL; } + unsigned long foo_0x2001000(void) { return 0x2001000UL; } + unsigned long foo_0x4001000(void) { return 0x4001000UL; } + unsigned long foo_0x8001000(void) { return 0x8001000UL; } + unsigned long foo_0x10001000(void) { return 0x10001000UL; } + unsigned long foo_0x20001000(void) { return 0x20001000UL; } + unsigned long foo_0x40001000(void) { return 0x40001000UL; } + unsigned long foo_0x80001000(void) { return 0x80001000UL; } + unsigned long foo_0x100001000(void) { return 0x100001000UL; } + unsigned long foo_0x200001000(void) { return 0x200001000UL; } + unsigned long foo_0x400001000(void) { return 0x400001000UL; } + unsigned long foo_0x800001000(void) { return 0x800001000UL; } + unsigned long foo_0x1000001000(void) { return 0x1000001000UL; } + unsigned long foo_0x2000001000(void) { return 0x2000001000UL; } + unsigned long foo_0x4000001000(void) { return 0x4000001000UL; } + unsigned long foo_0x8000001000(void) { return 0x8000001000UL; } + unsigned long foo_0x10000001000(void) { return 0x10000001000UL; } + unsigned long foo_0x20000001000(void) { return 0x20000001000UL; } + unsigned long foo_0x40000001000(void) { return 0x40000001000UL; } + unsigned long foo_0x80000001000(void) { return 0x80000001000UL; } + unsigned long foo_0x100000001000(void) { return 0x100000001000UL; } + unsigned long foo_0x200000001000(void) { return 0x200000001000UL; } + unsigned long foo_0x400000001000(void) { return 0x400000001000UL; } + unsigned long foo_0x800000001000(void) { return 0x800000001000UL; } + unsigned long foo_0x1000000001000(void) { return 0x1000000001000UL; } + unsigned long foo_0x2000000001000(void) { return 0x2000000001000UL; } + unsigned long foo_0x4000000001000(void) { return 0x4000000001000UL; } + unsigned long foo_0x8000000001000(void) { return 0x8000000001000UL; } + unsigned long foo_0x10000000001000(void) { return 0x10000000001000UL; } + unsigned long foo_0x20000000001000(void) { return 0x20000000001000UL; } + unsigned long foo_0x40000000001000(void) { return 0x40000000001000UL; } + unsigned long foo_0x80000000001000(void) { return 0x80000000001000UL; } + unsigned long foo_0x100000000001000(void) { return 0x100000000001000UL; } + unsigned long foo_0x200000000001000(void) { return 0x200000000001000UL; } + unsigned long foo_0x400000000001000(void) { return 0x400000000001000UL; } + unsigned long foo_0x800000000001000(void) { return 0x800000000001000UL; } + unsigned long foo_0x1000000000001000(void) { return 0x1000000000001000UL; } + unsigned long foo_0x2000000000001000(void) { return 0x2000000000001000UL; } + unsigned long foo_0x4000000000001000(void) { return 0x4000000000001000UL; } + unsigned long foo_0x8000000000001000(void) { return 0x8000000000001000UL; } + unsigned long foo_0x6000(void) { return 0x6000UL; } + unsigned long foo_0xa000(void) { return 0xa000UL; } + unsigned long foo_0x12000(void) { return 0x12000UL; } + unsigned long foo_0x22000(void) { return 0x22000UL; } + unsigned long foo_0x42000(void) { return 0x42000UL; } + unsigned long foo_0x82000(void) { return 0x82000UL; } + unsigned long foo_0x102000(void) { return 0x102000UL; } + unsigned long foo_0x202000(void) { return 0x202000UL; } + unsigned long foo_0x402000(void) { return 0x402000UL; } + unsigned long foo_0x802000(void) { return 0x802000UL; } + unsigned long foo_0x1002000(void) { return 0x1002000UL; } + unsigned long foo_0x2002000(void) { return 0x2002000UL; } + unsigned long foo_0x4002000(void) { return 0x4002000UL; } + unsigned long foo_0x8002000(void) { return 0x8002000UL; } + unsigned long foo_0x10002000(void) { return 0x10002000UL; } + unsigned long foo_0x20002000(void) { return 0x20002000UL; } + unsigned long foo_0x40002000(void) { return 0x40002000UL; } + unsigned long foo_0x80002000(void) { return 0x80002000UL; } + unsigned long foo_0x100002000(void) { return 0x100002000UL; } + unsigned long foo_0x200002000(void) { return 0x200002000UL; } + unsigned long foo_0x400002000(void) { return 0x400002000UL; } + unsigned long foo_0x800002000(void) { return 0x800002000UL; } + unsigned long foo_0x1000002000(void) { return 0x1000002000UL; } + unsigned long foo_0x2000002000(void) { return 0x2000002000UL; } + unsigned long foo_0x4000002000(void) { return 0x4000002000UL; } + unsigned long foo_0x8000002000(void) { return 0x8000002000UL; } + unsigned long foo_0x10000002000(void) { return 0x10000002000UL; } + unsigned long foo_0x20000002000(void) { return 0x20000002000UL; } + unsigned long foo_0x40000002000(void) { return 0x40000002000UL; } + unsigned long foo_0x80000002000(void) { return 0x80000002000UL; } + unsigned long foo_0x100000002000(void) { return 0x100000002000UL; } + unsigned long foo_0x200000002000(void) { return 0x200000002000UL; } + unsigned long foo_0x400000002000(void) { return 0x400000002000UL; } + unsigned long foo_0x800000002000(void) { return 0x800000002000UL; } + unsigned long foo_0x1000000002000(void) { return 0x1000000002000UL; } + unsigned long foo_0x2000000002000(void) { return 0x2000000002000UL; } + unsigned long foo_0x4000000002000(void) { return 0x4000000002000UL; } + unsigned long foo_0x8000000002000(void) { return 0x8000000002000UL; } + unsigned long foo_0x10000000002000(void) { return 0x10000000002000UL; } + unsigned long foo_0x20000000002000(void) { return 0x20000000002000UL; } + unsigned long foo_0x40000000002000(void) { return 0x40000000002000UL; } + unsigned long foo_0x80000000002000(void) { return 0x80000000002000UL; } + unsigned long foo_0x100000000002000(void) { return 0x100000000002000UL; } + unsigned long foo_0x200000000002000(void) { return 0x200000000002000UL; } + unsigned long foo_0x400000000002000(void) { return 0x400000000002000UL; } + unsigned long foo_0x800000000002000(void) { return 0x800000000002000UL; } + unsigned long foo_0x1000000000002000(void) { return 0x1000000000002000UL; } + unsigned long foo_0x2000000000002000(void) { return 0x2000000000002000UL; } + unsigned long foo_0x4000000000002000(void) { return 0x4000000000002000UL; } + unsigned long foo_0x8000000000002000(void) { return 0x8000000000002000UL; } + unsigned long foo_0xc000(void) { return 0xc000UL; } + unsigned long foo_0x14000(void) { return 0x14000UL; } + unsigned long foo_0x24000(void) { return 0x24000UL; } + unsigned long foo_0x44000(void) { return 0x44000UL; } + unsigned long foo_0x84000(void) { return 0x84000UL; } + unsigned long foo_0x104000(void) { return 0x104000UL; } + unsigned long foo_0x204000(void) { return 0x204000UL; } + unsigned long foo_0x404000(void) { return 0x404000UL; } + unsigned long foo_0x804000(void) { return 0x804000UL; } + unsigned long foo_0x1004000(void) { return 0x1004000UL; } + unsigned long foo_0x2004000(void) { return 0x2004000UL; } + unsigned long foo_0x4004000(void) { return 0x4004000UL; } + unsigned long foo_0x8004000(void) { return 0x8004000UL; } + unsigned long foo_0x10004000(void) { return 0x10004000UL; } + unsigned long foo_0x20004000(void) { return 0x20004000UL; } + unsigned long foo_0x40004000(void) { return 0x40004000UL; } + unsigned long foo_0x80004000(void) { return 0x80004000UL; } + unsigned long foo_0x100004000(void) { return 0x100004000UL; } + unsigned long foo_0x200004000(void) { return 0x200004000UL; } + unsigned long foo_0x400004000(void) { return 0x400004000UL; } + unsigned long foo_0x800004000(void) { return 0x800004000UL; } + unsigned long foo_0x1000004000(void) { return 0x1000004000UL; } + unsigned long foo_0x2000004000(void) { return 0x2000004000UL; } + unsigned long foo_0x4000004000(void) { return 0x4000004000UL; } + unsigned long foo_0x8000004000(void) { return 0x8000004000UL; } + unsigned long foo_0x10000004000(void) { return 0x10000004000UL; } + unsigned long foo_0x20000004000(void) { return 0x20000004000UL; } + unsigned long foo_0x40000004000(void) { return 0x40000004000UL; } + unsigned long foo_0x80000004000(void) { return 0x80000004000UL; } + unsigned long foo_0x100000004000(void) { return 0x100000004000UL; } + unsigned long foo_0x200000004000(void) { return 0x200000004000UL; } + unsigned long foo_0x400000004000(void) { return 0x400000004000UL; } + unsigned long foo_0x800000004000(void) { return 0x800000004000UL; } + unsigned long foo_0x1000000004000(void) { return 0x1000000004000UL; } + unsigned long foo_0x2000000004000(void) { return 0x2000000004000UL; } + unsigned long foo_0x4000000004000(void) { return 0x4000000004000UL; } + unsigned long foo_0x8000000004000(void) { return 0x8000000004000UL; } + unsigned long foo_0x10000000004000(void) { return 0x10000000004000UL; } + unsigned long foo_0x20000000004000(void) { return 0x20000000004000UL; } + unsigned long foo_0x40000000004000(void) { return 0x40000000004000UL; } + unsigned long foo_0x80000000004000(void) { return 0x80000000004000UL; } + unsigned long foo_0x100000000004000(void) { return 0x100000000004000UL; } + unsigned long foo_0x200000000004000(void) { return 0x200000000004000UL; } + unsigned long foo_0x400000000004000(void) { return 0x400000000004000UL; } + unsigned long foo_0x800000000004000(void) { return 0x800000000004000UL; } + unsigned long foo_0x1000000000004000(void) { return 0x1000000000004000UL; } + unsigned long foo_0x2000000000004000(void) { return 0x2000000000004000UL; } + unsigned long foo_0x4000000000004000(void) { return 0x4000000000004000UL; } + unsigned long foo_0x8000000000004000(void) { return 0x8000000000004000UL; } + unsigned long foo_0x18000(void) { return 0x18000UL; } + unsigned long foo_0x28000(void) { return 0x28000UL; } + unsigned long foo_0x48000(void) { return 0x48000UL; } + unsigned long foo_0x88000(void) { return 0x88000UL; } + unsigned long foo_0x108000(void) { return 0x108000UL; } + unsigned long foo_0x208000(void) { return 0x208000UL; } + unsigned long foo_0x408000(void) { return 0x408000UL; } + unsigned long foo_0x808000(void) { return 0x808000UL; } + unsigned long foo_0x1008000(void) { return 0x1008000UL; } + unsigned long foo_0x2008000(void) { return 0x2008000UL; } + unsigned long foo_0x4008000(void) { return 0x4008000UL; } + unsigned long foo_0x8008000(void) { return 0x8008000UL; } + unsigned long foo_0x10008000(void) { return 0x10008000UL; } + unsigned long foo_0x20008000(void) { return 0x20008000UL; } + unsigned long foo_0x40008000(void) { return 0x40008000UL; } + unsigned long foo_0x80008000(void) { return 0x80008000UL; } + unsigned long foo_0x100008000(void) { return 0x100008000UL; } + unsigned long foo_0x200008000(void) { return 0x200008000UL; } + unsigned long foo_0x400008000(void) { return 0x400008000UL; } + unsigned long foo_0x800008000(void) { return 0x800008000UL; } + unsigned long foo_0x1000008000(void) { return 0x1000008000UL; } + unsigned long foo_0x2000008000(void) { return 0x2000008000UL; } + unsigned long foo_0x4000008000(void) { return 0x4000008000UL; } + unsigned long foo_0x8000008000(void) { return 0x8000008000UL; } + unsigned long foo_0x10000008000(void) { return 0x10000008000UL; } + unsigned long foo_0x20000008000(void) { return 0x20000008000UL; } + unsigned long foo_0x40000008000(void) { return 0x40000008000UL; } + unsigned long foo_0x80000008000(void) { return 0x80000008000UL; } + unsigned long foo_0x100000008000(void) { return 0x100000008000UL; } + unsigned long foo_0x200000008000(void) { return 0x200000008000UL; } + unsigned long foo_0x400000008000(void) { return 0x400000008000UL; } + unsigned long foo_0x800000008000(void) { return 0x800000008000UL; } + unsigned long foo_0x1000000008000(void) { return 0x1000000008000UL; } + unsigned long foo_0x2000000008000(void) { return 0x2000000008000UL; } + unsigned long foo_0x4000000008000(void) { return 0x4000000008000UL; } + unsigned long foo_0x8000000008000(void) { return 0x8000000008000UL; } + unsigned long foo_0x10000000008000(void) { return 0x10000000008000UL; } + unsigned long foo_0x20000000008000(void) { return 0x20000000008000UL; } + unsigned long foo_0x40000000008000(void) { return 0x40000000008000UL; } + unsigned long foo_0x80000000008000(void) { return 0x80000000008000UL; } + unsigned long foo_0x100000000008000(void) { return 0x100000000008000UL; } + unsigned long foo_0x200000000008000(void) { return 0x200000000008000UL; } + unsigned long foo_0x400000000008000(void) { return 0x400000000008000UL; } + unsigned long foo_0x800000000008000(void) { return 0x800000000008000UL; } + unsigned long foo_0x1000000000008000(void) { return 0x1000000000008000UL; } + unsigned long foo_0x2000000000008000(void) { return 0x2000000000008000UL; } + unsigned long foo_0x4000000000008000(void) { return 0x4000000000008000UL; } + unsigned long foo_0x8000000000008000(void) { return 0x8000000000008000UL; } + unsigned long foo_0x30000(void) { return 0x30000UL; } + unsigned long foo_0x50000(void) { return 0x50000UL; } + unsigned long foo_0x90000(void) { return 0x90000UL; } + unsigned long foo_0x110000(void) { return 0x110000UL; } + unsigned long foo_0x210000(void) { return 0x210000UL; } + unsigned long foo_0x410000(void) { return 0x410000UL; } + unsigned long foo_0x810000(void) { return 0x810000UL; } + unsigned long foo_0x1010000(void) { return 0x1010000UL; } + unsigned long foo_0x2010000(void) { return 0x2010000UL; } + unsigned long foo_0x4010000(void) { return 0x4010000UL; } + unsigned long foo_0x8010000(void) { return 0x8010000UL; } + unsigned long foo_0x10010000(void) { return 0x10010000UL; } + unsigned long foo_0x20010000(void) { return 0x20010000UL; } + unsigned long foo_0x40010000(void) { return 0x40010000UL; } + unsigned long foo_0x80010000(void) { return 0x80010000UL; } + unsigned long foo_0x100010000(void) { return 0x100010000UL; } + unsigned long foo_0x200010000(void) { return 0x200010000UL; } + unsigned long foo_0x400010000(void) { return 0x400010000UL; } + unsigned long foo_0x800010000(void) { return 0x800010000UL; } + unsigned long foo_0x1000010000(void) { return 0x1000010000UL; } + unsigned long foo_0x2000010000(void) { return 0x2000010000UL; } + unsigned long foo_0x4000010000(void) { return 0x4000010000UL; } + unsigned long foo_0x8000010000(void) { return 0x8000010000UL; } + unsigned long foo_0x10000010000(void) { return 0x10000010000UL; } + unsigned long foo_0x20000010000(void) { return 0x20000010000UL; } + unsigned long foo_0x40000010000(void) { return 0x40000010000UL; } + unsigned long foo_0x80000010000(void) { return 0x80000010000UL; } + unsigned long foo_0x100000010000(void) { return 0x100000010000UL; } + unsigned long foo_0x200000010000(void) { return 0x200000010000UL; } + unsigned long foo_0x400000010000(void) { return 0x400000010000UL; } + unsigned long foo_0x800000010000(void) { return 0x800000010000UL; } + unsigned long foo_0x1000000010000(void) { return 0x1000000010000UL; } + unsigned long foo_0x2000000010000(void) { return 0x2000000010000UL; } + unsigned long foo_0x4000000010000(void) { return 0x4000000010000UL; } + unsigned long foo_0x8000000010000(void) { return 0x8000000010000UL; } + unsigned long foo_0x10000000010000(void) { return 0x10000000010000UL; } + unsigned long foo_0x20000000010000(void) { return 0x20000000010000UL; } + unsigned long foo_0x40000000010000(void) { return 0x40000000010000UL; } + unsigned long foo_0x80000000010000(void) { return 0x80000000010000UL; } + unsigned long foo_0x100000000010000(void) { return 0x100000000010000UL; } + unsigned long foo_0x200000000010000(void) { return 0x200000000010000UL; } + unsigned long foo_0x400000000010000(void) { return 0x400000000010000UL; } + unsigned long foo_0x800000000010000(void) { return 0x800000000010000UL; } + unsigned long foo_0x1000000000010000(void) { return 0x1000000000010000UL; } + unsigned long foo_0x2000000000010000(void) { return 0x2000000000010000UL; } + unsigned long foo_0x4000000000010000(void) { return 0x4000000000010000UL; } + unsigned long foo_0x8000000000010000(void) { return 0x8000000000010000UL; } + unsigned long foo_0x60000(void) { return 0x60000UL; } + unsigned long foo_0xa0000(void) { return 0xa0000UL; } + unsigned long foo_0x120000(void) { return 0x120000UL; } + unsigned long foo_0x220000(void) { return 0x220000UL; } + unsigned long foo_0x420000(void) { return 0x420000UL; } + unsigned long foo_0x820000(void) { return 0x820000UL; } + unsigned long foo_0x1020000(void) { return 0x1020000UL; } + unsigned long foo_0x2020000(void) { return 0x2020000UL; } + unsigned long foo_0x4020000(void) { return 0x4020000UL; } + unsigned long foo_0x8020000(void) { return 0x8020000UL; } + unsigned long foo_0x10020000(void) { return 0x10020000UL; } + unsigned long foo_0x20020000(void) { return 0x20020000UL; } + unsigned long foo_0x40020000(void) { return 0x40020000UL; } + unsigned long foo_0x80020000(void) { return 0x80020000UL; } + unsigned long foo_0x100020000(void) { return 0x100020000UL; } + unsigned long foo_0x200020000(void) { return 0x200020000UL; } + unsigned long foo_0x400020000(void) { return 0x400020000UL; } + unsigned long foo_0x800020000(void) { return 0x800020000UL; } + unsigned long foo_0x1000020000(void) { return 0x1000020000UL; } + unsigned long foo_0x2000020000(void) { return 0x2000020000UL; } + unsigned long foo_0x4000020000(void) { return 0x4000020000UL; } + unsigned long foo_0x8000020000(void) { return 0x8000020000UL; } + unsigned long foo_0x10000020000(void) { return 0x10000020000UL; } + unsigned long foo_0x20000020000(void) { return 0x20000020000UL; } + unsigned long foo_0x40000020000(void) { return 0x40000020000UL; } + unsigned long foo_0x80000020000(void) { return 0x80000020000UL; } + unsigned long foo_0x100000020000(void) { return 0x100000020000UL; } + unsigned long foo_0x200000020000(void) { return 0x200000020000UL; } + unsigned long foo_0x400000020000(void) { return 0x400000020000UL; } + unsigned long foo_0x800000020000(void) { return 0x800000020000UL; } + unsigned long foo_0x1000000020000(void) { return 0x1000000020000UL; } + unsigned long foo_0x2000000020000(void) { return 0x2000000020000UL; } + unsigned long foo_0x4000000020000(void) { return 0x4000000020000UL; } + unsigned long foo_0x8000000020000(void) { return 0x8000000020000UL; } + unsigned long foo_0x10000000020000(void) { return 0x10000000020000UL; } + unsigned long foo_0x20000000020000(void) { return 0x20000000020000UL; } + unsigned long foo_0x40000000020000(void) { return 0x40000000020000UL; } + unsigned long foo_0x80000000020000(void) { return 0x80000000020000UL; } + unsigned long foo_0x100000000020000(void) { return 0x100000000020000UL; } + unsigned long foo_0x200000000020000(void) { return 0x200000000020000UL; } + unsigned long foo_0x400000000020000(void) { return 0x400000000020000UL; } + unsigned long foo_0x800000000020000(void) { return 0x800000000020000UL; } + unsigned long foo_0x1000000000020000(void) { return 0x1000000000020000UL; } + unsigned long foo_0x2000000000020000(void) { return 0x2000000000020000UL; } + unsigned long foo_0x4000000000020000(void) { return 0x4000000000020000UL; } + unsigned long foo_0x8000000000020000(void) { return 0x8000000000020000UL; } + unsigned long foo_0xc0000(void) { return 0xc0000UL; } + unsigned long foo_0x140000(void) { return 0x140000UL; } + unsigned long foo_0x240000(void) { return 0x240000UL; } + unsigned long foo_0x440000(void) { return 0x440000UL; } + unsigned long foo_0x840000(void) { return 0x840000UL; } + unsigned long foo_0x1040000(void) { return 0x1040000UL; } + unsigned long foo_0x2040000(void) { return 0x2040000UL; } + unsigned long foo_0x4040000(void) { return 0x4040000UL; } + unsigned long foo_0x8040000(void) { return 0x8040000UL; } + unsigned long foo_0x10040000(void) { return 0x10040000UL; } + unsigned long foo_0x20040000(void) { return 0x20040000UL; } + unsigned long foo_0x40040000(void) { return 0x40040000UL; } + unsigned long foo_0x80040000(void) { return 0x80040000UL; } + unsigned long foo_0x100040000(void) { return 0x100040000UL; } + unsigned long foo_0x200040000(void) { return 0x200040000UL; } + unsigned long foo_0x400040000(void) { return 0x400040000UL; } + unsigned long foo_0x800040000(void) { return 0x800040000UL; } + unsigned long foo_0x1000040000(void) { return 0x1000040000UL; } + unsigned long foo_0x2000040000(void) { return 0x2000040000UL; } + unsigned long foo_0x4000040000(void) { return 0x4000040000UL; } + unsigned long foo_0x8000040000(void) { return 0x8000040000UL; } + unsigned long foo_0x10000040000(void) { return 0x10000040000UL; } + unsigned long foo_0x20000040000(void) { return 0x20000040000UL; } + unsigned long foo_0x40000040000(void) { return 0x40000040000UL; } + unsigned long foo_0x80000040000(void) { return 0x80000040000UL; } + unsigned long foo_0x100000040000(void) { return 0x100000040000UL; } + unsigned long foo_0x200000040000(void) { return 0x200000040000UL; } + unsigned long foo_0x400000040000(void) { return 0x400000040000UL; } + unsigned long foo_0x800000040000(void) { return 0x800000040000UL; } + unsigned long foo_0x1000000040000(void) { return 0x1000000040000UL; } + unsigned long foo_0x2000000040000(void) { return 0x2000000040000UL; } + unsigned long foo_0x4000000040000(void) { return 0x4000000040000UL; } + unsigned long foo_0x8000000040000(void) { return 0x8000000040000UL; } + unsigned long foo_0x10000000040000(void) { return 0x10000000040000UL; } + unsigned long foo_0x20000000040000(void) { return 0x20000000040000UL; } + unsigned long foo_0x40000000040000(void) { return 0x40000000040000UL; } + unsigned long foo_0x80000000040000(void) { return 0x80000000040000UL; } + unsigned long foo_0x100000000040000(void) { return 0x100000000040000UL; } + unsigned long foo_0x200000000040000(void) { return 0x200000000040000UL; } + unsigned long foo_0x400000000040000(void) { return 0x400000000040000UL; } + unsigned long foo_0x800000000040000(void) { return 0x800000000040000UL; } + unsigned long foo_0x1000000000040000(void) { return 0x1000000000040000UL; } + unsigned long foo_0x2000000000040000(void) { return 0x2000000000040000UL; } + unsigned long foo_0x4000000000040000(void) { return 0x4000000000040000UL; } + unsigned long foo_0x8000000000040000(void) { return 0x8000000000040000UL; } + unsigned long foo_0x180000(void) { return 0x180000UL; } + unsigned long foo_0x280000(void) { return 0x280000UL; } + unsigned long foo_0x480000(void) { return 0x480000UL; } + unsigned long foo_0x880000(void) { return 0x880000UL; } + unsigned long foo_0x1080000(void) { return 0x1080000UL; } + unsigned long foo_0x2080000(void) { return 0x2080000UL; } + unsigned long foo_0x4080000(void) { return 0x4080000UL; } + unsigned long foo_0x8080000(void) { return 0x8080000UL; } + unsigned long foo_0x10080000(void) { return 0x10080000UL; } + unsigned long foo_0x20080000(void) { return 0x20080000UL; } + unsigned long foo_0x40080000(void) { return 0x40080000UL; } + unsigned long foo_0x80080000(void) { return 0x80080000UL; } + unsigned long foo_0x100080000(void) { return 0x100080000UL; } + unsigned long foo_0x200080000(void) { return 0x200080000UL; } + unsigned long foo_0x400080000(void) { return 0x400080000UL; } + unsigned long foo_0x800080000(void) { return 0x800080000UL; } + unsigned long foo_0x1000080000(void) { return 0x1000080000UL; } + unsigned long foo_0x2000080000(void) { return 0x2000080000UL; } + unsigned long foo_0x4000080000(void) { return 0x4000080000UL; } + unsigned long foo_0x8000080000(void) { return 0x8000080000UL; } + unsigned long foo_0x10000080000(void) { return 0x10000080000UL; } + unsigned long foo_0x20000080000(void) { return 0x20000080000UL; } + unsigned long foo_0x40000080000(void) { return 0x40000080000UL; } + unsigned long foo_0x80000080000(void) { return 0x80000080000UL; } + unsigned long foo_0x100000080000(void) { return 0x100000080000UL; } + unsigned long foo_0x200000080000(void) { return 0x200000080000UL; } + unsigned long foo_0x400000080000(void) { return 0x400000080000UL; } + unsigned long foo_0x800000080000(void) { return 0x800000080000UL; } + unsigned long foo_0x1000000080000(void) { return 0x1000000080000UL; } + unsigned long foo_0x2000000080000(void) { return 0x2000000080000UL; } + unsigned long foo_0x4000000080000(void) { return 0x4000000080000UL; } + unsigned long foo_0x8000000080000(void) { return 0x8000000080000UL; } + unsigned long foo_0x10000000080000(void) { return 0x10000000080000UL; } + unsigned long foo_0x20000000080000(void) { return 0x20000000080000UL; } + unsigned long foo_0x40000000080000(void) { return 0x40000000080000UL; } + unsigned long foo_0x80000000080000(void) { return 0x80000000080000UL; } + unsigned long foo_0x100000000080000(void) { return 0x100000000080000UL; } + unsigned long foo_0x200000000080000(void) { return 0x200000000080000UL; } + unsigned long foo_0x400000000080000(void) { return 0x400000000080000UL; } + unsigned long foo_0x800000000080000(void) { return 0x800000000080000UL; } + unsigned long foo_0x1000000000080000(void) { return 0x1000000000080000UL; } + unsigned long foo_0x2000000000080000(void) { return 0x2000000000080000UL; } + unsigned long foo_0x4000000000080000(void) { return 0x4000000000080000UL; } + unsigned long foo_0x8000000000080000(void) { return 0x8000000000080000UL; } + unsigned long foo_0x300000(void) { return 0x300000UL; } + unsigned long foo_0x500000(void) { return 0x500000UL; } + unsigned long foo_0x900000(void) { return 0x900000UL; } + unsigned long foo_0x1100000(void) { return 0x1100000UL; } + unsigned long foo_0x2100000(void) { return 0x2100000UL; } + unsigned long foo_0x4100000(void) { return 0x4100000UL; } + unsigned long foo_0x8100000(void) { return 0x8100000UL; } + unsigned long foo_0x10100000(void) { return 0x10100000UL; } + unsigned long foo_0x20100000(void) { return 0x20100000UL; } + unsigned long foo_0x40100000(void) { return 0x40100000UL; } + unsigned long foo_0x80100000(void) { return 0x80100000UL; } + unsigned long foo_0x100100000(void) { return 0x100100000UL; } + unsigned long foo_0x200100000(void) { return 0x200100000UL; } + unsigned long foo_0x400100000(void) { return 0x400100000UL; } + unsigned long foo_0x800100000(void) { return 0x800100000UL; } + unsigned long foo_0x1000100000(void) { return 0x1000100000UL; } + unsigned long foo_0x2000100000(void) { return 0x2000100000UL; } + unsigned long foo_0x4000100000(void) { return 0x4000100000UL; } + unsigned long foo_0x8000100000(void) { return 0x8000100000UL; } + unsigned long foo_0x10000100000(void) { return 0x10000100000UL; } + unsigned long foo_0x20000100000(void) { return 0x20000100000UL; } + unsigned long foo_0x40000100000(void) { return 0x40000100000UL; } + unsigned long foo_0x80000100000(void) { return 0x80000100000UL; } + unsigned long foo_0x100000100000(void) { return 0x100000100000UL; } + unsigned long foo_0x200000100000(void) { return 0x200000100000UL; } + unsigned long foo_0x400000100000(void) { return 0x400000100000UL; } + unsigned long foo_0x800000100000(void) { return 0x800000100000UL; } + unsigned long foo_0x1000000100000(void) { return 0x1000000100000UL; } + unsigned long foo_0x2000000100000(void) { return 0x2000000100000UL; } + unsigned long foo_0x4000000100000(void) { return 0x4000000100000UL; } + unsigned long foo_0x8000000100000(void) { return 0x8000000100000UL; } + unsigned long foo_0x10000000100000(void) { return 0x10000000100000UL; } + unsigned long foo_0x20000000100000(void) { return 0x20000000100000UL; } + unsigned long foo_0x40000000100000(void) { return 0x40000000100000UL; } + unsigned long foo_0x80000000100000(void) { return 0x80000000100000UL; } + unsigned long foo_0x100000000100000(void) { return 0x100000000100000UL; } + unsigned long foo_0x200000000100000(void) { return 0x200000000100000UL; } + unsigned long foo_0x400000000100000(void) { return 0x400000000100000UL; } + unsigned long foo_0x800000000100000(void) { return 0x800000000100000UL; } + unsigned long foo_0x1000000000100000(void) { return 0x1000000000100000UL; } + unsigned long foo_0x2000000000100000(void) { return 0x2000000000100000UL; } + unsigned long foo_0x4000000000100000(void) { return 0x4000000000100000UL; } + unsigned long foo_0x8000000000100000(void) { return 0x8000000000100000UL; } + unsigned long foo_0x600000(void) { return 0x600000UL; } + unsigned long foo_0xa00000(void) { return 0xa00000UL; } + unsigned long foo_0x1200000(void) { return 0x1200000UL; } + unsigned long foo_0x2200000(void) { return 0x2200000UL; } + unsigned long foo_0x4200000(void) { return 0x4200000UL; } + unsigned long foo_0x8200000(void) { return 0x8200000UL; } + unsigned long foo_0x10200000(void) { return 0x10200000UL; } + unsigned long foo_0x20200000(void) { return 0x20200000UL; } + unsigned long foo_0x40200000(void) { return 0x40200000UL; } + unsigned long foo_0x80200000(void) { return 0x80200000UL; } + unsigned long foo_0x100200000(void) { return 0x100200000UL; } + unsigned long foo_0x200200000(void) { return 0x200200000UL; } + unsigned long foo_0x400200000(void) { return 0x400200000UL; } + unsigned long foo_0x800200000(void) { return 0x800200000UL; } + unsigned long foo_0x1000200000(void) { return 0x1000200000UL; } + unsigned long foo_0x2000200000(void) { return 0x2000200000UL; } + unsigned long foo_0x4000200000(void) { return 0x4000200000UL; } + unsigned long foo_0x8000200000(void) { return 0x8000200000UL; } + unsigned long foo_0x10000200000(void) { return 0x10000200000UL; } + unsigned long foo_0x20000200000(void) { return 0x20000200000UL; } + unsigned long foo_0x40000200000(void) { return 0x40000200000UL; } + unsigned long foo_0x80000200000(void) { return 0x80000200000UL; } + unsigned long foo_0x100000200000(void) { return 0x100000200000UL; } + unsigned long foo_0x200000200000(void) { return 0x200000200000UL; } + unsigned long foo_0x400000200000(void) { return 0x400000200000UL; } + unsigned long foo_0x800000200000(void) { return 0x800000200000UL; } + unsigned long foo_0x1000000200000(void) { return 0x1000000200000UL; } + unsigned long foo_0x2000000200000(void) { return 0x2000000200000UL; } + unsigned long foo_0x4000000200000(void) { return 0x4000000200000UL; } + unsigned long foo_0x8000000200000(void) { return 0x8000000200000UL; } + unsigned long foo_0x10000000200000(void) { return 0x10000000200000UL; } + unsigned long foo_0x20000000200000(void) { return 0x20000000200000UL; } + unsigned long foo_0x40000000200000(void) { return 0x40000000200000UL; } + unsigned long foo_0x80000000200000(void) { return 0x80000000200000UL; } + unsigned long foo_0x100000000200000(void) { return 0x100000000200000UL; } + unsigned long foo_0x200000000200000(void) { return 0x200000000200000UL; } + unsigned long foo_0x400000000200000(void) { return 0x400000000200000UL; } + unsigned long foo_0x800000000200000(void) { return 0x800000000200000UL; } + unsigned long foo_0x1000000000200000(void) { return 0x1000000000200000UL; } + unsigned long foo_0x2000000000200000(void) { return 0x2000000000200000UL; } + unsigned long foo_0x4000000000200000(void) { return 0x4000000000200000UL; } + unsigned long foo_0x8000000000200000(void) { return 0x8000000000200000UL; } + unsigned long foo_0xc00000(void) { return 0xc00000UL; } + unsigned long foo_0x1400000(void) { return 0x1400000UL; } + unsigned long foo_0x2400000(void) { return 0x2400000UL; } + unsigned long foo_0x4400000(void) { return 0x4400000UL; } + unsigned long foo_0x8400000(void) { return 0x8400000UL; } + unsigned long foo_0x10400000(void) { return 0x10400000UL; } + unsigned long foo_0x20400000(void) { return 0x20400000UL; } + unsigned long foo_0x40400000(void) { return 0x40400000UL; } + unsigned long foo_0x80400000(void) { return 0x80400000UL; } + unsigned long foo_0x100400000(void) { return 0x100400000UL; } + unsigned long foo_0x200400000(void) { return 0x200400000UL; } + unsigned long foo_0x400400000(void) { return 0x400400000UL; } + unsigned long foo_0x800400000(void) { return 0x800400000UL; } + unsigned long foo_0x1000400000(void) { return 0x1000400000UL; } + unsigned long foo_0x2000400000(void) { return 0x2000400000UL; } + unsigned long foo_0x4000400000(void) { return 0x4000400000UL; } + unsigned long foo_0x8000400000(void) { return 0x8000400000UL; } + unsigned long foo_0x10000400000(void) { return 0x10000400000UL; } + unsigned long foo_0x20000400000(void) { return 0x20000400000UL; } + unsigned long foo_0x40000400000(void) { return 0x40000400000UL; } + unsigned long foo_0x80000400000(void) { return 0x80000400000UL; } + unsigned long foo_0x100000400000(void) { return 0x100000400000UL; } + unsigned long foo_0x200000400000(void) { return 0x200000400000UL; } + unsigned long foo_0x400000400000(void) { return 0x400000400000UL; } + unsigned long foo_0x800000400000(void) { return 0x800000400000UL; } + unsigned long foo_0x1000000400000(void) { return 0x1000000400000UL; } + unsigned long foo_0x2000000400000(void) { return 0x2000000400000UL; } + unsigned long foo_0x4000000400000(void) { return 0x4000000400000UL; } + unsigned long foo_0x8000000400000(void) { return 0x8000000400000UL; } + unsigned long foo_0x10000000400000(void) { return 0x10000000400000UL; } + unsigned long foo_0x20000000400000(void) { return 0x20000000400000UL; } + unsigned long foo_0x40000000400000(void) { return 0x40000000400000UL; } + unsigned long foo_0x80000000400000(void) { return 0x80000000400000UL; } + unsigned long foo_0x100000000400000(void) { return 0x100000000400000UL; } + unsigned long foo_0x200000000400000(void) { return 0x200000000400000UL; } + unsigned long foo_0x400000000400000(void) { return 0x400000000400000UL; } + unsigned long foo_0x800000000400000(void) { return 0x800000000400000UL; } + unsigned long foo_0x1000000000400000(void) { return 0x1000000000400000UL; } + unsigned long foo_0x2000000000400000(void) { return 0x2000000000400000UL; } + unsigned long foo_0x4000000000400000(void) { return 0x4000000000400000UL; } + unsigned long foo_0x8000000000400000(void) { return 0x8000000000400000UL; } + unsigned long foo_0x1800000(void) { return 0x1800000UL; } + unsigned long foo_0x2800000(void) { return 0x2800000UL; } + unsigned long foo_0x4800000(void) { return 0x4800000UL; } + unsigned long foo_0x8800000(void) { return 0x8800000UL; } + unsigned long foo_0x10800000(void) { return 0x10800000UL; } + unsigned long foo_0x20800000(void) { return 0x20800000UL; } + unsigned long foo_0x40800000(void) { return 0x40800000UL; } + unsigned long foo_0x80800000(void) { return 0x80800000UL; } + unsigned long foo_0x100800000(void) { return 0x100800000UL; } + unsigned long foo_0x200800000(void) { return 0x200800000UL; } + unsigned long foo_0x400800000(void) { return 0x400800000UL; } + unsigned long foo_0x800800000(void) { return 0x800800000UL; } + unsigned long foo_0x1000800000(void) { return 0x1000800000UL; } + unsigned long foo_0x2000800000(void) { return 0x2000800000UL; } + unsigned long foo_0x4000800000(void) { return 0x4000800000UL; } + unsigned long foo_0x8000800000(void) { return 0x8000800000UL; } + unsigned long foo_0x10000800000(void) { return 0x10000800000UL; } + unsigned long foo_0x20000800000(void) { return 0x20000800000UL; } + unsigned long foo_0x40000800000(void) { return 0x40000800000UL; } + unsigned long foo_0x80000800000(void) { return 0x80000800000UL; } + unsigned long foo_0x100000800000(void) { return 0x100000800000UL; } + unsigned long foo_0x200000800000(void) { return 0x200000800000UL; } + unsigned long foo_0x400000800000(void) { return 0x400000800000UL; } + unsigned long foo_0x800000800000(void) { return 0x800000800000UL; } + unsigned long foo_0x1000000800000(void) { return 0x1000000800000UL; } + unsigned long foo_0x2000000800000(void) { return 0x2000000800000UL; } + unsigned long foo_0x4000000800000(void) { return 0x4000000800000UL; } + unsigned long foo_0x8000000800000(void) { return 0x8000000800000UL; } + unsigned long foo_0x10000000800000(void) { return 0x10000000800000UL; } + unsigned long foo_0x20000000800000(void) { return 0x20000000800000UL; } + unsigned long foo_0x40000000800000(void) { return 0x40000000800000UL; } + unsigned long foo_0x80000000800000(void) { return 0x80000000800000UL; } + unsigned long foo_0x100000000800000(void) { return 0x100000000800000UL; } + unsigned long foo_0x200000000800000(void) { return 0x200000000800000UL; } + unsigned long foo_0x400000000800000(void) { return 0x400000000800000UL; } + unsigned long foo_0x800000000800000(void) { return 0x800000000800000UL; } + unsigned long foo_0x1000000000800000(void) { return 0x1000000000800000UL; } + unsigned long foo_0x2000000000800000(void) { return 0x2000000000800000UL; } + unsigned long foo_0x4000000000800000(void) { return 0x4000000000800000UL; } + unsigned long foo_0x8000000000800000(void) { return 0x8000000000800000UL; } + unsigned long foo_0x3000000(void) { return 0x3000000UL; } + unsigned long foo_0x5000000(void) { return 0x5000000UL; } + unsigned long foo_0x9000000(void) { return 0x9000000UL; } + unsigned long foo_0x11000000(void) { return 0x11000000UL; } + unsigned long foo_0x21000000(void) { return 0x21000000UL; } + unsigned long foo_0x41000000(void) { return 0x41000000UL; } + unsigned long foo_0x81000000(void) { return 0x81000000UL; } + unsigned long foo_0x101000000(void) { return 0x101000000UL; } + unsigned long foo_0x201000000(void) { return 0x201000000UL; } + unsigned long foo_0x401000000(void) { return 0x401000000UL; } + unsigned long foo_0x801000000(void) { return 0x801000000UL; } + unsigned long foo_0x1001000000(void) { return 0x1001000000UL; } + unsigned long foo_0x2001000000(void) { return 0x2001000000UL; } + unsigned long foo_0x4001000000(void) { return 0x4001000000UL; } + unsigned long foo_0x8001000000(void) { return 0x8001000000UL; } + unsigned long foo_0x10001000000(void) { return 0x10001000000UL; } + unsigned long foo_0x20001000000(void) { return 0x20001000000UL; } + unsigned long foo_0x40001000000(void) { return 0x40001000000UL; } + unsigned long foo_0x80001000000(void) { return 0x80001000000UL; } + unsigned long foo_0x100001000000(void) { return 0x100001000000UL; } + unsigned long foo_0x200001000000(void) { return 0x200001000000UL; } + unsigned long foo_0x400001000000(void) { return 0x400001000000UL; } + unsigned long foo_0x800001000000(void) { return 0x800001000000UL; } + unsigned long foo_0x1000001000000(void) { return 0x1000001000000UL; } + unsigned long foo_0x2000001000000(void) { return 0x2000001000000UL; } + unsigned long foo_0x4000001000000(void) { return 0x4000001000000UL; } + unsigned long foo_0x8000001000000(void) { return 0x8000001000000UL; } + unsigned long foo_0x10000001000000(void) { return 0x10000001000000UL; } + unsigned long foo_0x20000001000000(void) { return 0x20000001000000UL; } + unsigned long foo_0x40000001000000(void) { return 0x40000001000000UL; } + unsigned long foo_0x80000001000000(void) { return 0x80000001000000UL; } + unsigned long foo_0x100000001000000(void) { return 0x100000001000000UL; } + unsigned long foo_0x200000001000000(void) { return 0x200000001000000UL; } + unsigned long foo_0x400000001000000(void) { return 0x400000001000000UL; } + unsigned long foo_0x800000001000000(void) { return 0x800000001000000UL; } + unsigned long foo_0x1000000001000000(void) { return 0x1000000001000000UL; } + unsigned long foo_0x2000000001000000(void) { return 0x2000000001000000UL; } + unsigned long foo_0x4000000001000000(void) { return 0x4000000001000000UL; } + unsigned long foo_0x8000000001000000(void) { return 0x8000000001000000UL; } + unsigned long foo_0x6000000(void) { return 0x6000000UL; } + unsigned long foo_0xa000000(void) { return 0xa000000UL; } + unsigned long foo_0x12000000(void) { return 0x12000000UL; } + unsigned long foo_0x22000000(void) { return 0x22000000UL; } + unsigned long foo_0x42000000(void) { return 0x42000000UL; } + unsigned long foo_0x82000000(void) { return 0x82000000UL; } + unsigned long foo_0x102000000(void) { return 0x102000000UL; } + unsigned long foo_0x202000000(void) { return 0x202000000UL; } + unsigned long foo_0x402000000(void) { return 0x402000000UL; } + unsigned long foo_0x802000000(void) { return 0x802000000UL; } + unsigned long foo_0x1002000000(void) { return 0x1002000000UL; } + unsigned long foo_0x2002000000(void) { return 0x2002000000UL; } + unsigned long foo_0x4002000000(void) { return 0x4002000000UL; } + unsigned long foo_0x8002000000(void) { return 0x8002000000UL; } + unsigned long foo_0x10002000000(void) { return 0x10002000000UL; } + unsigned long foo_0x20002000000(void) { return 0x20002000000UL; } + unsigned long foo_0x40002000000(void) { return 0x40002000000UL; } + unsigned long foo_0x80002000000(void) { return 0x80002000000UL; } + unsigned long foo_0x100002000000(void) { return 0x100002000000UL; } + unsigned long foo_0x200002000000(void) { return 0x200002000000UL; } + unsigned long foo_0x400002000000(void) { return 0x400002000000UL; } + unsigned long foo_0x800002000000(void) { return 0x800002000000UL; } + unsigned long foo_0x1000002000000(void) { return 0x1000002000000UL; } + unsigned long foo_0x2000002000000(void) { return 0x2000002000000UL; } + unsigned long foo_0x4000002000000(void) { return 0x4000002000000UL; } + unsigned long foo_0x8000002000000(void) { return 0x8000002000000UL; } + unsigned long foo_0x10000002000000(void) { return 0x10000002000000UL; } + unsigned long foo_0x20000002000000(void) { return 0x20000002000000UL; } + unsigned long foo_0x40000002000000(void) { return 0x40000002000000UL; } + unsigned long foo_0x80000002000000(void) { return 0x80000002000000UL; } + unsigned long foo_0x100000002000000(void) { return 0x100000002000000UL; } + unsigned long foo_0x200000002000000(void) { return 0x200000002000000UL; } + unsigned long foo_0x400000002000000(void) { return 0x400000002000000UL; } + unsigned long foo_0x800000002000000(void) { return 0x800000002000000UL; } + unsigned long foo_0x1000000002000000(void) { return 0x1000000002000000UL; } + unsigned long foo_0x2000000002000000(void) { return 0x2000000002000000UL; } + unsigned long foo_0x4000000002000000(void) { return 0x4000000002000000UL; } + unsigned long foo_0x8000000002000000(void) { return 0x8000000002000000UL; } + unsigned long foo_0xc000000(void) { return 0xc000000UL; } + unsigned long foo_0x14000000(void) { return 0x14000000UL; } + unsigned long foo_0x24000000(void) { return 0x24000000UL; } + unsigned long foo_0x44000000(void) { return 0x44000000UL; } + unsigned long foo_0x84000000(void) { return 0x84000000UL; } + unsigned long foo_0x104000000(void) { return 0x104000000UL; } + unsigned long foo_0x204000000(void) { return 0x204000000UL; } + unsigned long foo_0x404000000(void) { return 0x404000000UL; } + unsigned long foo_0x804000000(void) { return 0x804000000UL; } + unsigned long foo_0x1004000000(void) { return 0x1004000000UL; } + unsigned long foo_0x2004000000(void) { return 0x2004000000UL; } + unsigned long foo_0x4004000000(void) { return 0x4004000000UL; } + unsigned long foo_0x8004000000(void) { return 0x8004000000UL; } + unsigned long foo_0x10004000000(void) { return 0x10004000000UL; } + unsigned long foo_0x20004000000(void) { return 0x20004000000UL; } + unsigned long foo_0x40004000000(void) { return 0x40004000000UL; } + unsigned long foo_0x80004000000(void) { return 0x80004000000UL; } + unsigned long foo_0x100004000000(void) { return 0x100004000000UL; } + unsigned long foo_0x200004000000(void) { return 0x200004000000UL; } + unsigned long foo_0x400004000000(void) { return 0x400004000000UL; } + unsigned long foo_0x800004000000(void) { return 0x800004000000UL; } + unsigned long foo_0x1000004000000(void) { return 0x1000004000000UL; } + unsigned long foo_0x2000004000000(void) { return 0x2000004000000UL; } + unsigned long foo_0x4000004000000(void) { return 0x4000004000000UL; } + unsigned long foo_0x8000004000000(void) { return 0x8000004000000UL; } + unsigned long foo_0x10000004000000(void) { return 0x10000004000000UL; } + unsigned long foo_0x20000004000000(void) { return 0x20000004000000UL; } + unsigned long foo_0x40000004000000(void) { return 0x40000004000000UL; } + unsigned long foo_0x80000004000000(void) { return 0x80000004000000UL; } + unsigned long foo_0x100000004000000(void) { return 0x100000004000000UL; } + unsigned long foo_0x200000004000000(void) { return 0x200000004000000UL; } + unsigned long foo_0x400000004000000(void) { return 0x400000004000000UL; } + unsigned long foo_0x800000004000000(void) { return 0x800000004000000UL; } + unsigned long foo_0x1000000004000000(void) { return 0x1000000004000000UL; } + unsigned long foo_0x2000000004000000(void) { return 0x2000000004000000UL; } + unsigned long foo_0x4000000004000000(void) { return 0x4000000004000000UL; } + unsigned long foo_0x8000000004000000(void) { return 0x8000000004000000UL; } + unsigned long foo_0x18000000(void) { return 0x18000000UL; } + unsigned long foo_0x28000000(void) { return 0x28000000UL; } + unsigned long foo_0x48000000(void) { return 0x48000000UL; } + unsigned long foo_0x88000000(void) { return 0x88000000UL; } + unsigned long foo_0x108000000(void) { return 0x108000000UL; } + unsigned long foo_0x208000000(void) { return 0x208000000UL; } + unsigned long foo_0x408000000(void) { return 0x408000000UL; } + unsigned long foo_0x808000000(void) { return 0x808000000UL; } + unsigned long foo_0x1008000000(void) { return 0x1008000000UL; } + unsigned long foo_0x2008000000(void) { return 0x2008000000UL; } + unsigned long foo_0x4008000000(void) { return 0x4008000000UL; } + unsigned long foo_0x8008000000(void) { return 0x8008000000UL; } + unsigned long foo_0x10008000000(void) { return 0x10008000000UL; } + unsigned long foo_0x20008000000(void) { return 0x20008000000UL; } + unsigned long foo_0x40008000000(void) { return 0x40008000000UL; } + unsigned long foo_0x80008000000(void) { return 0x80008000000UL; } + unsigned long foo_0x100008000000(void) { return 0x100008000000UL; } + unsigned long foo_0x200008000000(void) { return 0x200008000000UL; } + unsigned long foo_0x400008000000(void) { return 0x400008000000UL; } + unsigned long foo_0x800008000000(void) { return 0x800008000000UL; } + unsigned long foo_0x1000008000000(void) { return 0x1000008000000UL; } + unsigned long foo_0x2000008000000(void) { return 0x2000008000000UL; } + unsigned long foo_0x4000008000000(void) { return 0x4000008000000UL; } + unsigned long foo_0x8000008000000(void) { return 0x8000008000000UL; } + unsigned long foo_0x10000008000000(void) { return 0x10000008000000UL; } + unsigned long foo_0x20000008000000(void) { return 0x20000008000000UL; } + unsigned long foo_0x40000008000000(void) { return 0x40000008000000UL; } + unsigned long foo_0x80000008000000(void) { return 0x80000008000000UL; } + unsigned long foo_0x100000008000000(void) { return 0x100000008000000UL; } + unsigned long foo_0x200000008000000(void) { return 0x200000008000000UL; } + unsigned long foo_0x400000008000000(void) { return 0x400000008000000UL; } + unsigned long foo_0x800000008000000(void) { return 0x800000008000000UL; } + unsigned long foo_0x1000000008000000(void) { return 0x1000000008000000UL; } + unsigned long foo_0x2000000008000000(void) { return 0x2000000008000000UL; } + unsigned long foo_0x4000000008000000(void) { return 0x4000000008000000UL; } + unsigned long foo_0x8000000008000000(void) { return 0x8000000008000000UL; } + unsigned long foo_0x30000000(void) { return 0x30000000UL; } + unsigned long foo_0x50000000(void) { return 0x50000000UL; } + unsigned long foo_0x90000000(void) { return 0x90000000UL; } + unsigned long foo_0x110000000(void) { return 0x110000000UL; } + unsigned long foo_0x210000000(void) { return 0x210000000UL; } + unsigned long foo_0x410000000(void) { return 0x410000000UL; } + unsigned long foo_0x810000000(void) { return 0x810000000UL; } + unsigned long foo_0x1010000000(void) { return 0x1010000000UL; } + unsigned long foo_0x2010000000(void) { return 0x2010000000UL; } + unsigned long foo_0x4010000000(void) { return 0x4010000000UL; } + unsigned long foo_0x8010000000(void) { return 0x8010000000UL; } + unsigned long foo_0x10010000000(void) { return 0x10010000000UL; } + unsigned long foo_0x20010000000(void) { return 0x20010000000UL; } + unsigned long foo_0x40010000000(void) { return 0x40010000000UL; } + unsigned long foo_0x80010000000(void) { return 0x80010000000UL; } + unsigned long foo_0x100010000000(void) { return 0x100010000000UL; } + unsigned long foo_0x200010000000(void) { return 0x200010000000UL; } + unsigned long foo_0x400010000000(void) { return 0x400010000000UL; } + unsigned long foo_0x800010000000(void) { return 0x800010000000UL; } + unsigned long foo_0x1000010000000(void) { return 0x1000010000000UL; } + unsigned long foo_0x2000010000000(void) { return 0x2000010000000UL; } + unsigned long foo_0x4000010000000(void) { return 0x4000010000000UL; } + unsigned long foo_0x8000010000000(void) { return 0x8000010000000UL; } + unsigned long foo_0x10000010000000(void) { return 0x10000010000000UL; } + unsigned long foo_0x20000010000000(void) { return 0x20000010000000UL; } + unsigned long foo_0x40000010000000(void) { return 0x40000010000000UL; } + unsigned long foo_0x80000010000000(void) { return 0x80000010000000UL; } + unsigned long foo_0x100000010000000(void) { return 0x100000010000000UL; } + unsigned long foo_0x200000010000000(void) { return 0x200000010000000UL; } + unsigned long foo_0x400000010000000(void) { return 0x400000010000000UL; } + unsigned long foo_0x800000010000000(void) { return 0x800000010000000UL; } + unsigned long foo_0x1000000010000000(void) { return 0x1000000010000000UL; } + unsigned long foo_0x2000000010000000(void) { return 0x2000000010000000UL; } + unsigned long foo_0x4000000010000000(void) { return 0x4000000010000000UL; } + unsigned long foo_0x8000000010000000(void) { return 0x8000000010000000UL; } + unsigned long foo_0x60000000(void) { return 0x60000000UL; } + unsigned long foo_0xa0000000(void) { return 0xa0000000UL; } + unsigned long foo_0x120000000(void) { return 0x120000000UL; } + unsigned long foo_0x220000000(void) { return 0x220000000UL; } + unsigned long foo_0x420000000(void) { return 0x420000000UL; } + unsigned long foo_0x820000000(void) { return 0x820000000UL; } + unsigned long foo_0x1020000000(void) { return 0x1020000000UL; } + unsigned long foo_0x2020000000(void) { return 0x2020000000UL; } + unsigned long foo_0x4020000000(void) { return 0x4020000000UL; } + unsigned long foo_0x8020000000(void) { return 0x8020000000UL; } + unsigned long foo_0x10020000000(void) { return 0x10020000000UL; } + unsigned long foo_0x20020000000(void) { return 0x20020000000UL; } + unsigned long foo_0x40020000000(void) { return 0x40020000000UL; } + unsigned long foo_0x80020000000(void) { return 0x80020000000UL; } + unsigned long foo_0x100020000000(void) { return 0x100020000000UL; } + unsigned long foo_0x200020000000(void) { return 0x200020000000UL; } + unsigned long foo_0x400020000000(void) { return 0x400020000000UL; } + unsigned long foo_0x800020000000(void) { return 0x800020000000UL; } + unsigned long foo_0x1000020000000(void) { return 0x1000020000000UL; } + unsigned long foo_0x2000020000000(void) { return 0x2000020000000UL; } + unsigned long foo_0x4000020000000(void) { return 0x4000020000000UL; } + unsigned long foo_0x8000020000000(void) { return 0x8000020000000UL; } + unsigned long foo_0x10000020000000(void) { return 0x10000020000000UL; } + unsigned long foo_0x20000020000000(void) { return 0x20000020000000UL; } + unsigned long foo_0x40000020000000(void) { return 0x40000020000000UL; } + unsigned long foo_0x80000020000000(void) { return 0x80000020000000UL; } + unsigned long foo_0x100000020000000(void) { return 0x100000020000000UL; } + unsigned long foo_0x200000020000000(void) { return 0x200000020000000UL; } + unsigned long foo_0x400000020000000(void) { return 0x400000020000000UL; } + unsigned long foo_0x800000020000000(void) { return 0x800000020000000UL; } + unsigned long foo_0x1000000020000000(void) { return 0x1000000020000000UL; } + unsigned long foo_0x2000000020000000(void) { return 0x2000000020000000UL; } + unsigned long foo_0x4000000020000000(void) { return 0x4000000020000000UL; } + unsigned long foo_0x8000000020000000(void) { return 0x8000000020000000UL; } + unsigned long foo_0xc0000000(void) { return 0xc0000000UL; } + unsigned long foo_0x140000000(void) { return 0x140000000UL; } + unsigned long foo_0x240000000(void) { return 0x240000000UL; } + unsigned long foo_0x440000000(void) { return 0x440000000UL; } + unsigned long foo_0x840000000(void) { return 0x840000000UL; } + unsigned long foo_0x1040000000(void) { return 0x1040000000UL; } + unsigned long foo_0x2040000000(void) { return 0x2040000000UL; } + unsigned long foo_0x4040000000(void) { return 0x4040000000UL; } + unsigned long foo_0x8040000000(void) { return 0x8040000000UL; } + unsigned long foo_0x10040000000(void) { return 0x10040000000UL; } + unsigned long foo_0x20040000000(void) { return 0x20040000000UL; } + unsigned long foo_0x40040000000(void) { return 0x40040000000UL; } + unsigned long foo_0x80040000000(void) { return 0x80040000000UL; } + unsigned long foo_0x100040000000(void) { return 0x100040000000UL; } + unsigned long foo_0x200040000000(void) { return 0x200040000000UL; } + unsigned long foo_0x400040000000(void) { return 0x400040000000UL; } + unsigned long foo_0x800040000000(void) { return 0x800040000000UL; } + unsigned long foo_0x1000040000000(void) { return 0x1000040000000UL; } + unsigned long foo_0x2000040000000(void) { return 0x2000040000000UL; } + unsigned long foo_0x4000040000000(void) { return 0x4000040000000UL; } + unsigned long foo_0x8000040000000(void) { return 0x8000040000000UL; } + unsigned long foo_0x10000040000000(void) { return 0x10000040000000UL; } + unsigned long foo_0x20000040000000(void) { return 0x20000040000000UL; } + unsigned long foo_0x40000040000000(void) { return 0x40000040000000UL; } + unsigned long foo_0x80000040000000(void) { return 0x80000040000000UL; } + unsigned long foo_0x100000040000000(void) { return 0x100000040000000UL; } + unsigned long foo_0x200000040000000(void) { return 0x200000040000000UL; } + unsigned long foo_0x400000040000000(void) { return 0x400000040000000UL; } + unsigned long foo_0x800000040000000(void) { return 0x800000040000000UL; } + unsigned long foo_0x1000000040000000(void) { return 0x1000000040000000UL; } + unsigned long foo_0x2000000040000000(void) { return 0x2000000040000000UL; } + unsigned long foo_0x4000000040000000(void) { return 0x4000000040000000UL; } + unsigned long foo_0x8000000040000000(void) { return 0x8000000040000000UL; } + unsigned long foo_0x180000000(void) { return 0x180000000UL; } + unsigned long foo_0x280000000(void) { return 0x280000000UL; } + unsigned long foo_0x480000000(void) { return 0x480000000UL; } + unsigned long foo_0x880000000(void) { return 0x880000000UL; } + unsigned long foo_0x1080000000(void) { return 0x1080000000UL; } + unsigned long foo_0x2080000000(void) { return 0x2080000000UL; } + unsigned long foo_0x4080000000(void) { return 0x4080000000UL; } + unsigned long foo_0x8080000000(void) { return 0x8080000000UL; } + unsigned long foo_0x10080000000(void) { return 0x10080000000UL; } + unsigned long foo_0x20080000000(void) { return 0x20080000000UL; } + unsigned long foo_0x40080000000(void) { return 0x40080000000UL; } + unsigned long foo_0x80080000000(void) { return 0x80080000000UL; } + unsigned long foo_0x100080000000(void) { return 0x100080000000UL; } + unsigned long foo_0x200080000000(void) { return 0x200080000000UL; } + unsigned long foo_0x400080000000(void) { return 0x400080000000UL; } + unsigned long foo_0x800080000000(void) { return 0x800080000000UL; } + unsigned long foo_0x1000080000000(void) { return 0x1000080000000UL; } + unsigned long foo_0x2000080000000(void) { return 0x2000080000000UL; } + unsigned long foo_0x4000080000000(void) { return 0x4000080000000UL; } + unsigned long foo_0x8000080000000(void) { return 0x8000080000000UL; } + unsigned long foo_0x10000080000000(void) { return 0x10000080000000UL; } + unsigned long foo_0x20000080000000(void) { return 0x20000080000000UL; } + unsigned long foo_0x40000080000000(void) { return 0x40000080000000UL; } + unsigned long foo_0x80000080000000(void) { return 0x80000080000000UL; } + unsigned long foo_0x100000080000000(void) { return 0x100000080000000UL; } + unsigned long foo_0x200000080000000(void) { return 0x200000080000000UL; } + unsigned long foo_0x400000080000000(void) { return 0x400000080000000UL; } + unsigned long foo_0x800000080000000(void) { return 0x800000080000000UL; } + unsigned long foo_0x1000000080000000(void) { return 0x1000000080000000UL; } + unsigned long foo_0x2000000080000000(void) { return 0x2000000080000000UL; } + unsigned long foo_0x4000000080000000(void) { return 0x4000000080000000UL; } + unsigned long foo_0x8000000080000000(void) { return 0x8000000080000000UL; } + unsigned long foo_0x300000000(void) { return 0x300000000UL; } + unsigned long foo_0x500000000(void) { return 0x500000000UL; } + unsigned long foo_0x900000000(void) { return 0x900000000UL; } + unsigned long foo_0x1100000000(void) { return 0x1100000000UL; } + unsigned long foo_0x2100000000(void) { return 0x2100000000UL; } + unsigned long foo_0x4100000000(void) { return 0x4100000000UL; } + unsigned long foo_0x8100000000(void) { return 0x8100000000UL; } + unsigned long foo_0x10100000000(void) { return 0x10100000000UL; } + unsigned long foo_0x20100000000(void) { return 0x20100000000UL; } + unsigned long foo_0x40100000000(void) { return 0x40100000000UL; } + unsigned long foo_0x80100000000(void) { return 0x80100000000UL; } + unsigned long foo_0x100100000000(void) { return 0x100100000000UL; } + unsigned long foo_0x200100000000(void) { return 0x200100000000UL; } + unsigned long foo_0x400100000000(void) { return 0x400100000000UL; } + unsigned long foo_0x800100000000(void) { return 0x800100000000UL; } + unsigned long foo_0x1000100000000(void) { return 0x1000100000000UL; } + unsigned long foo_0x2000100000000(void) { return 0x2000100000000UL; } + unsigned long foo_0x4000100000000(void) { return 0x4000100000000UL; } + unsigned long foo_0x8000100000000(void) { return 0x8000100000000UL; } + unsigned long foo_0x10000100000000(void) { return 0x10000100000000UL; } + unsigned long foo_0x20000100000000(void) { return 0x20000100000000UL; } + unsigned long foo_0x40000100000000(void) { return 0x40000100000000UL; } + unsigned long foo_0x80000100000000(void) { return 0x80000100000000UL; } + unsigned long foo_0x100000100000000(void) { return 0x100000100000000UL; } + unsigned long foo_0x200000100000000(void) { return 0x200000100000000UL; } + unsigned long foo_0x400000100000000(void) { return 0x400000100000000UL; } + unsigned long foo_0x800000100000000(void) { return 0x800000100000000UL; } + unsigned long foo_0x1000000100000000(void) { return 0x1000000100000000UL; } + unsigned long foo_0x2000000100000000(void) { return 0x2000000100000000UL; } + unsigned long foo_0x4000000100000000(void) { return 0x4000000100000000UL; } + unsigned long foo_0x8000000100000000(void) { return 0x8000000100000000UL; } + unsigned long foo_0x600000000(void) { return 0x600000000UL; } + unsigned long foo_0xa00000000(void) { return 0xa00000000UL; } + unsigned long foo_0x1200000000(void) { return 0x1200000000UL; } + unsigned long foo_0x2200000000(void) { return 0x2200000000UL; } + unsigned long foo_0x4200000000(void) { return 0x4200000000UL; } + unsigned long foo_0x8200000000(void) { return 0x8200000000UL; } + unsigned long foo_0x10200000000(void) { return 0x10200000000UL; } + unsigned long foo_0x20200000000(void) { return 0x20200000000UL; } + unsigned long foo_0x40200000000(void) { return 0x40200000000UL; } + unsigned long foo_0x80200000000(void) { return 0x80200000000UL; } + unsigned long foo_0x100200000000(void) { return 0x100200000000UL; } + unsigned long foo_0x200200000000(void) { return 0x200200000000UL; } + unsigned long foo_0x400200000000(void) { return 0x400200000000UL; } + unsigned long foo_0x800200000000(void) { return 0x800200000000UL; } + unsigned long foo_0x1000200000000(void) { return 0x1000200000000UL; } + unsigned long foo_0x2000200000000(void) { return 0x2000200000000UL; } + unsigned long foo_0x4000200000000(void) { return 0x4000200000000UL; } + unsigned long foo_0x8000200000000(void) { return 0x8000200000000UL; } + unsigned long foo_0x10000200000000(void) { return 0x10000200000000UL; } + unsigned long foo_0x20000200000000(void) { return 0x20000200000000UL; } + unsigned long foo_0x40000200000000(void) { return 0x40000200000000UL; } + unsigned long foo_0x80000200000000(void) { return 0x80000200000000UL; } + unsigned long foo_0x100000200000000(void) { return 0x100000200000000UL; } + unsigned long foo_0x200000200000000(void) { return 0x200000200000000UL; } + unsigned long foo_0x400000200000000(void) { return 0x400000200000000UL; } + unsigned long foo_0x800000200000000(void) { return 0x800000200000000UL; } + unsigned long foo_0x1000000200000000(void) { return 0x1000000200000000UL; } + unsigned long foo_0x2000000200000000(void) { return 0x2000000200000000UL; } + unsigned long foo_0x4000000200000000(void) { return 0x4000000200000000UL; } + unsigned long foo_0x8000000200000000(void) { return 0x8000000200000000UL; } + unsigned long foo_0xc00000000(void) { return 0xc00000000UL; } + unsigned long foo_0x1400000000(void) { return 0x1400000000UL; } + unsigned long foo_0x2400000000(void) { return 0x2400000000UL; } + unsigned long foo_0x4400000000(void) { return 0x4400000000UL; } + unsigned long foo_0x8400000000(void) { return 0x8400000000UL; } + unsigned long foo_0x10400000000(void) { return 0x10400000000UL; } + unsigned long foo_0x20400000000(void) { return 0x20400000000UL; } + unsigned long foo_0x40400000000(void) { return 0x40400000000UL; } + unsigned long foo_0x80400000000(void) { return 0x80400000000UL; } + unsigned long foo_0x100400000000(void) { return 0x100400000000UL; } + unsigned long foo_0x200400000000(void) { return 0x200400000000UL; } + unsigned long foo_0x400400000000(void) { return 0x400400000000UL; } + unsigned long foo_0x800400000000(void) { return 0x800400000000UL; } + unsigned long foo_0x1000400000000(void) { return 0x1000400000000UL; } + unsigned long foo_0x2000400000000(void) { return 0x2000400000000UL; } + unsigned long foo_0x4000400000000(void) { return 0x4000400000000UL; } + unsigned long foo_0x8000400000000(void) { return 0x8000400000000UL; } + unsigned long foo_0x10000400000000(void) { return 0x10000400000000UL; } + unsigned long foo_0x20000400000000(void) { return 0x20000400000000UL; } + unsigned long foo_0x40000400000000(void) { return 0x40000400000000UL; } + unsigned long foo_0x80000400000000(void) { return 0x80000400000000UL; } + unsigned long foo_0x100000400000000(void) { return 0x100000400000000UL; } + unsigned long foo_0x200000400000000(void) { return 0x200000400000000UL; } + unsigned long foo_0x400000400000000(void) { return 0x400000400000000UL; } + unsigned long foo_0x800000400000000(void) { return 0x800000400000000UL; } + unsigned long foo_0x1000000400000000(void) { return 0x1000000400000000UL; } + unsigned long foo_0x2000000400000000(void) { return 0x2000000400000000UL; } + unsigned long foo_0x4000000400000000(void) { return 0x4000000400000000UL; } + unsigned long foo_0x8000000400000000(void) { return 0x8000000400000000UL; } + unsigned long foo_0x1800000000(void) { return 0x1800000000UL; } + unsigned long foo_0x2800000000(void) { return 0x2800000000UL; } + unsigned long foo_0x4800000000(void) { return 0x4800000000UL; } + unsigned long foo_0x8800000000(void) { return 0x8800000000UL; } + unsigned long foo_0x10800000000(void) { return 0x10800000000UL; } + unsigned long foo_0x20800000000(void) { return 0x20800000000UL; } + unsigned long foo_0x40800000000(void) { return 0x40800000000UL; } + unsigned long foo_0x80800000000(void) { return 0x80800000000UL; } + unsigned long foo_0x100800000000(void) { return 0x100800000000UL; } + unsigned long foo_0x200800000000(void) { return 0x200800000000UL; } + unsigned long foo_0x400800000000(void) { return 0x400800000000UL; } + unsigned long foo_0x800800000000(void) { return 0x800800000000UL; } + unsigned long foo_0x1000800000000(void) { return 0x1000800000000UL; } + unsigned long foo_0x2000800000000(void) { return 0x2000800000000UL; } + unsigned long foo_0x4000800000000(void) { return 0x4000800000000UL; } + unsigned long foo_0x8000800000000(void) { return 0x8000800000000UL; } + unsigned long foo_0x10000800000000(void) { return 0x10000800000000UL; } + unsigned long foo_0x20000800000000(void) { return 0x20000800000000UL; } + unsigned long foo_0x40000800000000(void) { return 0x40000800000000UL; } + unsigned long foo_0x80000800000000(void) { return 0x80000800000000UL; } + unsigned long foo_0x100000800000000(void) { return 0x100000800000000UL; } + unsigned long foo_0x200000800000000(void) { return 0x200000800000000UL; } + unsigned long foo_0x400000800000000(void) { return 0x400000800000000UL; } + unsigned long foo_0x800000800000000(void) { return 0x800000800000000UL; } + unsigned long foo_0x1000000800000000(void) { return 0x1000000800000000UL; } + unsigned long foo_0x2000000800000000(void) { return 0x2000000800000000UL; } + unsigned long foo_0x4000000800000000(void) { return 0x4000000800000000UL; } + unsigned long foo_0x8000000800000000(void) { return 0x8000000800000000UL; } + unsigned long foo_0x3000000000(void) { return 0x3000000000UL; } + unsigned long foo_0x5000000000(void) { return 0x5000000000UL; } + unsigned long foo_0x9000000000(void) { return 0x9000000000UL; } + unsigned long foo_0x11000000000(void) { return 0x11000000000UL; } + unsigned long foo_0x21000000000(void) { return 0x21000000000UL; } + unsigned long foo_0x41000000000(void) { return 0x41000000000UL; } + unsigned long foo_0x81000000000(void) { return 0x81000000000UL; } + unsigned long foo_0x101000000000(void) { return 0x101000000000UL; } + unsigned long foo_0x201000000000(void) { return 0x201000000000UL; } + unsigned long foo_0x401000000000(void) { return 0x401000000000UL; } + unsigned long foo_0x801000000000(void) { return 0x801000000000UL; } + unsigned long foo_0x1001000000000(void) { return 0x1001000000000UL; } + unsigned long foo_0x2001000000000(void) { return 0x2001000000000UL; } + unsigned long foo_0x4001000000000(void) { return 0x4001000000000UL; } + unsigned long foo_0x8001000000000(void) { return 0x8001000000000UL; } + unsigned long foo_0x10001000000000(void) { return 0x10001000000000UL; } + unsigned long foo_0x20001000000000(void) { return 0x20001000000000UL; } + unsigned long foo_0x40001000000000(void) { return 0x40001000000000UL; } + unsigned long foo_0x80001000000000(void) { return 0x80001000000000UL; } + unsigned long foo_0x100001000000000(void) { return 0x100001000000000UL; } + unsigned long foo_0x200001000000000(void) { return 0x200001000000000UL; } + unsigned long foo_0x400001000000000(void) { return 0x400001000000000UL; } + unsigned long foo_0x800001000000000(void) { return 0x800001000000000UL; } + unsigned long foo_0x1000001000000000(void) { return 0x1000001000000000UL; } + unsigned long foo_0x2000001000000000(void) { return 0x2000001000000000UL; } + unsigned long foo_0x4000001000000000(void) { return 0x4000001000000000UL; } + unsigned long foo_0x8000001000000000(void) { return 0x8000001000000000UL; } + unsigned long foo_0x6000000000(void) { return 0x6000000000UL; } + unsigned long foo_0xa000000000(void) { return 0xa000000000UL; } + unsigned long foo_0x12000000000(void) { return 0x12000000000UL; } + unsigned long foo_0x22000000000(void) { return 0x22000000000UL; } + unsigned long foo_0x42000000000(void) { return 0x42000000000UL; } + unsigned long foo_0x82000000000(void) { return 0x82000000000UL; } + unsigned long foo_0x102000000000(void) { return 0x102000000000UL; } + unsigned long foo_0x202000000000(void) { return 0x202000000000UL; } + unsigned long foo_0x402000000000(void) { return 0x402000000000UL; } + unsigned long foo_0x802000000000(void) { return 0x802000000000UL; } + unsigned long foo_0x1002000000000(void) { return 0x1002000000000UL; } + unsigned long foo_0x2002000000000(void) { return 0x2002000000000UL; } + unsigned long foo_0x4002000000000(void) { return 0x4002000000000UL; } + unsigned long foo_0x8002000000000(void) { return 0x8002000000000UL; } + unsigned long foo_0x10002000000000(void) { return 0x10002000000000UL; } + unsigned long foo_0x20002000000000(void) { return 0x20002000000000UL; } + unsigned long foo_0x40002000000000(void) { return 0x40002000000000UL; } + unsigned long foo_0x80002000000000(void) { return 0x80002000000000UL; } + unsigned long foo_0x100002000000000(void) { return 0x100002000000000UL; } + unsigned long foo_0x200002000000000(void) { return 0x200002000000000UL; } + unsigned long foo_0x400002000000000(void) { return 0x400002000000000UL; } + unsigned long foo_0x800002000000000(void) { return 0x800002000000000UL; } + unsigned long foo_0x1000002000000000(void) { return 0x1000002000000000UL; } + unsigned long foo_0x2000002000000000(void) { return 0x2000002000000000UL; } + unsigned long foo_0x4000002000000000(void) { return 0x4000002000000000UL; } + unsigned long foo_0x8000002000000000(void) { return 0x8000002000000000UL; } + unsigned long foo_0xc000000000(void) { return 0xc000000000UL; } + unsigned long foo_0x14000000000(void) { return 0x14000000000UL; } + unsigned long foo_0x24000000000(void) { return 0x24000000000UL; } + unsigned long foo_0x44000000000(void) { return 0x44000000000UL; } + unsigned long foo_0x84000000000(void) { return 0x84000000000UL; } + unsigned long foo_0x104000000000(void) { return 0x104000000000UL; } + unsigned long foo_0x204000000000(void) { return 0x204000000000UL; } + unsigned long foo_0x404000000000(void) { return 0x404000000000UL; } + unsigned long foo_0x804000000000(void) { return 0x804000000000UL; } + unsigned long foo_0x1004000000000(void) { return 0x1004000000000UL; } + unsigned long foo_0x2004000000000(void) { return 0x2004000000000UL; } + unsigned long foo_0x4004000000000(void) { return 0x4004000000000UL; } + unsigned long foo_0x8004000000000(void) { return 0x8004000000000UL; } + unsigned long foo_0x10004000000000(void) { return 0x10004000000000UL; } + unsigned long foo_0x20004000000000(void) { return 0x20004000000000UL; } + unsigned long foo_0x40004000000000(void) { return 0x40004000000000UL; } + unsigned long foo_0x80004000000000(void) { return 0x80004000000000UL; } + unsigned long foo_0x100004000000000(void) { return 0x100004000000000UL; } + unsigned long foo_0x200004000000000(void) { return 0x200004000000000UL; } + unsigned long foo_0x400004000000000(void) { return 0x400004000000000UL; } + unsigned long foo_0x800004000000000(void) { return 0x800004000000000UL; } + unsigned long foo_0x1000004000000000(void) { return 0x1000004000000000UL; } + unsigned long foo_0x2000004000000000(void) { return 0x2000004000000000UL; } + unsigned long foo_0x4000004000000000(void) { return 0x4000004000000000UL; } + unsigned long foo_0x8000004000000000(void) { return 0x8000004000000000UL; } + unsigned long foo_0x18000000000(void) { return 0x18000000000UL; } + unsigned long foo_0x28000000000(void) { return 0x28000000000UL; } + unsigned long foo_0x48000000000(void) { return 0x48000000000UL; } + unsigned long foo_0x88000000000(void) { return 0x88000000000UL; } + unsigned long foo_0x108000000000(void) { return 0x108000000000UL; } + unsigned long foo_0x208000000000(void) { return 0x208000000000UL; } + unsigned long foo_0x408000000000(void) { return 0x408000000000UL; } + unsigned long foo_0x808000000000(void) { return 0x808000000000UL; } + unsigned long foo_0x1008000000000(void) { return 0x1008000000000UL; } + unsigned long foo_0x2008000000000(void) { return 0x2008000000000UL; } + unsigned long foo_0x4008000000000(void) { return 0x4008000000000UL; } + unsigned long foo_0x8008000000000(void) { return 0x8008000000000UL; } + unsigned long foo_0x10008000000000(void) { return 0x10008000000000UL; } + unsigned long foo_0x20008000000000(void) { return 0x20008000000000UL; } + unsigned long foo_0x40008000000000(void) { return 0x40008000000000UL; } + unsigned long foo_0x80008000000000(void) { return 0x80008000000000UL; } + unsigned long foo_0x100008000000000(void) { return 0x100008000000000UL; } + unsigned long foo_0x200008000000000(void) { return 0x200008000000000UL; } + unsigned long foo_0x400008000000000(void) { return 0x400008000000000UL; } + unsigned long foo_0x800008000000000(void) { return 0x800008000000000UL; } + unsigned long foo_0x1000008000000000(void) { return 0x1000008000000000UL; } + unsigned long foo_0x2000008000000000(void) { return 0x2000008000000000UL; } + unsigned long foo_0x4000008000000000(void) { return 0x4000008000000000UL; } + unsigned long foo_0x8000008000000000(void) { return 0x8000008000000000UL; } + unsigned long foo_0x30000000000(void) { return 0x30000000000UL; } + unsigned long foo_0x50000000000(void) { return 0x50000000000UL; } + unsigned long foo_0x90000000000(void) { return 0x90000000000UL; } + unsigned long foo_0x110000000000(void) { return 0x110000000000UL; } + unsigned long foo_0x210000000000(void) { return 0x210000000000UL; } + unsigned long foo_0x410000000000(void) { return 0x410000000000UL; } + unsigned long foo_0x810000000000(void) { return 0x810000000000UL; } + unsigned long foo_0x1010000000000(void) { return 0x1010000000000UL; } + unsigned long foo_0x2010000000000(void) { return 0x2010000000000UL; } + unsigned long foo_0x4010000000000(void) { return 0x4010000000000UL; } + unsigned long foo_0x8010000000000(void) { return 0x8010000000000UL; } + unsigned long foo_0x10010000000000(void) { return 0x10010000000000UL; } + unsigned long foo_0x20010000000000(void) { return 0x20010000000000UL; } + unsigned long foo_0x40010000000000(void) { return 0x40010000000000UL; } + unsigned long foo_0x80010000000000(void) { return 0x80010000000000UL; } + unsigned long foo_0x100010000000000(void) { return 0x100010000000000UL; } + unsigned long foo_0x200010000000000(void) { return 0x200010000000000UL; } + unsigned long foo_0x400010000000000(void) { return 0x400010000000000UL; } + unsigned long foo_0x800010000000000(void) { return 0x800010000000000UL; } + unsigned long foo_0x1000010000000000(void) { return 0x1000010000000000UL; } + unsigned long foo_0x2000010000000000(void) { return 0x2000010000000000UL; } + unsigned long foo_0x4000010000000000(void) { return 0x4000010000000000UL; } + unsigned long foo_0x8000010000000000(void) { return 0x8000010000000000UL; } + unsigned long foo_0x60000000000(void) { return 0x60000000000UL; } + unsigned long foo_0xa0000000000(void) { return 0xa0000000000UL; } + unsigned long foo_0x120000000000(void) { return 0x120000000000UL; } + unsigned long foo_0x220000000000(void) { return 0x220000000000UL; } + unsigned long foo_0x420000000000(void) { return 0x420000000000UL; } + unsigned long foo_0x820000000000(void) { return 0x820000000000UL; } + unsigned long foo_0x1020000000000(void) { return 0x1020000000000UL; } + unsigned long foo_0x2020000000000(void) { return 0x2020000000000UL; } + unsigned long foo_0x4020000000000(void) { return 0x4020000000000UL; } + unsigned long foo_0x8020000000000(void) { return 0x8020000000000UL; } + unsigned long foo_0x10020000000000(void) { return 0x10020000000000UL; } + unsigned long foo_0x20020000000000(void) { return 0x20020000000000UL; } + unsigned long foo_0x40020000000000(void) { return 0x40020000000000UL; } + unsigned long foo_0x80020000000000(void) { return 0x80020000000000UL; } + unsigned long foo_0x100020000000000(void) { return 0x100020000000000UL; } + unsigned long foo_0x200020000000000(void) { return 0x200020000000000UL; } + unsigned long foo_0x400020000000000(void) { return 0x400020000000000UL; } + unsigned long foo_0x800020000000000(void) { return 0x800020000000000UL; } + unsigned long foo_0x1000020000000000(void) { return 0x1000020000000000UL; } + unsigned long foo_0x2000020000000000(void) { return 0x2000020000000000UL; } + unsigned long foo_0x4000020000000000(void) { return 0x4000020000000000UL; } + unsigned long foo_0x8000020000000000(void) { return 0x8000020000000000UL; } + unsigned long foo_0xc0000000000(void) { return 0xc0000000000UL; } + unsigned long foo_0x140000000000(void) { return 0x140000000000UL; } + unsigned long foo_0x240000000000(void) { return 0x240000000000UL; } + unsigned long foo_0x440000000000(void) { return 0x440000000000UL; } + unsigned long foo_0x840000000000(void) { return 0x840000000000UL; } + unsigned long foo_0x1040000000000(void) { return 0x1040000000000UL; } + unsigned long foo_0x2040000000000(void) { return 0x2040000000000UL; } + unsigned long foo_0x4040000000000(void) { return 0x4040000000000UL; } + unsigned long foo_0x8040000000000(void) { return 0x8040000000000UL; } + unsigned long foo_0x10040000000000(void) { return 0x10040000000000UL; } + unsigned long foo_0x20040000000000(void) { return 0x20040000000000UL; } + unsigned long foo_0x40040000000000(void) { return 0x40040000000000UL; } + unsigned long foo_0x80040000000000(void) { return 0x80040000000000UL; } + unsigned long foo_0x100040000000000(void) { return 0x100040000000000UL; } + unsigned long foo_0x200040000000000(void) { return 0x200040000000000UL; } + unsigned long foo_0x400040000000000(void) { return 0x400040000000000UL; } + unsigned long foo_0x800040000000000(void) { return 0x800040000000000UL; } + unsigned long foo_0x1000040000000000(void) { return 0x1000040000000000UL; } + unsigned long foo_0x2000040000000000(void) { return 0x2000040000000000UL; } + unsigned long foo_0x4000040000000000(void) { return 0x4000040000000000UL; } + unsigned long foo_0x8000040000000000(void) { return 0x8000040000000000UL; } + unsigned long foo_0x180000000000(void) { return 0x180000000000UL; } + unsigned long foo_0x280000000000(void) { return 0x280000000000UL; } + unsigned long foo_0x480000000000(void) { return 0x480000000000UL; } + unsigned long foo_0x880000000000(void) { return 0x880000000000UL; } + unsigned long foo_0x1080000000000(void) { return 0x1080000000000UL; } + unsigned long foo_0x2080000000000(void) { return 0x2080000000000UL; } + unsigned long foo_0x4080000000000(void) { return 0x4080000000000UL; } + unsigned long foo_0x8080000000000(void) { return 0x8080000000000UL; } + unsigned long foo_0x10080000000000(void) { return 0x10080000000000UL; } + unsigned long foo_0x20080000000000(void) { return 0x20080000000000UL; } + unsigned long foo_0x40080000000000(void) { return 0x40080000000000UL; } + unsigned long foo_0x80080000000000(void) { return 0x80080000000000UL; } + unsigned long foo_0x100080000000000(void) { return 0x100080000000000UL; } + unsigned long foo_0x200080000000000(void) { return 0x200080000000000UL; } + unsigned long foo_0x400080000000000(void) { return 0x400080000000000UL; } + unsigned long foo_0x800080000000000(void) { return 0x800080000000000UL; } + unsigned long foo_0x1000080000000000(void) { return 0x1000080000000000UL; } + unsigned long foo_0x2000080000000000(void) { return 0x2000080000000000UL; } + unsigned long foo_0x4000080000000000(void) { return 0x4000080000000000UL; } + unsigned long foo_0x8000080000000000(void) { return 0x8000080000000000UL; } + unsigned long foo_0x300000000000(void) { return 0x300000000000UL; } + unsigned long foo_0x500000000000(void) { return 0x500000000000UL; } + unsigned long foo_0x900000000000(void) { return 0x900000000000UL; } + unsigned long foo_0x1100000000000(void) { return 0x1100000000000UL; } + unsigned long foo_0x2100000000000(void) { return 0x2100000000000UL; } + unsigned long foo_0x4100000000000(void) { return 0x4100000000000UL; } + unsigned long foo_0x8100000000000(void) { return 0x8100000000000UL; } + unsigned long foo_0x10100000000000(void) { return 0x10100000000000UL; } + unsigned long foo_0x20100000000000(void) { return 0x20100000000000UL; } + unsigned long foo_0x40100000000000(void) { return 0x40100000000000UL; } + unsigned long foo_0x80100000000000(void) { return 0x80100000000000UL; } + unsigned long foo_0x100100000000000(void) { return 0x100100000000000UL; } + unsigned long foo_0x200100000000000(void) { return 0x200100000000000UL; } + unsigned long foo_0x400100000000000(void) { return 0x400100000000000UL; } + unsigned long foo_0x800100000000000(void) { return 0x800100000000000UL; } + unsigned long foo_0x1000100000000000(void) { return 0x1000100000000000UL; } + unsigned long foo_0x2000100000000000(void) { return 0x2000100000000000UL; } + unsigned long foo_0x4000100000000000(void) { return 0x4000100000000000UL; } + unsigned long foo_0x8000100000000000(void) { return 0x8000100000000000UL; } + unsigned long foo_0x600000000000(void) { return 0x600000000000UL; } + unsigned long foo_0xa00000000000(void) { return 0xa00000000000UL; } + unsigned long foo_0x1200000000000(void) { return 0x1200000000000UL; } + unsigned long foo_0x2200000000000(void) { return 0x2200000000000UL; } + unsigned long foo_0x4200000000000(void) { return 0x4200000000000UL; } + unsigned long foo_0x8200000000000(void) { return 0x8200000000000UL; } + unsigned long foo_0x10200000000000(void) { return 0x10200000000000UL; } + unsigned long foo_0x20200000000000(void) { return 0x20200000000000UL; } + unsigned long foo_0x40200000000000(void) { return 0x40200000000000UL; } + unsigned long foo_0x80200000000000(void) { return 0x80200000000000UL; } + unsigned long foo_0x100200000000000(void) { return 0x100200000000000UL; } + unsigned long foo_0x200200000000000(void) { return 0x200200000000000UL; } + unsigned long foo_0x400200000000000(void) { return 0x400200000000000UL; } + unsigned long foo_0x800200000000000(void) { return 0x800200000000000UL; } + unsigned long foo_0x1000200000000000(void) { return 0x1000200000000000UL; } + unsigned long foo_0x2000200000000000(void) { return 0x2000200000000000UL; } + unsigned long foo_0x4000200000000000(void) { return 0x4000200000000000UL; } + unsigned long foo_0x8000200000000000(void) { return 0x8000200000000000UL; } + unsigned long foo_0xc00000000000(void) { return 0xc00000000000UL; } + unsigned long foo_0x1400000000000(void) { return 0x1400000000000UL; } + unsigned long foo_0x2400000000000(void) { return 0x2400000000000UL; } + unsigned long foo_0x4400000000000(void) { return 0x4400000000000UL; } + unsigned long foo_0x8400000000000(void) { return 0x8400000000000UL; } + unsigned long foo_0x10400000000000(void) { return 0x10400000000000UL; } + unsigned long foo_0x20400000000000(void) { return 0x20400000000000UL; } + unsigned long foo_0x40400000000000(void) { return 0x40400000000000UL; } + unsigned long foo_0x80400000000000(void) { return 0x80400000000000UL; } + unsigned long foo_0x100400000000000(void) { return 0x100400000000000UL; } + unsigned long foo_0x200400000000000(void) { return 0x200400000000000UL; } + unsigned long foo_0x400400000000000(void) { return 0x400400000000000UL; } + unsigned long foo_0x800400000000000(void) { return 0x800400000000000UL; } + unsigned long foo_0x1000400000000000(void) { return 0x1000400000000000UL; } + unsigned long foo_0x2000400000000000(void) { return 0x2000400000000000UL; } + unsigned long foo_0x4000400000000000(void) { return 0x4000400000000000UL; } + unsigned long foo_0x8000400000000000(void) { return 0x8000400000000000UL; } + unsigned long foo_0x1800000000000(void) { return 0x1800000000000UL; } + unsigned long foo_0x2800000000000(void) { return 0x2800000000000UL; } + unsigned long foo_0x4800000000000(void) { return 0x4800000000000UL; } + unsigned long foo_0x8800000000000(void) { return 0x8800000000000UL; } + unsigned long foo_0x10800000000000(void) { return 0x10800000000000UL; } + unsigned long foo_0x20800000000000(void) { return 0x20800000000000UL; } + unsigned long foo_0x40800000000000(void) { return 0x40800000000000UL; } + unsigned long foo_0x80800000000000(void) { return 0x80800000000000UL; } + unsigned long foo_0x100800000000000(void) { return 0x100800000000000UL; } + unsigned long foo_0x200800000000000(void) { return 0x200800000000000UL; } + unsigned long foo_0x400800000000000(void) { return 0x400800000000000UL; } + unsigned long foo_0x800800000000000(void) { return 0x800800000000000UL; } + unsigned long foo_0x1000800000000000(void) { return 0x1000800000000000UL; } + unsigned long foo_0x2000800000000000(void) { return 0x2000800000000000UL; } + unsigned long foo_0x4000800000000000(void) { return 0x4000800000000000UL; } + unsigned long foo_0x8000800000000000(void) { return 0x8000800000000000UL; } + unsigned long foo_0x3000000000000(void) { return 0x3000000000000UL; } + unsigned long foo_0x5000000000000(void) { return 0x5000000000000UL; } + unsigned long foo_0x9000000000000(void) { return 0x9000000000000UL; } + unsigned long foo_0x11000000000000(void) { return 0x11000000000000UL; } + unsigned long foo_0x21000000000000(void) { return 0x21000000000000UL; } + unsigned long foo_0x41000000000000(void) { return 0x41000000000000UL; } + unsigned long foo_0x81000000000000(void) { return 0x81000000000000UL; } + unsigned long foo_0x101000000000000(void) { return 0x101000000000000UL; } + unsigned long foo_0x201000000000000(void) { return 0x201000000000000UL; } + unsigned long foo_0x401000000000000(void) { return 0x401000000000000UL; } + unsigned long foo_0x801000000000000(void) { return 0x801000000000000UL; } + unsigned long foo_0x1001000000000000(void) { return 0x1001000000000000UL; } + unsigned long foo_0x2001000000000000(void) { return 0x2001000000000000UL; } + unsigned long foo_0x4001000000000000(void) { return 0x4001000000000000UL; } + unsigned long foo_0x8001000000000000(void) { return 0x8001000000000000UL; } + unsigned long foo_0x6000000000000(void) { return 0x6000000000000UL; } + unsigned long foo_0xa000000000000(void) { return 0xa000000000000UL; } + unsigned long foo_0x12000000000000(void) { return 0x12000000000000UL; } + unsigned long foo_0x22000000000000(void) { return 0x22000000000000UL; } + unsigned long foo_0x42000000000000(void) { return 0x42000000000000UL; } + unsigned long foo_0x82000000000000(void) { return 0x82000000000000UL; } + unsigned long foo_0x102000000000000(void) { return 0x102000000000000UL; } + unsigned long foo_0x202000000000000(void) { return 0x202000000000000UL; } + unsigned long foo_0x402000000000000(void) { return 0x402000000000000UL; } + unsigned long foo_0x802000000000000(void) { return 0x802000000000000UL; } + unsigned long foo_0x1002000000000000(void) { return 0x1002000000000000UL; } + unsigned long foo_0x2002000000000000(void) { return 0x2002000000000000UL; } + unsigned long foo_0x4002000000000000(void) { return 0x4002000000000000UL; } + unsigned long foo_0x8002000000000000(void) { return 0x8002000000000000UL; } + unsigned long foo_0xc000000000000(void) { return 0xc000000000000UL; } + unsigned long foo_0x14000000000000(void) { return 0x14000000000000UL; } + unsigned long foo_0x24000000000000(void) { return 0x24000000000000UL; } + unsigned long foo_0x44000000000000(void) { return 0x44000000000000UL; } + unsigned long foo_0x84000000000000(void) { return 0x84000000000000UL; } + unsigned long foo_0x104000000000000(void) { return 0x104000000000000UL; } + unsigned long foo_0x204000000000000(void) { return 0x204000000000000UL; } + unsigned long foo_0x404000000000000(void) { return 0x404000000000000UL; } + unsigned long foo_0x804000000000000(void) { return 0x804000000000000UL; } + unsigned long foo_0x1004000000000000(void) { return 0x1004000000000000UL; } + unsigned long foo_0x2004000000000000(void) { return 0x2004000000000000UL; } + unsigned long foo_0x4004000000000000(void) { return 0x4004000000000000UL; } + unsigned long foo_0x8004000000000000(void) { return 0x8004000000000000UL; } + unsigned long foo_0x18000000000000(void) { return 0x18000000000000UL; } + unsigned long foo_0x28000000000000(void) { return 0x28000000000000UL; } + unsigned long foo_0x48000000000000(void) { return 0x48000000000000UL; } + unsigned long foo_0x88000000000000(void) { return 0x88000000000000UL; } + unsigned long foo_0x108000000000000(void) { return 0x108000000000000UL; } + unsigned long foo_0x208000000000000(void) { return 0x208000000000000UL; } + unsigned long foo_0x408000000000000(void) { return 0x408000000000000UL; } + unsigned long foo_0x808000000000000(void) { return 0x808000000000000UL; } + unsigned long foo_0x1008000000000000(void) { return 0x1008000000000000UL; } + unsigned long foo_0x2008000000000000(void) { return 0x2008000000000000UL; } + unsigned long foo_0x4008000000000000(void) { return 0x4008000000000000UL; } + unsigned long foo_0x8008000000000000(void) { return 0x8008000000000000UL; } + unsigned long foo_0x30000000000000(void) { return 0x30000000000000UL; } + unsigned long foo_0x50000000000000(void) { return 0x50000000000000UL; } + unsigned long foo_0x90000000000000(void) { return 0x90000000000000UL; } + unsigned long foo_0x110000000000000(void) { return 0x110000000000000UL; } + unsigned long foo_0x210000000000000(void) { return 0x210000000000000UL; } + unsigned long foo_0x410000000000000(void) { return 0x410000000000000UL; } + unsigned long foo_0x810000000000000(void) { return 0x810000000000000UL; } + unsigned long foo_0x1010000000000000(void) { return 0x1010000000000000UL; } + unsigned long foo_0x2010000000000000(void) { return 0x2010000000000000UL; } + unsigned long foo_0x4010000000000000(void) { return 0x4010000000000000UL; } + unsigned long foo_0x8010000000000000(void) { return 0x8010000000000000UL; } + unsigned long foo_0x60000000000000(void) { return 0x60000000000000UL; } + unsigned long foo_0xa0000000000000(void) { return 0xa0000000000000UL; } + unsigned long foo_0x120000000000000(void) { return 0x120000000000000UL; } + unsigned long foo_0x220000000000000(void) { return 0x220000000000000UL; } + unsigned long foo_0x420000000000000(void) { return 0x420000000000000UL; } + unsigned long foo_0x820000000000000(void) { return 0x820000000000000UL; } + unsigned long foo_0x1020000000000000(void) { return 0x1020000000000000UL; } + unsigned long foo_0x2020000000000000(void) { return 0x2020000000000000UL; } + unsigned long foo_0x4020000000000000(void) { return 0x4020000000000000UL; } + unsigned long foo_0x8020000000000000(void) { return 0x8020000000000000UL; } + unsigned long foo_0xc0000000000000(void) { return 0xc0000000000000UL; } + unsigned long foo_0x140000000000000(void) { return 0x140000000000000UL; } + unsigned long foo_0x240000000000000(void) { return 0x240000000000000UL; } + unsigned long foo_0x440000000000000(void) { return 0x440000000000000UL; } + unsigned long foo_0x840000000000000(void) { return 0x840000000000000UL; } + unsigned long foo_0x1040000000000000(void) { return 0x1040000000000000UL; } + unsigned long foo_0x2040000000000000(void) { return 0x2040000000000000UL; } + unsigned long foo_0x4040000000000000(void) { return 0x4040000000000000UL; } + unsigned long foo_0x8040000000000000(void) { return 0x8040000000000000UL; } + unsigned long foo_0x180000000000000(void) { return 0x180000000000000UL; } + unsigned long foo_0x280000000000000(void) { return 0x280000000000000UL; } + unsigned long foo_0x480000000000000(void) { return 0x480000000000000UL; } + unsigned long foo_0x880000000000000(void) { return 0x880000000000000UL; } + unsigned long foo_0x1080000000000000(void) { return 0x1080000000000000UL; } + unsigned long foo_0x2080000000000000(void) { return 0x2080000000000000UL; } + unsigned long foo_0x4080000000000000(void) { return 0x4080000000000000UL; } + unsigned long foo_0x8080000000000000(void) { return 0x8080000000000000UL; } + unsigned long foo_0x300000000000000(void) { return 0x300000000000000UL; } + unsigned long foo_0x500000000000000(void) { return 0x500000000000000UL; } + unsigned long foo_0x900000000000000(void) { return 0x900000000000000UL; } + unsigned long foo_0x1100000000000000(void) { return 0x1100000000000000UL; } + unsigned long foo_0x2100000000000000(void) { return 0x2100000000000000UL; } + unsigned long foo_0x4100000000000000(void) { return 0x4100000000000000UL; } + unsigned long foo_0x8100000000000000(void) { return 0x8100000000000000UL; } + unsigned long foo_0x600000000000000(void) { return 0x600000000000000UL; } + unsigned long foo_0xa00000000000000(void) { return 0xa00000000000000UL; } + unsigned long foo_0x1200000000000000(void) { return 0x1200000000000000UL; } + unsigned long foo_0x2200000000000000(void) { return 0x2200000000000000UL; } + unsigned long foo_0x4200000000000000(void) { return 0x4200000000000000UL; } + unsigned long foo_0x8200000000000000(void) { return 0x8200000000000000UL; } + unsigned long foo_0xc00000000000000(void) { return 0xc00000000000000UL; } + unsigned long foo_0x1400000000000000(void) { return 0x1400000000000000UL; } + unsigned long foo_0x2400000000000000(void) { return 0x2400000000000000UL; } + unsigned long foo_0x4400000000000000(void) { return 0x4400000000000000UL; } + unsigned long foo_0x8400000000000000(void) { return 0x8400000000000000UL; } + unsigned long foo_0x1800000000000000(void) { return 0x1800000000000000UL; } + unsigned long foo_0x2800000000000000(void) { return 0x2800000000000000UL; } + unsigned long foo_0x4800000000000000(void) { return 0x4800000000000000UL; } + unsigned long foo_0x8800000000000000(void) { return 0x8800000000000000UL; } + unsigned long foo_0x3000000000000000(void) { return 0x3000000000000000UL; } + unsigned long foo_0x5000000000000000(void) { return 0x5000000000000000UL; } + unsigned long foo_0x9000000000000000(void) { return 0x9000000000000000UL; } + unsigned long foo_0x6000000000000000(void) { return 0x6000000000000000UL; } + unsigned long foo_0xa000000000000000(void) { return 0xa000000000000000UL; } + unsigned long foo_0xc000000000000000(void) { return 0xc000000000000000UL; } + + diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-10.c b/gcc/testsuite/gcc.target/riscv/synthesis-10.c new file mode 100644 index 00000000000..0838ec9af47 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-10.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbkb_zbs" } */ + +/* Rather than test for a specific synthesis of all these constants or + having thousands of tests each testing one variant, we just test the + total number of instructions. + + This isn't expected to change much and any change is worthy of a look. */ +/* { dg-final { scan-assembler-times "\\t(add|addi|bseti|li|pack|ret|sh1add|sh2add|sh3add|slli|srli|xori)" 10 } } */ + +unsigned long foo_0x1425000028000000(void) { return 0x1425000028000000UL; } +unsigned long foo_0xf057f2def857f2de(void) { return 0xf057f2def857f2deUL; } diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-2.c b/gcc/testsuite/gcc.target/riscv/synthesis-2.c new file mode 100644 index 00000000000..b88374da3c4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-2.c @@ -0,0 +1,1481 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs" } */ + +/* All these cases have the same form. lui+slli.uw+addi +/* { dg-final { scan-assembler-times "\\tadd" 367 } } */ +/* { dg-final { scan-assembler-times "\\tslli.uw" 367 } } */ +/* { dg-final { scan-assembler-times "\\taddi" 367 } } */ + +unsigned long foo_0x480008001(void) { + return 0x480008001UL; +} + +unsigned long foo_0x1080020001(void) { + return 0x1080020001UL; +} + +unsigned long foo_0x2800040001(void) { + return 0x2800040001UL; +} + +unsigned long foo_0x4080080001(void) { + return 0x4080080001UL; +} + +unsigned long foo_0x6000080001(void) { + return 0x6000080001UL; +} + +unsigned long foo_0x8800100001(void) { + return 0x8800100001UL; +} + +unsigned long foo_0x10080200001(void) { + return 0x10080200001UL; +} + +unsigned long foo_0x12000200001(void) { + return 0x12000200001UL; +} + +unsigned long foo_0x20800400001(void) { + return 0x20800400001UL; +} + +unsigned long foo_0x40080800001(void) { + return 0x40080800001UL; +} + +unsigned long foo_0x42000800001(void) { + return 0x42000800001UL; +} + +unsigned long foo_0x80801000001(void) { + return 0x80801000001UL; +} + +unsigned long foo_0xa0001000001(void) { + return 0xa0001000001UL; +} + +unsigned long foo_0x100082000001(void) { + return 0x100082000001UL; +} + +unsigned long foo_0x102002000001(void) { + return 0x102002000001UL; +} + +unsigned long foo_0x180002000001(void) { + return 0x180002000001UL; +} + +unsigned long foo_0x200804000001(void) { + return 0x200804000001UL; +} + +unsigned long foo_0x220004000001(void) { + return 0x220004000001UL; +} + +unsigned long foo_0x400088000001(void) { + return 0x400088000001UL; +} + +unsigned long foo_0x402008000001(void) { + return 0x402008000001UL; +} + +unsigned long foo_0x480008000001(void) { + return 0x480008000001UL; +} + +unsigned long foo_0x800810000001(void) { + return 0x800810000001UL; +} + +unsigned long foo_0x820010000001(void) { + return 0x820010000001UL; +} + +unsigned long foo_0x10000a0000001(void) { + return 0x10000a0000001UL; +} + +unsigned long foo_0x1002020000001(void) { + return 0x1002020000001UL; +} + +unsigned long foo_0x1080020000001(void) { + return 0x1080020000001UL; +} + +unsigned long foo_0x2000840000001(void) { + return 0x2000840000001UL; +} + +unsigned long foo_0x2020040000001(void) { + return 0x2020040000001UL; +} + +unsigned long foo_0x2800040000001(void) { + return 0x2800040000001UL; +} + +unsigned long foo_0x4002080000001(void) { + return 0x4002080000001UL; +} + +unsigned long foo_0x4080080000001(void) { + return 0x4080080000001UL; +} + +unsigned long foo_0x6000080000001(void) { + return 0x6000080000001UL; +} + +unsigned long foo_0x8000900000001(void) { + return 0x8000900000001UL; +} + +unsigned long foo_0x8020100000001(void) { + return 0x8020100000001UL; +} + +unsigned long foo_0x8800100000001(void) { + return 0x8800100000001UL; +} + +unsigned long foo_0x10002200000001(void) { + return 0x10002200000001UL; +} + +unsigned long foo_0x10080200000001(void) { + return 0x10080200000001UL; +} + +unsigned long foo_0x12000200000001(void) { + return 0x12000200000001UL; +} + +unsigned long foo_0x20000c00000001(void) { + return 0x20000c00000001UL; +} + +unsigned long foo_0x20020400000001(void) { + return 0x20020400000001UL; +} + +unsigned long foo_0x20800400000001(void) { + return 0x20800400000001UL; +} + +unsigned long foo_0x40002800000001(void) { + return 0x40002800000001UL; +} + +unsigned long foo_0x40080800000001(void) { + return 0x40080800000001UL; +} + +unsigned long foo_0x42000800000001(void) { + return 0x42000800000001UL; +} + +unsigned long foo_0x80021000000001(void) { + return 0x80021000000001UL; +} + +unsigned long foo_0x80801000000001(void) { + return 0x80801000000001UL; +} + +unsigned long foo_0xa0001000000001(void) { + return 0xa0001000000001UL; +} + +unsigned long foo_0x100082000000001(void) { + return 0x100082000000001UL; +} + +unsigned long foo_0x102002000000001(void) { + return 0x102002000000001UL; +} + +unsigned long foo_0x180002000000001(void) { + return 0x180002000000001UL; +} + +unsigned long foo_0x200024000000001(void) { + return 0x200024000000001UL; +} + +unsigned long foo_0x200804000000001(void) { + return 0x200804000000001UL; +} + +unsigned long foo_0x220004000000001(void) { + return 0x220004000000001UL; +} + +unsigned long foo_0x400088000000001(void) { + return 0x400088000000001UL; +} + +unsigned long foo_0x402008000000001(void) { + return 0x402008000000001UL; +} + +unsigned long foo_0x480008000000001(void) { + return 0x480008000000001UL; +} + +unsigned long foo_0x800030000000001(void) { + return 0x800030000000001UL; +} + +unsigned long foo_0x800810000000001(void) { + return 0x800810000000001UL; +} + +unsigned long foo_0x820010000000001(void) { + return 0x820010000000001UL; +} + +unsigned long foo_0x10000a0000000001(void) { + return 0x10000a0000000001UL; +} + +unsigned long foo_0x1002020000000001(void) { + return 0x1002020000000001UL; +} + +unsigned long foo_0x1080020000000001(void) { + return 0x1080020000000001UL; +} + +unsigned long foo_0x2000840000000001(void) { + return 0x2000840000000001UL; +} + +unsigned long foo_0x2020040000000001(void) { + return 0x2020040000000001UL; +} + +unsigned long foo_0x2800040000000001(void) { + return 0x2800040000000001UL; +} + +unsigned long foo_0x4002080000000001(void) { + return 0x4002080000000001UL; +} + +unsigned long foo_0x4080080000000001(void) { + return 0x4080080000000001UL; +} + +unsigned long foo_0x6000080000000001(void) { + return 0x6000080000000001UL; +} + +unsigned long foo_0x900010002(void) { + return 0x900010002UL; +} + +unsigned long foo_0x2100040002(void) { + return 0x2100040002UL; +} + +unsigned long foo_0x5000080002(void) { + return 0x5000080002UL; +} + +unsigned long foo_0x8100100002(void) { + return 0x8100100002UL; +} + +unsigned long foo_0xc000100002(void) { + return 0xc000100002UL; +} + +unsigned long foo_0x11000200002(void) { + return 0x11000200002UL; +} + +unsigned long foo_0x20100400002(void) { + return 0x20100400002UL; +} + +unsigned long foo_0x24000400002(void) { + return 0x24000400002UL; +} + +unsigned long foo_0x41000800002(void) { + return 0x41000800002UL; +} + +unsigned long foo_0x80101000002(void) { + return 0x80101000002UL; +} + +unsigned long foo_0x84001000002(void) { + return 0x84001000002UL; +} + +unsigned long foo_0x101002000002(void) { + return 0x101002000002UL; +} + +unsigned long foo_0x140002000002(void) { + return 0x140002000002UL; +} + +unsigned long foo_0x200104000002(void) { + return 0x200104000002UL; +} + +unsigned long foo_0x204004000002(void) { + return 0x204004000002UL; +} + +unsigned long foo_0x300004000002(void) { + return 0x300004000002UL; +} + +unsigned long foo_0x401008000002(void) { + return 0x401008000002UL; +} + +unsigned long foo_0x440008000002(void) { + return 0x440008000002UL; +} + +unsigned long foo_0x800110000002(void) { + return 0x800110000002UL; +} + +unsigned long foo_0x804010000002(void) { + return 0x804010000002UL; +} + +unsigned long foo_0x900010000002(void) { + return 0x900010000002UL; +} + +unsigned long foo_0x1001020000002(void) { + return 0x1001020000002UL; +} + +unsigned long foo_0x1040020000002(void) { + return 0x1040020000002UL; +} + +unsigned long foo_0x2000140000002(void) { + return 0x2000140000002UL; +} + +unsigned long foo_0x2004040000002(void) { + return 0x2004040000002UL; +} + +unsigned long foo_0x2100040000002(void) { + return 0x2100040000002UL; +} + +unsigned long foo_0x4001080000002(void) { + return 0x4001080000002UL; +} + +unsigned long foo_0x4040080000002(void) { + return 0x4040080000002UL; +} + +unsigned long foo_0x5000080000002(void) { + return 0x5000080000002UL; +} + +unsigned long foo_0x8004100000002(void) { + return 0x8004100000002UL; +} + +unsigned long foo_0x8100100000002(void) { + return 0x8100100000002UL; +} + +unsigned long foo_0xc000100000002(void) { + return 0xc000100000002UL; +} + +unsigned long foo_0x10001200000002(void) { + return 0x10001200000002UL; +} + +unsigned long foo_0x10040200000002(void) { + return 0x10040200000002UL; +} + +unsigned long foo_0x11000200000002(void) { + return 0x11000200000002UL; +} + +unsigned long foo_0x20004400000002(void) { + return 0x20004400000002UL; +} + +unsigned long foo_0x20100400000002(void) { + return 0x20100400000002UL; +} + +unsigned long foo_0x24000400000002(void) { + return 0x24000400000002UL; +} + +unsigned long foo_0x40001800000002(void) { + return 0x40001800000002UL; +} + +unsigned long foo_0x40040800000002(void) { + return 0x40040800000002UL; +} + +unsigned long foo_0x41000800000002(void) { + return 0x41000800000002UL; +} + +unsigned long foo_0x80005000000002(void) { + return 0x80005000000002UL; +} + +unsigned long foo_0x80101000000002(void) { + return 0x80101000000002UL; +} + +unsigned long foo_0x84001000000002(void) { + return 0x84001000000002UL; +} + +unsigned long foo_0x100042000000002(void) { + return 0x100042000000002UL; +} + +unsigned long foo_0x101002000000002(void) { + return 0x101002000000002UL; +} + +unsigned long foo_0x140002000000002(void) { + return 0x140002000000002UL; +} + +unsigned long foo_0x200104000000002(void) { + return 0x200104000000002UL; +} + +unsigned long foo_0x204004000000002(void) { + return 0x204004000000002UL; +} + +unsigned long foo_0x300004000000002(void) { + return 0x300004000000002UL; +} + +unsigned long foo_0x400048000000002(void) { + return 0x400048000000002UL; +} + +unsigned long foo_0x401008000000002(void) { + return 0x401008000000002UL; +} + +unsigned long foo_0x440008000000002(void) { + return 0x440008000000002UL; +} + +unsigned long foo_0x800110000000002(void) { + return 0x800110000000002UL; +} + +unsigned long foo_0x804010000000002(void) { + return 0x804010000000002UL; +} + +unsigned long foo_0x900010000000002(void) { + return 0x900010000000002UL; +} + +unsigned long foo_0x1000060000000002(void) { + return 0x1000060000000002UL; +} + +unsigned long foo_0x1001020000000002(void) { + return 0x1001020000000002UL; +} + +unsigned long foo_0x1040020000000002(void) { + return 0x1040020000000002UL; +} + +unsigned long foo_0x2000140000000002(void) { + return 0x2000140000000002UL; +} + +unsigned long foo_0x2004040000000002(void) { + return 0x2004040000000002UL; +} + +unsigned long foo_0x2100040000000002(void) { + return 0x2100040000000002UL; +} + +unsigned long foo_0x4001080000000002(void) { + return 0x4001080000000002UL; +} + +unsigned long foo_0x4040080000000002(void) { + return 0x4040080000000002UL; +} + +unsigned long foo_0x5000080000000002(void) { + return 0x5000080000000002UL; +} + +unsigned long foo_0x600008004(void) { + return 0x600008004UL; +} + +unsigned long foo_0x880010004(void) { + return 0x880010004UL; +} + +unsigned long foo_0x1200020004(void) { + return 0x1200020004UL; +} + +unsigned long foo_0x2080040004(void) { + return 0x2080040004UL; +} + +unsigned long foo_0x4200080004(void) { + return 0x4200080004UL; +} + +unsigned long foo_0x8080100004(void) { + return 0x8080100004UL; +} + +unsigned long foo_0xa000100004(void) { + return 0xa000100004UL; +} + +unsigned long foo_0x10200200004(void) { + return 0x10200200004UL; +} + +unsigned long foo_0x18000200004(void) { + return 0x18000200004UL; +} + +unsigned long foo_0x20080400004(void) { + return 0x20080400004UL; +} + +unsigned long foo_0x22000400004(void) { + return 0x22000400004UL; +} + +unsigned long foo_0x40200800004(void) { + return 0x40200800004UL; +} + +unsigned long foo_0x48000800004(void) { + return 0x48000800004UL; +} + +unsigned long foo_0x80081000004(void) { + return 0x80081000004UL; +} + +unsigned long foo_0x82001000004(void) { + return 0x82001000004UL; +} + +unsigned long foo_0x100202000004(void) { + return 0x100202000004UL; +} + +unsigned long foo_0x108002000004(void) { + return 0x108002000004UL; +} + +unsigned long foo_0x200084000004(void) { + return 0x200084000004UL; +} + +unsigned long foo_0x202004000004(void) { + return 0x202004000004UL; +} + +unsigned long foo_0x280004000004(void) { + return 0x280004000004UL; +} + +unsigned long foo_0x400208000004(void) { + return 0x400208000004UL; +} + +unsigned long foo_0x408008000004(void) { + return 0x408008000004UL; +} + +unsigned long foo_0x600008000004(void) { + return 0x600008000004UL; +} + +unsigned long foo_0x800090000004(void) { + return 0x800090000004UL; +} + +unsigned long foo_0x802010000004(void) { + return 0x802010000004UL; +} + +unsigned long foo_0x880010000004(void) { + return 0x880010000004UL; +} + +unsigned long foo_0x1000220000004(void) { + return 0x1000220000004UL; +} + +unsigned long foo_0x1008020000004(void) { + return 0x1008020000004UL; +} + +unsigned long foo_0x1200020000004(void) { + return 0x1200020000004UL; +} + +unsigned long foo_0x20000c0000004(void) { + return 0x20000c0000004UL; +} + +unsigned long foo_0x2002040000004(void) { + return 0x2002040000004UL; +} + +unsigned long foo_0x2080040000004(void) { + return 0x2080040000004UL; +} + +unsigned long foo_0x4000280000004(void) { + return 0x4000280000004UL; +} + +unsigned long foo_0x4008080000004(void) { + return 0x4008080000004UL; +} + +unsigned long foo_0x4200080000004(void) { + return 0x4200080000004UL; +} + +unsigned long foo_0x8002100000004(void) { + return 0x8002100000004UL; +} + +unsigned long foo_0x8080100000004(void) { + return 0x8080100000004UL; +} + +unsigned long foo_0xa000100000004(void) { + return 0xa000100000004UL; +} + +unsigned long foo_0x10008200000004(void) { + return 0x10008200000004UL; +} + +unsigned long foo_0x10200200000004(void) { + return 0x10200200000004UL; +} + +unsigned long foo_0x18000200000004(void) { + return 0x18000200000004UL; +} + +unsigned long foo_0x20002400000004(void) { + return 0x20002400000004UL; +} + +unsigned long foo_0x20080400000004(void) { + return 0x20080400000004UL; +} + +unsigned long foo_0x22000400000004(void) { + return 0x22000400000004UL; +} + +unsigned long foo_0x40008800000004(void) { + return 0x40008800000004UL; +} + +unsigned long foo_0x40200800000004(void) { + return 0x40200800000004UL; +} + +unsigned long foo_0x48000800000004(void) { + return 0x48000800000004UL; +} + +unsigned long foo_0x80003000000004(void) { + return 0x80003000000004UL; +} + +unsigned long foo_0x80081000000004(void) { + return 0x80081000000004UL; +} + +unsigned long foo_0x82001000000004(void) { + return 0x82001000000004UL; +} + +unsigned long foo_0x10000a000000004(void) { + return 0x10000a000000004UL; +} + +unsigned long foo_0x100202000000004(void) { + return 0x100202000000004UL; +} + +unsigned long foo_0x108002000000004(void) { + return 0x108002000000004UL; +} + +unsigned long foo_0x200084000000004(void) { + return 0x200084000000004UL; +} + +unsigned long foo_0x202004000000004(void) { + return 0x202004000000004UL; +} + +unsigned long foo_0x280004000000004(void) { + return 0x280004000000004UL; +} + +unsigned long foo_0x400208000000004(void) { + return 0x400208000000004UL; +} + +unsigned long foo_0x408008000000004(void) { + return 0x408008000000004UL; +} + +unsigned long foo_0x600008000000004(void) { + return 0x600008000000004UL; +} + +unsigned long foo_0x800090000000004(void) { + return 0x800090000000004UL; +} + +unsigned long foo_0x802010000000004(void) { + return 0x802010000000004UL; +} + +unsigned long foo_0x880010000000004(void) { + return 0x880010000000004UL; +} + +unsigned long foo_0x1000220000000004(void) { + return 0x1000220000000004UL; +} + +unsigned long foo_0x1008020000000004(void) { + return 0x1008020000000004UL; +} + +unsigned long foo_0x1200020000000004(void) { + return 0x1200020000000004UL; +} + +unsigned long foo_0x20000c0000000004(void) { + return 0x20000c0000000004UL; +} + +unsigned long foo_0x2002040000000004(void) { + return 0x2002040000000004UL; +} + +unsigned long foo_0x2080040000000004(void) { + return 0x2080040000000004UL; +} + +unsigned long foo_0x4000280000000004(void) { + return 0x4000280000000004UL; +} + +unsigned long foo_0x4008080000000004(void) { + return 0x4008080000000004UL; +} + +unsigned long foo_0x4200080000000004(void) { + return 0x4200080000000004UL; +} + +unsigned long foo_0x500008008(void) { + return 0x500008008UL; +} + +unsigned long foo_0xc00010008(void) { + return 0xc00010008UL; +} + +unsigned long foo_0x1100020008(void) { + return 0x1100020008UL; +} + +unsigned long foo_0x2400040008(void) { + return 0x2400040008UL; +} + +unsigned long foo_0x4100080008(void) { + return 0x4100080008UL; +} + +unsigned long foo_0x8400100008(void) { + return 0x8400100008UL; +} + +unsigned long foo_0x10100200008(void) { + return 0x10100200008UL; +} + +unsigned long foo_0x14000200008(void) { + return 0x14000200008UL; +} + +unsigned long foo_0x20400400008(void) { + return 0x20400400008UL; +} + +unsigned long foo_0x30000400008(void) { + return 0x30000400008UL; +} + +unsigned long foo_0x40100800008(void) { + return 0x40100800008UL; +} + +unsigned long foo_0x44000800008(void) { + return 0x44000800008UL; +} + +unsigned long foo_0x80401000008(void) { + return 0x80401000008UL; +} + +unsigned long foo_0x90001000008(void) { + return 0x90001000008UL; +} + +unsigned long foo_0x100102000008(void) { + return 0x100102000008UL; +} + +unsigned long foo_0x104002000008(void) { + return 0x104002000008UL; +} + +unsigned long foo_0x200404000008(void) { + return 0x200404000008UL; +} + +unsigned long foo_0x210004000008(void) { + return 0x210004000008UL; +} + +unsigned long foo_0x400108000008(void) { + return 0x400108000008UL; +} + +unsigned long foo_0x404008000008(void) { + return 0x404008000008UL; +} + +unsigned long foo_0x500008000008(void) { + return 0x500008000008UL; +} + +unsigned long foo_0x800410000008(void) { + return 0x800410000008UL; +} + +unsigned long foo_0x810010000008(void) { + return 0x810010000008UL; +} + +unsigned long foo_0xc00010000008(void) { + return 0xc00010000008UL; +} + +unsigned long foo_0x1000120000008(void) { + return 0x1000120000008UL; +} + +unsigned long foo_0x1004020000008(void) { + return 0x1004020000008UL; +} + +unsigned long foo_0x1100020000008(void) { + return 0x1100020000008UL; +} + +unsigned long foo_0x2000440000008(void) { + return 0x2000440000008UL; +} + +unsigned long foo_0x2010040000008(void) { + return 0x2010040000008UL; +} + +unsigned long foo_0x2400040000008(void) { + return 0x2400040000008UL; +} + +unsigned long foo_0x4000180000008(void) { + return 0x4000180000008UL; +} + +unsigned long foo_0x4004080000008(void) { + return 0x4004080000008UL; +} + +unsigned long foo_0x4100080000008(void) { + return 0x4100080000008UL; +} + +unsigned long foo_0x8000500000008(void) { + return 0x8000500000008UL; +} + +unsigned long foo_0x8010100000008(void) { + return 0x8010100000008UL; +} + +unsigned long foo_0x8400100000008(void) { + return 0x8400100000008UL; +} + +unsigned long foo_0x10004200000008(void) { + return 0x10004200000008UL; +} + +unsigned long foo_0x10100200000008(void) { + return 0x10100200000008UL; +} + +unsigned long foo_0x14000200000008(void) { + return 0x14000200000008UL; +} + +unsigned long foo_0x20010400000008(void) { + return 0x20010400000008UL; +} + +unsigned long foo_0x20400400000008(void) { + return 0x20400400000008UL; +} + +unsigned long foo_0x30000400000008(void) { + return 0x30000400000008UL; +} + +unsigned long foo_0x40004800000008(void) { + return 0x40004800000008UL; +} + +unsigned long foo_0x40100800000008(void) { + return 0x40100800000008UL; +} + +unsigned long foo_0x44000800000008(void) { + return 0x44000800000008UL; +} + +unsigned long foo_0x80011000000008(void) { + return 0x80011000000008UL; +} + +unsigned long foo_0x80401000000008(void) { + return 0x80401000000008UL; +} + +unsigned long foo_0x90001000000008(void) { + return 0x90001000000008UL; +} + +unsigned long foo_0x100006000000008(void) { + return 0x100006000000008UL; +} + +unsigned long foo_0x100102000000008(void) { + return 0x100102000000008UL; +} + +unsigned long foo_0x104002000000008(void) { + return 0x104002000000008UL; +} + +unsigned long foo_0x200014000000008(void) { + return 0x200014000000008UL; +} + +unsigned long foo_0x200404000000008(void) { + return 0x200404000000008UL; +} + +unsigned long foo_0x210004000000008(void) { + return 0x210004000000008UL; +} + +unsigned long foo_0x400108000000008(void) { + return 0x400108000000008UL; +} + +unsigned long foo_0x404008000000008(void) { + return 0x404008000000008UL; +} + +unsigned long foo_0x500008000000008(void) { + return 0x500008000000008UL; +} + +unsigned long foo_0x800410000000008(void) { + return 0x800410000000008UL; +} + +unsigned long foo_0x810010000000008(void) { + return 0x810010000000008UL; +} + +unsigned long foo_0xc00010000000008(void) { + return 0xc00010000000008UL; +} + +unsigned long foo_0x1000120000000008(void) { + return 0x1000120000000008UL; +} + +unsigned long foo_0x1004020000000008(void) { + return 0x1004020000000008UL; +} + +unsigned long foo_0x1100020000000008(void) { + return 0x1100020000000008UL; +} + +unsigned long foo_0x2000440000000008(void) { + return 0x2000440000000008UL; +} + +unsigned long foo_0x2010040000000008(void) { + return 0x2010040000000008UL; +} + +unsigned long foo_0x2400040000000008(void) { + return 0x2400040000000008UL; +} + +unsigned long foo_0x4000180000000008(void) { + return 0x4000180000000008UL; +} + +unsigned long foo_0x4004080000000008(void) { + return 0x4004080000000008UL; +} + +unsigned long foo_0x4100080000000008(void) { + return 0x4100080000000008UL; +} + +unsigned long foo_0xa00010010(void) { + return 0xa00010010UL; +} + +unsigned long foo_0x1800020010(void) { + return 0x1800020010UL; +} + +unsigned long foo_0x2200040010(void) { + return 0x2200040010UL; +} + +unsigned long foo_0x4800080010(void) { + return 0x4800080010UL; +} + +unsigned long foo_0x8200100010(void) { + return 0x8200100010UL; +} + +unsigned long foo_0x10800200010(void) { + return 0x10800200010UL; +} + +unsigned long foo_0x20200400010(void) { + return 0x20200400010UL; +} + +unsigned long foo_0x28000400010(void) { + return 0x28000400010UL; +} + +unsigned long foo_0x40800800010(void) { + return 0x40800800010UL; +} + +unsigned long foo_0x60000800010(void) { + return 0x60000800010UL; +} + +unsigned long foo_0x80201000010(void) { + return 0x80201000010UL; +} + +unsigned long foo_0x88001000010(void) { + return 0x88001000010UL; +} + +unsigned long foo_0x100802000010(void) { + return 0x100802000010UL; +} + +unsigned long foo_0x120002000010(void) { + return 0x120002000010UL; +} + +unsigned long foo_0x200204000010(void) { + return 0x200204000010UL; +} + +unsigned long foo_0x208004000010(void) { + return 0x208004000010UL; +} + +unsigned long foo_0x400808000010(void) { + return 0x400808000010UL; +} + +unsigned long foo_0x420008000010(void) { + return 0x420008000010UL; +} + +unsigned long foo_0x800210000010(void) { + return 0x800210000010UL; +} + +unsigned long foo_0x808010000010(void) { + return 0x808010000010UL; +} + +unsigned long foo_0xa00010000010(void) { + return 0xa00010000010UL; +} + +unsigned long foo_0x1000820000010(void) { + return 0x1000820000010UL; +} + +unsigned long foo_0x1020020000010(void) { + return 0x1020020000010UL; +} + +unsigned long foo_0x1800020000010(void) { + return 0x1800020000010UL; +} + +unsigned long foo_0x2000240000010(void) { + return 0x2000240000010UL; +} + +unsigned long foo_0x2008040000010(void) { + return 0x2008040000010UL; +} + +unsigned long foo_0x2200040000010(void) { + return 0x2200040000010UL; +} + +unsigned long foo_0x4000880000010(void) { + return 0x4000880000010UL; +} + +unsigned long foo_0x4020080000010(void) { + return 0x4020080000010UL; +} + +unsigned long foo_0x4800080000010(void) { + return 0x4800080000010UL; +} + +unsigned long foo_0x8000300000010(void) { + return 0x8000300000010UL; +} + +unsigned long foo_0x8008100000010(void) { + return 0x8008100000010UL; +} + +unsigned long foo_0x8200100000010(void) { + return 0x8200100000010UL; +} + +unsigned long foo_0x10000a00000010(void) { + return 0x10000a00000010UL; +} + +unsigned long foo_0x10020200000010(void) { + return 0x10020200000010UL; +} + +unsigned long foo_0x10800200000010(void) { + return 0x10800200000010UL; +} + +unsigned long foo_0x20008400000010(void) { + return 0x20008400000010UL; +} + +unsigned long foo_0x20200400000010(void) { + return 0x20200400000010UL; +} + +unsigned long foo_0x28000400000010(void) { + return 0x28000400000010UL; +} + +unsigned long foo_0x40020800000010(void) { + return 0x40020800000010UL; +} + +unsigned long foo_0x40800800000010(void) { + return 0x40800800000010UL; +} + +unsigned long foo_0x60000800000010(void) { + return 0x60000800000010UL; +} + +unsigned long foo_0x80009000000010(void) { + return 0x80009000000010UL; +} + +unsigned long foo_0x80201000000010(void) { + return 0x80201000000010UL; +} + +unsigned long foo_0x88001000000010(void) { + return 0x88001000000010UL; +} + +unsigned long foo_0x100022000000010(void) { + return 0x100022000000010UL; +} + +unsigned long foo_0x100802000000010(void) { + return 0x100802000000010UL; +} + +unsigned long foo_0x120002000000010(void) { + return 0x120002000000010UL; +} + +unsigned long foo_0x20000c000000010(void) { + return 0x20000c000000010UL; +} + +unsigned long foo_0x200204000000010(void) { + return 0x200204000000010UL; +} + +unsigned long foo_0x208004000000010(void) { + return 0x208004000000010UL; +} + +unsigned long foo_0x400028000000010(void) { + return 0x400028000000010UL; +} + +unsigned long foo_0x400808000000010(void) { + return 0x400808000000010UL; +} + +unsigned long foo_0x420008000000010(void) { + return 0x420008000000010UL; +} + +unsigned long foo_0x800210000000010(void) { + return 0x800210000000010UL; +} + +unsigned long foo_0x808010000000010(void) { + return 0x808010000000010UL; +} + +unsigned long foo_0xa00010000000010(void) { + return 0xa00010000000010UL; +} + +unsigned long foo_0x1000820000000010(void) { + return 0x1000820000000010UL; +} + +unsigned long foo_0x1020020000000010(void) { + return 0x1020020000000010UL; +} + +unsigned long foo_0x1800020000000010(void) { + return 0x1800020000000010UL; +} + +unsigned long foo_0x2000240000000010(void) { + return 0x2000240000000010UL; +} + +unsigned long foo_0x2008040000000010(void) { + return 0x2008040000000010UL; +} + +unsigned long foo_0x2200040000000010(void) { + return 0x2200040000000010UL; +} + +unsigned long foo_0x4000880000000010(void) { + return 0x4000880000000010UL; +} + +unsigned long foo_0x4020080000000010(void) { + return 0x4020080000000010UL; +} + +unsigned long foo_0x4800080000000010(void) { + return 0x4800080000000010UL; +} + +unsigned long foo_0x1400020020(void) { + return 0x1400020020UL; +} + +unsigned long foo_0x3000040020(void) { + return 0x3000040020UL; +} + +unsigned long foo_0x4400080020(void) { + return 0x4400080020UL; +} + +unsigned long foo_0x9000100020(void) { + return 0x9000100020UL; +} + +unsigned long foo_0x10400200020(void) { + return 0x10400200020UL; +} + +unsigned long foo_0x21000400020(void) { + return 0x21000400020UL; +} + +unsigned long foo_0x40400800020(void) { + return 0x40400800020UL; +} + +unsigned long foo_0x50000800020(void) { + return 0x50000800020UL; +} + +unsigned long foo_0x81001000020(void) { + return 0x81001000020UL; +} + +unsigned long foo_0xc0001000020(void) { + return 0xc0001000020UL; +} + +unsigned long foo_0x100402000020(void) { + return 0x100402000020UL; +} + +unsigned long foo_0x110002000020(void) { + return 0x110002000020UL; +} + +unsigned long foo_0x201004000020(void) { + return 0x201004000020UL; +} + +unsigned long foo_0x240004000020(void) { + return 0x240004000020UL; +} + +unsigned long foo_0x400408000020(void) { + return 0x400408000020UL; +} + +unsigned long foo_0x410008000020(void) { + return 0x410008000020UL; +} + +unsigned long foo_0x801010000020(void) { + return 0x801010000020UL; +} + +unsigned long foo_0x840010000020(void) { + return 0x840010000020UL; +} + +unsigned long foo_0x1000420000020(void) { + return 0x1000420000020UL; +} + +unsigned long foo_0x1010020000020(void) { + return 0x1010020000020UL; +} + +unsigned long foo_0x1400020000020(void) { + return 0x1400020000020UL; +} + +unsigned long foo_0x2001040000020(void) { + return 0x2001040000020UL; +} + +unsigned long foo_0x2040040000020(void) { + return 0x2040040000020UL; +} + +unsigned long foo_0x3000040000020(void) { + return 0x3000040000020UL; +} + +unsigned long foo_0x4000480000020(void) { + return 0x4000480000020UL; +} + +unsigned long foo_0x4010080000020(void) { + return 0x4010080000020UL; +} + +unsigned long foo_0x4400080000020(void) { + return 0x4400080000020UL; +} + +unsigned long foo_0x8001100000020(void) { + return 0x8001100000020UL; +} diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-3.c b/gcc/testsuite/gcc.target/riscv/synthesis-3.c new file mode 100644 index 00000000000..5d92ac8e309 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-3.c @@ -0,0 +1,81 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs" } */ + +/* Rather than test for a specific synthesis of all these constants or + having thousands of tests each testing one variant, we just test the + total number of instructions. + + This isn't expected to change much and any change is worthy of a look. */ +/* { dg-final { scan-assembler-times "\\t(add|addi|bseti|li|ret|sh1add|sh2add|sh3add|slli)" 248 } } */ + +unsigned long foo_0x1200000120000000 (void) { return 0x1200000120000000UL; } +unsigned long foo_0x120000402000000 (void) { return 0x120000402000000UL; } +unsigned long foo_0x1200100020000 (void) { return 0x1200100020000UL; } +unsigned long foo_0x14000000a0000000 (void) { return 0x14000000a0000000UL; } +unsigned long foo_0x140000082000000 (void) { return 0x140000082000000UL; } +unsigned long foo_0x14000080200000 (void) { return 0x14000080200000UL; } +unsigned long foo_0x1400080020000 (void) { return 0x1400080020000UL; } +unsigned long foo_0x140080002000 (void) { return 0x140080002000UL; } +unsigned long foo_0x1800000120000000 (void) { return 0x1800000120000000UL; } +unsigned long foo_0x180000102000000 (void) { return 0x180000102000000UL; } +unsigned long foo_0x180000801 (void) { return 0x180000801UL; } +unsigned long foo_0x180000802 (void) { return 0x180000802UL; } +unsigned long foo_0x180001001 (void) { return 0x180001001UL; } +unsigned long foo_0x18000100200000 (void) { return 0x18000100200000UL; } +unsigned long foo_0x180001002 (void) { return 0x180001002UL; } +unsigned long foo_0x180003000 (void) { return 0x180003000UL; } +unsigned long foo_0x1800100020000 (void) { return 0x1800100020000UL; } +unsigned long foo_0x180081000 (void) { return 0x180081000UL; } +unsigned long foo_0x182001000 (void) { return 0x182001000UL; } +unsigned long foo_0x2400000240000000 (void) { return 0x2400000240000000UL; } +unsigned long foo_0x24000080400000 (void) { return 0x24000080400000UL; } +unsigned long foo_0x2400200040000 (void) { return 0x2400200040000UL; } +unsigned long foo_0x2800000140000000 (void) { return 0x2800000140000000UL; } +unsigned long foo_0x280000104000000 (void) { return 0x280000104000000UL; } +unsigned long foo_0x28000100400000 (void) { return 0x28000100400000UL; } +unsigned long foo_0x2800100040000 (void) { return 0x2800100040000UL; } +unsigned long foo_0x280011000 (void) { return 0x280011000UL; } +unsigned long foo_0x280100004000 (void) { return 0x280100004000UL; } +unsigned long foo_0x280401000 (void) { return 0x280401000UL; } +unsigned long foo_0x290001000 (void) { return 0x290001000UL; } +unsigned long foo_0x30000000c0000000 (void) { return 0x30000000c0000000UL; } +unsigned long foo_0x300000084000000 (void) { return 0x300000084000000UL; } +unsigned long foo_0x300000801 (void) { return 0x300000801UL; } +unsigned long foo_0x30000080400000 (void) { return 0x30000080400000UL; } +unsigned long foo_0x300002004 (void) { return 0x300002004UL; } +unsigned long foo_0x300006000 (void) { return 0x300006000UL; } +unsigned long foo_0x3000080040000 (void) { return 0x3000080040000UL; } +unsigned long foo_0x300021000 (void) { return 0x300021000UL; } +unsigned long foo_0x300080004000 (void) { return 0x300080004000UL; } +unsigned long foo_0x300102000 (void) { return 0x300102000UL; } +unsigned long foo_0x300801000 (void) { return 0x300801000UL; } +unsigned long foo_0x304002000 (void) { return 0x304002000UL; } +unsigned long foo_0x320001000 (void) { return 0x320001000UL; } +unsigned long foo_0x4800000480000000 (void) { return 0x4800000480000000UL; } +unsigned long foo_0x48000100800000 (void) { return 0x48000100800000UL; } +unsigned long foo_0x4800400080000 (void) { return 0x4800400080000UL; } +unsigned long foo_0x5000000280000000 (void) { return 0x5000000280000000UL; } +unsigned long foo_0x500000208000000 (void) { return 0x500000208000000UL; } +unsigned long foo_0x50000200800000 (void) { return 0x50000200800000UL; } +unsigned long foo_0x5000200080000 (void) { return 0x5000200080000UL; } +unsigned long foo_0x500200008000 (void) { return 0x500200008000UL; } +unsigned long foo_0x6000000180000000 (void) { return 0x6000000180000000UL; } +unsigned long foo_0x600000108000000 (void) { return 0x600000108000000UL; } +unsigned long foo_0x60000100800000 (void) { return 0x60000100800000UL; } +unsigned long foo_0x6000100080000 (void) { return 0x6000100080000UL; } +unsigned long foo_0x600100008000 (void) { return 0x600100008000UL; } +unsigned long foo_0x900000090000000 (void) { return 0x900000090000000UL; } +unsigned long foo_0x90000201000000 (void) { return 0x90000201000000UL; } +unsigned long foo_0x900080010000 (void) { return 0x900080010000UL; } +unsigned long foo_0x90200001000 (void) { return 0x90200001000UL; } +unsigned long foo_0xc00000090000000 (void) { return 0xc00000090000000UL; } +unsigned long foo_0xc0000081000000 (void) { return 0xc0000081000000UL; } +unsigned long foo_0xc000080100000 (void) { return 0xc000080100000UL; } +unsigned long foo_0xc00080010000 (void) { return 0xc00080010000UL; } +unsigned long foo_0xc0080001000 (void) { return 0xc0080001000UL; } diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-4.c b/gcc/testsuite/gcc.target/riscv/synthesis-4.c new file mode 100644 index 00000000000..328a55b9e6e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-4.c @@ -0,0 +1,34 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs" } */ + +/* Rather than test for a specific synthesis of all these constants or + having thousands of tests each testing one variant, we just test the + total number of instructions. + + This isn't expected to change much and any change is worthy of a look. */ +/* { dg-final { scan-assembler-times "\\t(add|addi|bseti|li|ret|sh1add|sh2add|sh3add|slli)" 45 } } */ + + +unsigned long foo_0x60000400000800(void) { return 0x60000400000800UL; } + +unsigned long foo_0xc0000400000800(void) { return 0xc0000400000800UL; } + +unsigned long foo_0x180000400000800(void) { return 0x180000400000800UL; } + +unsigned long foo_0x300000400000800(void) { return 0x300000400000800UL; } + +unsigned long foo_0x600000400000800(void) { return 0x600000400000800UL; } + +unsigned long foo_0xc00000400000800(void) { return 0xc00000400000800UL; } + +unsigned long foo_0x1800000400000800(void) { return 0x1800000400000800UL; } + +unsigned long foo_0x3000000400000800(void) { return 0x3000000400000800UL; } + +unsigned long foo_0x6000000400000800(void) { return 0x6000000400000800UL; } diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-5.c b/gcc/testsuite/gcc.target/riscv/synthesis-5.c new file mode 100644 index 00000000000..4d81565b563 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-5.c @@ -0,0 +1,294 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ + +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs" } */ + +/* Rather than test for a specific synthesis of all these constants or + having thousands of tests each testing one variant, we just test the + total number of instructions. + + This isn't expected to change much and any change is worthy of a look. */ +/* { dg-final { scan-assembler-times "\\t(add|addi|bseti|li|ret|sh1add|sh2add|sh3add|slli)" 556 } } */ + +unsigned long foo_0x80180001000(void) { return 0x80180001000UL; } + +unsigned long foo_0x80280001000(void) { return 0x80280001000UL; } + +unsigned long foo_0x80480001000(void) { return 0x80480001000UL; } + +unsigned long foo_0x80880001000(void) { return 0x80880001000UL; } + +unsigned long foo_0x81080001000(void) { return 0x81080001000UL; } + +unsigned long foo_0x82080001000(void) { return 0x82080001000UL; } + +unsigned long foo_0x84080001000(void) { return 0x84080001000UL; } + +unsigned long foo_0x88080001000(void) { return 0x88080001000UL; } + +unsigned long foo_0x90080001000(void) { return 0x90080001000UL; } + +unsigned long foo_0xa0080001000(void) { return 0xa0080001000UL; } + +unsigned long foo_0x80300001000(void) { return 0x80300001000UL; } + +unsigned long foo_0x80500001000(void) { return 0x80500001000UL; } + +unsigned long foo_0x80900001000(void) { return 0x80900001000UL; } + +unsigned long foo_0x81100001000(void) { return 0x81100001000UL; } + +unsigned long foo_0x82100001000(void) { return 0x82100001000UL; } + +unsigned long foo_0x84100001000(void) { return 0x84100001000UL; } + +unsigned long foo_0x88100001000(void) { return 0x88100001000UL; } + +unsigned long foo_0x90100001000(void) { return 0x90100001000UL; } + +unsigned long foo_0xa0100001000(void) { return 0xa0100001000UL; } + +unsigned long foo_0xc0100001000(void) { return 0xc0100001000UL; } + +unsigned long foo_0x80600001000(void) { return 0x80600001000UL; } + +unsigned long foo_0x80a00001000(void) { return 0x80a00001000UL; } + +unsigned long foo_0x81200001000(void) { return 0x81200001000UL; } + +unsigned long foo_0x82200001000(void) { return 0x82200001000UL; } + +unsigned long foo_0x84200001000(void) { return 0x84200001000UL; } + +unsigned long foo_0x88200001000(void) { return 0x88200001000UL; } + +unsigned long foo_0xa0200001000(void) { return 0xa0200001000UL; } + +unsigned long foo_0xc0200001000(void) { return 0xc0200001000UL; } + +unsigned long foo_0x80c00001000(void) { return 0x80c00001000UL; } + +unsigned long foo_0x81400001000(void) { return 0x81400001000UL; } + +unsigned long foo_0x82400001000(void) { return 0x82400001000UL; } + +unsigned long foo_0x84400001000(void) { return 0x84400001000UL; } + +unsigned long foo_0x88400001000(void) { return 0x88400001000UL; } + +unsigned long foo_0x90400001000(void) { return 0x90400001000UL; } + +unsigned long foo_0xa0400001000(void) { return 0xa0400001000UL; } + +unsigned long foo_0xc0400001000(void) { return 0xc0400001000UL; } + +unsigned long foo_0x81800001000(void) { return 0x81800001000UL; } + +unsigned long foo_0x82800001000(void) { return 0x82800001000UL; } + +unsigned long foo_0x84800001000(void) { return 0x84800001000UL; } + +unsigned long foo_0x88800001000(void) { return 0x88800001000UL; } + +unsigned long foo_0x90800001000(void) { return 0x90800001000UL; } + +unsigned long foo_0xa0800001000(void) { return 0xa0800001000UL; } + +unsigned long foo_0xc0800001000(void) { return 0xc0800001000UL; } + +unsigned long foo_0x83000001000(void) { return 0x83000001000UL; } + +unsigned long foo_0x85000001000(void) { return 0x85000001000UL; } + +unsigned long foo_0x89000001000(void) { return 0x89000001000UL; } + +unsigned long foo_0x91000001000(void) { return 0x91000001000UL; } + +unsigned long foo_0xa1000001000(void) { return 0xa1000001000UL; } + +unsigned long foo_0xc1000001000(void) { return 0xc1000001000UL; } + +unsigned long foo_0x86000001000(void) { return 0x86000001000UL; } + +unsigned long foo_0x8a000001000(void) { return 0x8a000001000UL; } + +unsigned long foo_0x92000001000(void) { return 0x92000001000UL; } + +unsigned long foo_0xa2000001000(void) { return 0xa2000001000UL; } + +unsigned long foo_0xc2000001000(void) { return 0xc2000001000UL; } + +unsigned long foo_0x8c000001000(void) { return 0x8c000001000UL; } + +unsigned long foo_0x94000001000(void) { return 0x94000001000UL; } + +unsigned long foo_0xa4000001000(void) { return 0xa4000001000UL; } + +unsigned long foo_0xc4000001000(void) { return 0xc4000001000UL; } + +unsigned long foo_0x98000001000(void) { return 0x98000001000UL; } + +unsigned long foo_0xa8000001000(void) { return 0xa8000001000UL; } + +unsigned long foo_0xc8000001000(void) { return 0xc8000001000UL; } + +unsigned long foo_0xb0000001000(void) { return 0xb0000001000UL; } + +unsigned long foo_0xd0000001000(void) { return 0xd0000001000UL; } + +unsigned long foo_0xe0000001000(void) { return 0xe0000001000UL; } + +unsigned long foo_0x100180002000(void) { return 0x100180002000UL; } + +unsigned long foo_0x100280002000(void) { return 0x100280002000UL; } + +unsigned long foo_0x100480002000(void) { return 0x100480002000UL; } + +unsigned long foo_0x100880002000(void) { return 0x100880002000UL; } + +unsigned long foo_0x101080002000(void) { return 0x101080002000UL; } + +unsigned long foo_0x102080002000(void) { return 0x102080002000UL; } + +unsigned long foo_0x104080002000(void) { return 0x104080002000UL; } + +unsigned long foo_0x108080002000(void) { return 0x108080002000UL; } + +unsigned long foo_0x110080002000(void) { return 0x110080002000UL; } + +unsigned long foo_0x120080002000(void) { return 0x120080002000UL; } + +unsigned long foo_0x180080002000(void) { return 0x180080002000UL; } + +unsigned long foo_0x100300002000(void) { return 0x100300002000UL; } + +unsigned long foo_0x100500002000(void) { return 0x100500002000UL; } + +unsigned long foo_0x100900002000(void) { return 0x100900002000UL; } + +unsigned long foo_0x101100002000(void) { return 0x101100002000UL; } + +unsigned long foo_0x102100002000(void) { return 0x102100002000UL; } + +unsigned long foo_0x104100002000(void) { return 0x104100002000UL; } + +unsigned long foo_0x108100002000(void) { return 0x108100002000UL; } + +unsigned long foo_0x110100002000(void) { return 0x110100002000UL; } + +unsigned long foo_0x120100002000(void) { return 0x120100002000UL; } + +unsigned long foo_0x140100002000(void) { return 0x140100002000UL; } + +unsigned long foo_0x100600002000(void) { return 0x100600002000UL; } + +unsigned long foo_0x100a00002000(void) { return 0x100a00002000UL; } + +unsigned long foo_0x101200002000(void) { return 0x101200002000UL; } + +unsigned long foo_0x102200002000(void) { return 0x102200002000UL; } + +unsigned long foo_0x104200002000(void) { return 0x104200002000UL; } + +unsigned long foo_0x108200002000(void) { return 0x108200002000UL; } + +unsigned long foo_0x110200002000(void) { return 0x110200002000UL; } + +unsigned long foo_0x120200002000(void) { return 0x120200002000UL; } + +unsigned long foo_0x140200002000(void) { return 0x140200002000UL; } + +unsigned long foo_0x180200002000(void) { return 0x180200002000UL; } + +unsigned long foo_0x100c00002000(void) { return 0x100c00002000UL; } + +unsigned long foo_0x101400002000(void) { return 0x101400002000UL; } + +unsigned long foo_0x102400002000(void) { return 0x102400002000UL; } + +unsigned long foo_0x104400002000(void) { return 0x104400002000UL; } + +unsigned long foo_0x108400002000(void) { return 0x108400002000UL; } + +unsigned long foo_0x110400002000(void) { return 0x110400002000UL; } + +unsigned long foo_0x140400002000(void) { return 0x140400002000UL; } + +unsigned long foo_0x180400002000(void) { return 0x180400002000UL; } + +unsigned long foo_0x101800002000(void) { return 0x101800002000UL; } + +unsigned long foo_0x102800002000(void) { return 0x102800002000UL; } + +unsigned long foo_0x104800002000(void) { return 0x104800002000UL; } + +unsigned long foo_0x108800002000(void) { return 0x108800002000UL; } + +unsigned long foo_0x110800002000(void) { return 0x110800002000UL; } + +unsigned long foo_0x120800002000(void) { return 0x120800002000UL; } + +unsigned long foo_0x140800002000(void) { return 0x140800002000UL; } + +unsigned long foo_0x180800002000(void) { return 0x180800002000UL; } + +unsigned long foo_0x103000002000(void) { return 0x103000002000UL; } + +unsigned long foo_0x105000002000(void) { return 0x105000002000UL; } + +unsigned long foo_0x109000002000(void) { return 0x109000002000UL; } + +unsigned long foo_0x111000002000(void) { return 0x111000002000UL; } + +unsigned long foo_0x121000002000(void) { return 0x121000002000UL; } + +unsigned long foo_0x141000002000(void) { return 0x141000002000UL; } + +unsigned long foo_0x181000002000(void) { return 0x181000002000UL; } + +unsigned long foo_0x106000002000(void) { return 0x106000002000UL; } + +unsigned long foo_0x10a000002000(void) { return 0x10a000002000UL; } + +unsigned long foo_0x112000002000(void) { return 0x112000002000UL; } + +unsigned long foo_0x122000002000(void) { return 0x122000002000UL; } + +unsigned long foo_0x142000002000(void) { return 0x142000002000UL; } + +unsigned long foo_0x182000002000(void) { return 0x182000002000UL; } + +unsigned long foo_0x10c000002000(void) { return 0x10c000002000UL; } + +unsigned long foo_0x114000002000(void) { return 0x114000002000UL; } + +unsigned long foo_0x124000002000(void) { return 0x124000002000UL; } + +unsigned long foo_0x144000002000(void) { return 0x144000002000UL; } + +unsigned long foo_0x184000002000(void) { return 0x184000002000UL; } + +unsigned long foo_0x118000002000(void) { return 0x118000002000UL; } + +unsigned long foo_0x128000002000(void) { return 0x128000002000UL; } + +unsigned long foo_0x148000002000(void) { return 0x148000002000UL; } + +unsigned long foo_0x188000002000(void) { return 0x188000002000UL; } + +unsigned long foo_0x130000002000(void) { return 0x130000002000UL; } + +unsigned long foo_0x150000002000(void) { return 0x150000002000UL; } + +unsigned long foo_0x190000002000(void) { return 0x190000002000UL; } + +unsigned long foo_0x160000002000(void) { return 0x160000002000UL; } + +unsigned long foo_0x1a0000002000(void) { return 0x1a0000002000UL; } + +unsigned long foo_0x1c0000002000(void) { return 0x1c0000002000UL; } diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-6.c b/gcc/testsuite/gcc.target/riscv/synthesis-6.c new file mode 100644 index 00000000000..65cf748f4b5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-6.c @@ -0,0 +1,95 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs" } */ + +/* Rather than test for a specific synthesis of all these constants or + having thousands of tests each testing one variant, we just test the + total number of instructions. + + This isn't expected to change much and any change is worthy of a look. */ +/* { dg-final { scan-assembler-times "\\t(add|addi|bseti|bclri|li|ret|sh1add|sh2add|sh3add|slli)" 156 } } */ + + +unsigned long foo_0xfffffffbfffff7ff(void) { return 0xfffffffbfffff7ffUL; } + +unsigned long foo_0xfffffff7fffff7ff(void) { return 0xfffffff7fffff7ffUL; } + +unsigned long foo_0xffffffeffffff7ff(void) { return 0xffffffeffffff7ffUL; } + +unsigned long foo_0xffffffdffffff7ff(void) { return 0xffffffdffffff7ffUL; } + +unsigned long foo_0xffffffbffffff7ff(void) { return 0xffffffbffffff7ffUL; } + +unsigned long foo_0xffffff7ffffff7ff(void) { return 0xffffff7ffffff7ffUL; } + +unsigned long foo_0xfffffefffffff7ff(void) { return 0xfffffefffffff7ffUL; } + +unsigned long foo_0xfffffdfffffff7ff(void) { return 0xfffffdfffffff7ffUL; } + +unsigned long foo_0xfffffbfffffff7ff(void) { return 0xfffffbfffffff7ffUL; } + +unsigned long foo_0xfffff7fffffff7ff(void) { return 0xfffff7fffffff7ffUL; } + +unsigned long foo_0xffffeffffffff7ff(void) { return 0xffffeffffffff7ffUL; } + +unsigned long foo_0xffffdffffffff7ff(void) { return 0xffffdffffffff7ffUL; } + +unsigned long foo_0xffffbffffffff7ff(void) { return 0xffffbffffffff7ffUL; } + +unsigned long foo_0xffff7ffffffff7ff(void) { return 0xffff7ffffffff7ffUL; } + +unsigned long foo_0xfffefffffffff7ff(void) { return 0xfffefffffffff7ffUL; } + +unsigned long foo_0xfffdfffffffff7ff(void) { return 0xfffdfffffffff7ffUL; } + +unsigned long foo_0xfffbfffffffff7ff(void) { return 0xfffbfffffffff7ffUL; } + +unsigned long foo_0xfff7fffffffff7ff(void) { return 0xfff7fffffffff7ffUL; } + +unsigned long foo_0xffeffffffffff7ff(void) { return 0xffeffffffffff7ffUL; } + +unsigned long foo_0xffdffffffffff7ff(void) { return 0xffdffffffffff7ffUL; } + +unsigned long foo_0xffbffffffffff7ff(void) { return 0xffbffffffffff7ffUL; } + +unsigned long foo_0xff7ffffffffff7ff(void) { return 0xff7ffffffffff7ffUL; } + +unsigned long foo_0xfefffffffffff7ff(void) { return 0xfefffffffffff7ffUL; } + +unsigned long foo_0xfdfffffffffff7ff(void) { return 0xfdfffffffffff7ffUL; } + +unsigned long foo_0xfbfffffffffff7ff(void) { return 0xfbfffffffffff7ffUL; } + +unsigned long foo_0xf7fffffffffff7ff(void) { return 0xf7fffffffffff7ffUL; } + +unsigned long foo_0xeffffffffffff7ff(void) { return 0xeffffffffffff7ffUL; } + +unsigned long foo_0xdffffffffffff7ff(void) { return 0xdffffffffffff7ffUL; } + +unsigned long foo_0xbffffffffffff7ff(void) { return 0xbffffffffffff7ffUL; } + +unsigned long foo_0xffffffff7fffd7ff(void) { return 0xffffffff7fffd7ffUL; } + +unsigned long foo_0xffffffff7ffdf7ff(void) { return 0xffffffff7ffdf7ffUL; } + +unsigned long foo_0xffffffff7fdff7ff(void) { return 0xffffffff7fdff7ffUL; } + +unsigned long foo_0xffffffff7dfff7ff(void) { return 0xffffffff7dfff7ffUL; } + +unsigned long foo_0xffffffff5ffff7ff(void) { return 0xffffffff5ffff7ffUL; } + +unsigned long foo_0xfffff7ff7ffff7ff(void) { return 0xfffff7ff7ffff7ffUL; } + +unsigned long foo_0xffffdfff7ffff7ff(void) { return 0xffffdfff7ffff7ffUL; } + +unsigned long foo_0xffff7fff7ffff7ff(void) { return 0xffff7fff7ffff7ffUL; } + +unsigned long foo_0xfffdffff7ffff7ff(void) { return 0xfffdffff7ffff7ffUL; } + + + diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-7.c b/gcc/testsuite/gcc.target/riscv/synthesis-7.c new file mode 100644 index 00000000000..1611c964758 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-7.c @@ -0,0 +1,1531 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs" } */ + +/* Rather than test for a specific synthesis of all these constants or + having thousands of tests each testing one variant, we just test the + total number of instructions. + + This isn't expected to change much and any change is worthy of a look. */ +/* { dg-final { scan-assembler-times "\\t(add|addi|bseti|li|ret|sh1add|sh2add|sh3add|slli)" 7571 } } */ + +unsigned long foo_0xfffff7fe7ffff7ff(void) { return 0xfffff7fe7ffff7ffUL; } +unsigned long foo_0xffffeffe7ffff7ff(void) { return 0xffffeffe7ffff7ffUL; } +unsigned long foo_0xffffdffe7ffff7ff(void) { return 0xffffdffe7ffff7ffUL; } +unsigned long foo_0xffffbffe7ffff7ff(void) { return 0xffffbffe7ffff7ffUL; } +unsigned long foo_0xffff7ffe7ffff7ff(void) { return 0xffff7ffe7ffff7ffUL; } +unsigned long foo_0xfffefffe7ffff7ff(void) { return 0xfffefffe7ffff7ffUL; } +unsigned long foo_0xfffdfffe7ffff7ff(void) { return 0xfffdfffe7ffff7ffUL; } +unsigned long foo_0xffffeffd7ffff7ff(void) { return 0xffffeffd7ffff7ffUL; } +unsigned long foo_0xffffbffd7ffff7ff(void) { return 0xffffbffd7ffff7ffUL; } +unsigned long foo_0xfffefffd7ffff7ff(void) { return 0xfffefffd7ffff7ffUL; } +unsigned long foo_0x7ffffffd7ffff7ff(void) { return 0x7ffffffd7ffff7ffUL; } +unsigned long foo_0xfffff7fb7ffff7ff(void) { return 0xfffff7fb7ffff7ffUL; } +unsigned long foo_0xffffeffb7ffff7ff(void) { return 0xffffeffb7ffff7ffUL; } +unsigned long foo_0xffffdffb7ffff7ff(void) { return 0xffffdffb7ffff7ffUL; } +unsigned long foo_0xffffbffb7ffff7ff(void) { return 0xffffbffb7ffff7ffUL; } +unsigned long foo_0xffff7ffb7ffff7ff(void) { return 0xffff7ffb7ffff7ffUL; } +unsigned long foo_0xfffefffb7ffff7ff(void) { return 0xfffefffb7ffff7ffUL; } +unsigned long foo_0xfffdfffb7ffff7ff(void) { return 0xfffdfffb7ffff7ffUL; } +unsigned long foo_0x7ffffffb7ffff7ff(void) { return 0x7ffffffb7ffff7ffUL; } +unsigned long foo_0xffffeff77ffff7ff(void) { return 0xffffeff77ffff7ffUL; } +unsigned long foo_0xffffbff77ffff7ff(void) { return 0xffffbff77ffff7ffUL; } +unsigned long foo_0xfffefff77ffff7ff(void) { return 0xfffefff77ffff7ffUL; } +unsigned long foo_0x7ffffff77ffff7ff(void) { return 0x7ffffff77ffff7ffUL; } +unsigned long foo_0xfffff7ef7ffff7ff(void) { return 0xfffff7ef7ffff7ffUL; } +unsigned long foo_0xffffefef7ffff7ff(void) { return 0xffffefef7ffff7ffUL; } +unsigned long foo_0xffffdfef7ffff7ff(void) { return 0xffffdfef7ffff7ffUL; } +unsigned long foo_0xffffbfef7ffff7ff(void) { return 0xffffbfef7ffff7ffUL; } +unsigned long foo_0xffff7fef7ffff7ff(void) { return 0xffff7fef7ffff7ffUL; } +unsigned long foo_0xfffeffef7ffff7ff(void) { return 0xfffeffef7ffff7ffUL; } +unsigned long foo_0xfffdffef7ffff7ff(void) { return 0xfffdffef7ffff7ffUL; } +unsigned long foo_0x7fffffef7ffff7ff(void) { return 0x7fffffef7ffff7ffUL; } +unsigned long foo_0xffffefdf7ffff7ff(void) { return 0xffffefdf7ffff7ffUL; } +unsigned long foo_0xffffbfdf7ffff7ff(void) { return 0xffffbfdf7ffff7ffUL; } +unsigned long foo_0xfffeffdf7ffff7ff(void) { return 0xfffeffdf7ffff7ffUL; } +unsigned long foo_0x7fffffdf7ffff7ff(void) { return 0x7fffffdf7ffff7ffUL; } +unsigned long foo_0xfffff7bf7ffff7ff(void) { return 0xfffff7bf7ffff7ffUL; } +unsigned long foo_0xffffefbf7ffff7ff(void) { return 0xffffefbf7ffff7ffUL; } +unsigned long foo_0xffffdfbf7ffff7ff(void) { return 0xffffdfbf7ffff7ffUL; } +unsigned long foo_0xffffbfbf7ffff7ff(void) { return 0xffffbfbf7ffff7ffUL; } +unsigned long foo_0xffff7fbf7ffff7ff(void) { return 0xffff7fbf7ffff7ffUL; } +unsigned long foo_0xfffeffbf7ffff7ff(void) { return 0xfffeffbf7ffff7ffUL; } +unsigned long foo_0xfffdffbf7ffff7ff(void) { return 0xfffdffbf7ffff7ffUL; } +unsigned long foo_0x7fffffbf7ffff7ff(void) { return 0x7fffffbf7ffff7ffUL; } +unsigned long foo_0xffffef7f7ffff7ff(void) { return 0xffffef7f7ffff7ffUL; } +unsigned long foo_0xffffbf7f7ffff7ff(void) { return 0xffffbf7f7ffff7ffUL; } +unsigned long foo_0xfffeff7f7ffff7ff(void) { return 0xfffeff7f7ffff7ffUL; } +unsigned long foo_0x7fffff7f7ffff7ff(void) { return 0x7fffff7f7ffff7ffUL; } +unsigned long foo_0xfffff6ff7ffff7ff(void) { return 0xfffff6ff7ffff7ffUL; } +unsigned long foo_0xffffeeff7ffff7ff(void) { return 0xffffeeff7ffff7ffUL; } +unsigned long foo_0xffffdeff7ffff7ff(void) { return 0xffffdeff7ffff7ffUL; } +unsigned long foo_0xffffbeff7ffff7ff(void) { return 0xffffbeff7ffff7ffUL; } +unsigned long foo_0xffff7eff7ffff7ff(void) { return 0xffff7eff7ffff7ffUL; } +unsigned long foo_0xfffefeff7ffff7ff(void) { return 0xfffefeff7ffff7ffUL; } +unsigned long foo_0xfffdfeff7ffff7ff(void) { return 0xfffdfeff7ffff7ffUL; } +unsigned long foo_0x7ffffeff7ffff7ff(void) { return 0x7ffffeff7ffff7ffUL; } +unsigned long foo_0xffffedff7ffff7ff(void) { return 0xffffedff7ffff7ffUL; } +unsigned long foo_0xffffbdff7ffff7ff(void) { return 0xffffbdff7ffff7ffUL; } +unsigned long foo_0xfffefdff7ffff7ff(void) { return 0xfffefdff7ffff7ffUL; } +unsigned long foo_0x7ffffdff7ffff7ff(void) { return 0x7ffffdff7ffff7ffUL; } +unsigned long foo_0xffffebff7ffff7ff(void) { return 0xffffebff7ffff7ffUL; } +unsigned long foo_0xffffdbff7ffff7ff(void) { return 0xffffdbff7ffff7ffUL; } +unsigned long foo_0xffffbbff7ffff7ff(void) { return 0xffffbbff7ffff7ffUL; } +unsigned long foo_0xffff7bff7ffff7ff(void) { return 0xffff7bff7ffff7ffUL; } +unsigned long foo_0xfffefbff7ffff7ff(void) { return 0xfffefbff7ffff7ffUL; } +unsigned long foo_0xfffdfbff7ffff7ff(void) { return 0xfffdfbff7ffff7ffUL; } +unsigned long foo_0xffffb7ff7ffff7ff(void) { return 0xffffb7ff7ffff7ffUL; } +unsigned long foo_0xfffef7ff7ffff7ff(void) { return 0xfffef7ff7ffff7ffUL; } +unsigned long foo_0xffffafff7ffff7ff(void) { return 0xffffafff7ffff7ffUL; } +unsigned long foo_0xffff6fff7ffff7ff(void) { return 0xffff6fff7ffff7ffUL; } +unsigned long foo_0xfffeefff7ffff7ff(void) { return 0xfffeefff7ffff7ffUL; } +unsigned long foo_0xfffdefff7ffff7ff(void) { return 0xfffdefff7ffff7ffUL; } +unsigned long foo_0xfffedfff7ffff7ff(void) { return 0xfffedfff7ffff7ffUL; } +unsigned long foo_0xfffebfff7ffff7ff(void) { return 0xfffebfff7ffff7ffUL; } +unsigned long foo_0xfffdbfff7ffff7ff(void) { return 0xfffdbfff7ffff7ffUL; } +unsigned long foo_0xfffff7fcfffff7ff(void) { return 0xfffff7fcfffff7ffUL; } +unsigned long foo_0xffffeffcfffff7ff(void) { return 0xffffeffcfffff7ffUL; } +unsigned long foo_0xffffdffcfffff7ff(void) { return 0xffffdffcfffff7ffUL; } +unsigned long foo_0xffffbffcfffff7ff(void) { return 0xffffbffcfffff7ffUL; } +unsigned long foo_0xffff7ffcfffff7ff(void) { return 0xffff7ffcfffff7ffUL; } +unsigned long foo_0xfffefffcfffff7ff(void) { return 0xfffefffcfffff7ffUL; } +unsigned long foo_0xfffdfffcfffff7ff(void) { return 0xfffdfffcfffff7ffUL; } +unsigned long foo_0xfffbfffcfffff7ff(void) { return 0xfffbfffcfffff7ffUL; } +unsigned long foo_0xfffff7fafffff7ff(void) { return 0xfffff7fafffff7ffUL; } +unsigned long foo_0xffffdffafffff7ff(void) { return 0xffffdffafffff7ffUL; } +unsigned long foo_0xffff7ffafffff7ff(void) { return 0xffff7ffafffff7ffUL; } +unsigned long foo_0xfffdfffafffff7ff(void) { return 0xfffdfffafffff7ffUL; } +unsigned long foo_0xfffff7f6fffff7ff(void) { return 0xfffff7f6fffff7ffUL; } +unsigned long foo_0xffffeff6fffff7ff(void) { return 0xffffeff6fffff7ffUL; } +unsigned long foo_0xffffdff6fffff7ff(void) { return 0xffffdff6fffff7ffUL; } +unsigned long foo_0xffffbff6fffff7ff(void) { return 0xffffbff6fffff7ffUL; } +unsigned long foo_0xffff7ff6fffff7ff(void) { return 0xffff7ff6fffff7ffUL; } +unsigned long foo_0xfffefff6fffff7ff(void) { return 0xfffefff6fffff7ffUL; } +unsigned long foo_0xfffdfff6fffff7ff(void) { return 0xfffdfff6fffff7ffUL; } +unsigned long foo_0xfffbfff6fffff7ff(void) { return 0xfffbfff6fffff7ffUL; } +unsigned long foo_0xfffff7eefffff7ff(void) { return 0xfffff7eefffff7ffUL; } +unsigned long foo_0xffffdfeefffff7ff(void) { return 0xffffdfeefffff7ffUL; } +unsigned long foo_0xffff7feefffff7ff(void) { return 0xffff7feefffff7ffUL; } +unsigned long foo_0xfffdffeefffff7ff(void) { return 0xfffdffeefffff7ffUL; } +unsigned long foo_0xfffff7defffff7ff(void) { return 0xfffff7defffff7ffUL; } +unsigned long foo_0xffffefdefffff7ff(void) { return 0xffffefdefffff7ffUL; } +unsigned long foo_0xffffdfdefffff7ff(void) { return 0xffffdfdefffff7ffUL; } +unsigned long foo_0xffffbfdefffff7ff(void) { return 0xffffbfdefffff7ffUL; } +unsigned long foo_0xffff7fdefffff7ff(void) { return 0xffff7fdefffff7ffUL; } +unsigned long foo_0xfffeffdefffff7ff(void) { return 0xfffeffdefffff7ffUL; } +unsigned long foo_0xfffdffdefffff7ff(void) { return 0xfffdffdefffff7ffUL; } +unsigned long foo_0xfffbffdefffff7ff(void) { return 0xfffbffdefffff7ffUL; } +unsigned long foo_0xfffff7befffff7ff(void) { return 0xfffff7befffff7ffUL; } +unsigned long foo_0xffffdfbefffff7ff(void) { return 0xffffdfbefffff7ffUL; } +unsigned long foo_0xffff7fbefffff7ff(void) { return 0xffff7fbefffff7ffUL; } +unsigned long foo_0xfffdffbefffff7ff(void) { return 0xfffdffbefffff7ffUL; } +unsigned long foo_0xfffff77efffff7ff(void) { return 0xfffff77efffff7ffUL; } +unsigned long foo_0xffffef7efffff7ff(void) { return 0xffffef7efffff7ffUL; } +unsigned long foo_0xffffdf7efffff7ff(void) { return 0xffffdf7efffff7ffUL; } +unsigned long foo_0xffffbf7efffff7ff(void) { return 0xffffbf7efffff7ffUL; } +unsigned long foo_0xffff7f7efffff7ff(void) { return 0xffff7f7efffff7ffUL; } +unsigned long foo_0xfffeff7efffff7ff(void) { return 0xfffeff7efffff7ffUL; } +unsigned long foo_0xfffdff7efffff7ff(void) { return 0xfffdff7efffff7ffUL; } +unsigned long foo_0xfffbff7efffff7ff(void) { return 0xfffbff7efffff7ffUL; } +unsigned long foo_0xfffff6fefffff7ff(void) { return 0xfffff6fefffff7ffUL; } +unsigned long foo_0xffffdefefffff7ff(void) { return 0xffffdefefffff7ffUL; } +unsigned long foo_0xffff7efefffff7ff(void) { return 0xffff7efefffff7ffUL; } +unsigned long foo_0xfffdfefefffff7ff(void) { return 0xfffdfefefffff7ffUL; } +unsigned long foo_0xffffedfefffff7ff(void) { return 0xffffedfefffff7ffUL; } +unsigned long foo_0xffffddfefffff7ff(void) { return 0xffffddfefffff7ffUL; } +unsigned long foo_0xffffbdfefffff7ff(void) { return 0xffffbdfefffff7ffUL; } +unsigned long foo_0xffff7dfefffff7ff(void) { return 0xffff7dfefffff7ffUL; } +unsigned long foo_0xfffefdfefffff7ff(void) { return 0xfffefdfefffff7ffUL; } +unsigned long foo_0xfffdfdfefffff7ff(void) { return 0xfffdfdfefffff7ffUL; } +unsigned long foo_0xfffbfdfefffff7ff(void) { return 0xfffbfdfefffff7ffUL; } +unsigned long foo_0xfffff3fefffff7ff(void) { return 0xfffff3fefffff7ffUL; } +unsigned long foo_0xffffdbfefffff7ff(void) { return 0xffffdbfefffff7ffUL; } +unsigned long foo_0xffff7bfefffff7ff(void) { return 0xffff7bfefffff7ffUL; } +unsigned long foo_0xfffdfbfefffff7ff(void) { return 0xfffdfbfefffff7ffUL; } +unsigned long foo_0xffffe7fefffff7ff(void) { return 0xffffe7fefffff7ffUL; } +unsigned long foo_0xffffb7fefffff7ff(void) { return 0xffffb7fefffff7ffUL; } +unsigned long foo_0xffff77fefffff7ff(void) { return 0xffff77fefffff7ffUL; } +unsigned long foo_0xfffef7fefffff7ff(void) { return 0xfffef7fefffff7ffUL; } +unsigned long foo_0xfffdf7fefffff7ff(void) { return 0xfffdf7fefffff7ffUL; } +unsigned long foo_0xfffbf7fefffff7ff(void) { return 0xfffbf7fefffff7ffUL; } +unsigned long foo_0xffffcffefffff7ff(void) { return 0xffffcffefffff7ffUL; } +unsigned long foo_0xffff6ffefffff7ff(void) { return 0xffff6ffefffff7ffUL; } +unsigned long foo_0xfffdeffefffff7ff(void) { return 0xfffdeffefffff7ffUL; } +unsigned long foo_0xffff9ffefffff7ff(void) { return 0xffff9ffefffff7ffUL; } +unsigned long foo_0xfffedffefffff7ff(void) { return 0xfffedffefffff7ffUL; } +unsigned long foo_0xfffddffefffff7ff(void) { return 0xfffddffefffff7ffUL; } +unsigned long foo_0xfffbdffefffff7ff(void) { return 0xfffbdffefffff7ffUL; } +unsigned long foo_0xffff3ffefffff7ff(void) { return 0xffff3ffefffff7ffUL; } +unsigned long foo_0xfffdbffefffff7ff(void) { return 0xfffdbffefffff7ffUL; } +unsigned long foo_0xfffe7ffefffff7ff(void) { return 0xfffe7ffefffff7ffUL; } +unsigned long foo_0xfffb7ffefffff7ff(void) { return 0xfffb7ffefffff7ffUL; } +unsigned long foo_0xfffcfffefffff7ff(void) { return 0xfffcfffefffff7ffUL; } +unsigned long foo_0xfff9fffefffff7ff(void) { return 0xfff9fffefffff7ffUL; } +unsigned long foo_0xffffeff9fffff7ff(void) { return 0xffffeff9fffff7ffUL; } +unsigned long foo_0xffffdff9fffff7ff(void) { return 0xffffdff9fffff7ffUL; } +unsigned long foo_0xffffbff9fffff7ff(void) { return 0xffffbff9fffff7ffUL; } +unsigned long foo_0xffff7ff9fffff7ff(void) { return 0xffff7ff9fffff7ffUL; } +unsigned long foo_0xfffefff9fffff7ff(void) { return 0xfffefff9fffff7ffUL; } +unsigned long foo_0xfffdfff9fffff7ff(void) { return 0xfffdfff9fffff7ffUL; } +unsigned long foo_0xfffbfff9fffff7ff(void) { return 0xfffbfff9fffff7ffUL; } +unsigned long foo_0xfff7fff9fffff7ff(void) { return 0xfff7fff9fffff7ffUL; } +unsigned long foo_0xffffeff5fffff7ff(void) { return 0xffffeff5fffff7ffUL; } +unsigned long foo_0xffffbff5fffff7ff(void) { return 0xffffbff5fffff7ffUL; } +unsigned long foo_0xfffefff5fffff7ff(void) { return 0xfffefff5fffff7ffUL; } +unsigned long foo_0xfffbfff5fffff7ff(void) { return 0xfffbfff5fffff7ffUL; } +unsigned long foo_0xffffefedfffff7ff(void) { return 0xffffefedfffff7ffUL; } +unsigned long foo_0xffffdfedfffff7ff(void) { return 0xffffdfedfffff7ffUL; } +unsigned long foo_0xffffbfedfffff7ff(void) { return 0xffffbfedfffff7ffUL; } +unsigned long foo_0xffff7fedfffff7ff(void) { return 0xffff7fedfffff7ffUL; } +unsigned long foo_0xfffeffedfffff7ff(void) { return 0xfffeffedfffff7ffUL; } +unsigned long foo_0xfffdffedfffff7ff(void) { return 0xfffdffedfffff7ffUL; } +unsigned long foo_0xfffbffedfffff7ff(void) { return 0xfffbffedfffff7ffUL; } +unsigned long foo_0xfff7ffedfffff7ff(void) { return 0xfff7ffedfffff7ffUL; } +unsigned long foo_0xffffefddfffff7ff(void) { return 0xffffefddfffff7ffUL; } +unsigned long foo_0xffffbfddfffff7ff(void) { return 0xffffbfddfffff7ffUL; } +unsigned long foo_0xfffeffddfffff7ff(void) { return 0xfffeffddfffff7ffUL; } +unsigned long foo_0xfffbffddfffff7ff(void) { return 0xfffbffddfffff7ffUL; } +unsigned long foo_0xffffefbdfffff7ff(void) { return 0xffffefbdfffff7ffUL; } +unsigned long foo_0xffffdfbdfffff7ff(void) { return 0xffffdfbdfffff7ffUL; } +unsigned long foo_0xffffbfbdfffff7ff(void) { return 0xffffbfbdfffff7ffUL; } +unsigned long foo_0xffff7fbdfffff7ff(void) { return 0xffff7fbdfffff7ffUL; } +unsigned long foo_0xfffeffbdfffff7ff(void) { return 0xfffeffbdfffff7ffUL; } +unsigned long foo_0xfffdffbdfffff7ff(void) { return 0xfffdffbdfffff7ffUL; } +unsigned long foo_0xfffbffbdfffff7ff(void) { return 0xfffbffbdfffff7ffUL; } +unsigned long foo_0xfff7ffbdfffff7ff(void) { return 0xfff7ffbdfffff7ffUL; } +unsigned long foo_0xffffef7dfffff7ff(void) { return 0xffffef7dfffff7ffUL; } +unsigned long foo_0xffffbf7dfffff7ff(void) { return 0xffffbf7dfffff7ffUL; } +unsigned long foo_0xfffeff7dfffff7ff(void) { return 0xfffeff7dfffff7ffUL; } +unsigned long foo_0xfffbff7dfffff7ff(void) { return 0xfffbff7dfffff7ffUL; } +unsigned long foo_0xffffeefdfffff7ff(void) { return 0xffffeefdfffff7ffUL; } +unsigned long foo_0xffffdefdfffff7ff(void) { return 0xffffdefdfffff7ffUL; } +unsigned long foo_0xffffbefdfffff7ff(void) { return 0xffffbefdfffff7ffUL; } +unsigned long foo_0xffff7efdfffff7ff(void) { return 0xffff7efdfffff7ffUL; } +unsigned long foo_0xfffefefdfffff7ff(void) { return 0xfffefefdfffff7ffUL; } +unsigned long foo_0xfffdfefdfffff7ff(void) { return 0xfffdfefdfffff7ffUL; } +unsigned long foo_0xfffbfefdfffff7ff(void) { return 0xfffbfefdfffff7ffUL; } +unsigned long foo_0xfff7fefdfffff7ff(void) { return 0xfff7fefdfffff7ffUL; } +unsigned long foo_0xffffbdfdfffff7ff(void) { return 0xffffbdfdfffff7ffUL; } +unsigned long foo_0xfffefdfdfffff7ff(void) { return 0xfffefdfdfffff7ffUL; } +unsigned long foo_0xfffbfdfdfffff7ff(void) { return 0xfffbfdfdfffff7ffUL; } +unsigned long foo_0xffffebfdfffff7ff(void) { return 0xffffebfdfffff7ffUL; } +unsigned long foo_0xffffbbfdfffff7ff(void) { return 0xffffbbfdfffff7ffUL; } +unsigned long foo_0xffff7bfdfffff7ff(void) { return 0xffff7bfdfffff7ffUL; } +unsigned long foo_0xfffefbfdfffff7ff(void) { return 0xfffefbfdfffff7ffUL; } +unsigned long foo_0xfffdfbfdfffff7ff(void) { return 0xfffdfbfdfffff7ffUL; } +unsigned long foo_0xfffbfbfdfffff7ff(void) { return 0xfffbfbfdfffff7ffUL; } +unsigned long foo_0xfff7fbfdfffff7ff(void) { return 0xfff7fbfdfffff7ffUL; } +unsigned long foo_0xffffe7fdfffff7ff(void) { return 0xffffe7fdfffff7ffUL; } +unsigned long foo_0xfffef7fdfffff7ff(void) { return 0xfffef7fdfffff7ffUL; } +unsigned long foo_0xfffbf7fdfffff7ff(void) { return 0xfffbf7fdfffff7ffUL; } +unsigned long foo_0xffffcffdfffff7ff(void) { return 0xffffcffdfffff7ffUL; } +unsigned long foo_0xffffaffdfffff7ff(void) { return 0xffffaffdfffff7ffUL; } +unsigned long foo_0xfffeeffdfffff7ff(void) { return 0xfffeeffdfffff7ffUL; } +unsigned long foo_0xfffdeffdfffff7ff(void) { return 0xfffdeffdfffff7ffUL; } +unsigned long foo_0xfffbeffdfffff7ff(void) { return 0xfffbeffdfffff7ffUL; } +unsigned long foo_0xfff7effdfffff7ff(void) { return 0xfff7effdfffff7ffUL; } +unsigned long foo_0xffff9ffdfffff7ff(void) { return 0xffff9ffdfffff7ffUL; } +unsigned long foo_0xfffbdffdfffff7ff(void) { return 0xfffbdffdfffff7ffUL; } +unsigned long foo_0xffff3ffdfffff7ff(void) { return 0xffff3ffdfffff7ffUL; } +unsigned long foo_0xfffebffdfffff7ff(void) { return 0xfffebffdfffff7ffUL; } +unsigned long foo_0xfffbbffdfffff7ff(void) { return 0xfffbbffdfffff7ffUL; } +unsigned long foo_0xfff7bffdfffff7ff(void) { return 0xfff7bffdfffff7ffUL; } +unsigned long foo_0xfffe7ffdfffff7ff(void) { return 0xfffe7ffdfffff7ffUL; } +unsigned long foo_0xfffcfffdfffff7ff(void) { return 0xfffcfffdfffff7ffUL; } +unsigned long foo_0xfffafffdfffff7ff(void) { return 0xfffafffdfffff7ffUL; } +unsigned long foo_0xfff9fffdfffff7ff(void) { return 0xfff9fffdfffff7ffUL; } +unsigned long foo_0xfff3fffdfffff7ff(void) { return 0xfff3fffdfffff7ffUL; } +unsigned long foo_0xffffdff3fffff7ff(void) { return 0xffffdff3fffff7ffUL; } +unsigned long foo_0xffffbff3fffff7ff(void) { return 0xffffbff3fffff7ffUL; } +unsigned long foo_0xffff7ff3fffff7ff(void) { return 0xffff7ff3fffff7ffUL; } +unsigned long foo_0xfffefff3fffff7ff(void) { return 0xfffefff3fffff7ffUL; } +unsigned long foo_0xfffdfff3fffff7ff(void) { return 0xfffdfff3fffff7ffUL; } +unsigned long foo_0xfffbfff3fffff7ff(void) { return 0xfffbfff3fffff7ffUL; } +unsigned long foo_0xfff7fff3fffff7ff(void) { return 0xfff7fff3fffff7ffUL; } +unsigned long foo_0xffeffff3fffff7ff(void) { return 0xffeffff3fffff7ffUL; } +unsigned long foo_0xffffdfebfffff7ff(void) { return 0xffffdfebfffff7ffUL; } +unsigned long foo_0xffff7febfffff7ff(void) { return 0xffff7febfffff7ffUL; } +unsigned long foo_0xfffdffebfffff7ff(void) { return 0xfffdffebfffff7ffUL; } +unsigned long foo_0xfff7ffebfffff7ff(void) { return 0xfff7ffebfffff7ffUL; } +unsigned long foo_0xffffdfdbfffff7ff(void) { return 0xffffdfdbfffff7ffUL; } +unsigned long foo_0xffffbfdbfffff7ff(void) { return 0xffffbfdbfffff7ffUL; } +unsigned long foo_0xffff7fdbfffff7ff(void) { return 0xffff7fdbfffff7ffUL; } +unsigned long foo_0xfffeffdbfffff7ff(void) { return 0xfffeffdbfffff7ffUL; } +unsigned long foo_0xfffdffdbfffff7ff(void) { return 0xfffdffdbfffff7ffUL; } +unsigned long foo_0xfffbffdbfffff7ff(void) { return 0xfffbffdbfffff7ffUL; } +unsigned long foo_0xfff7ffdbfffff7ff(void) { return 0xfff7ffdbfffff7ffUL; } +unsigned long foo_0xffefffdbfffff7ff(void) { return 0xffefffdbfffff7ffUL; } +unsigned long foo_0xffffdfbbfffff7ff(void) { return 0xffffdfbbfffff7ffUL; } +unsigned long foo_0xffff7fbbfffff7ff(void) { return 0xffff7fbbfffff7ffUL; } +unsigned long foo_0xfffdffbbfffff7ff(void) { return 0xfffdffbbfffff7ffUL; } +unsigned long foo_0xfff7ffbbfffff7ff(void) { return 0xfff7ffbbfffff7ffUL; } +unsigned long foo_0xffffdf7bfffff7ff(void) { return 0xffffdf7bfffff7ffUL; } +unsigned long foo_0xffffbf7bfffff7ff(void) { return 0xffffbf7bfffff7ffUL; } +unsigned long foo_0xffff7f7bfffff7ff(void) { return 0xffff7f7bfffff7ffUL; } +unsigned long foo_0xfffeff7bfffff7ff(void) { return 0xfffeff7bfffff7ffUL; } +unsigned long foo_0xfffdff7bfffff7ff(void) { return 0xfffdff7bfffff7ffUL; } +unsigned long foo_0xfffbff7bfffff7ff(void) { return 0xfffbff7bfffff7ffUL; } +unsigned long foo_0xfff7ff7bfffff7ff(void) { return 0xfff7ff7bfffff7ffUL; } +unsigned long foo_0xffefff7bfffff7ff(void) { return 0xffefff7bfffff7ffUL; } +unsigned long foo_0xffffdefbfffff7ff(void) { return 0xffffdefbfffff7ffUL; } +unsigned long foo_0xffff7efbfffff7ff(void) { return 0xffff7efbfffff7ffUL; } +unsigned long foo_0xfffdfefbfffff7ff(void) { return 0xfffdfefbfffff7ffUL; } +unsigned long foo_0xfff7fefbfffff7ff(void) { return 0xfff7fefbfffff7ffUL; } +unsigned long foo_0xffffddfbfffff7ff(void) { return 0xffffddfbfffff7ffUL; } +unsigned long foo_0xffffbdfbfffff7ff(void) { return 0xffffbdfbfffff7ffUL; } +unsigned long foo_0xffff7dfbfffff7ff(void) { return 0xffff7dfbfffff7ffUL; } +unsigned long foo_0xfffefdfbfffff7ff(void) { return 0xfffefdfbfffff7ffUL; } +unsigned long foo_0xfffdfdfbfffff7ff(void) { return 0xfffdfdfbfffff7ffUL; } +unsigned long foo_0xfffbfdfbfffff7ff(void) { return 0xfffbfdfbfffff7ffUL; } +unsigned long foo_0xfff7fdfbfffff7ff(void) { return 0xfff7fdfbfffff7ffUL; } +unsigned long foo_0xffeffdfbfffff7ff(void) { return 0xffeffdfbfffff7ffUL; } +unsigned long foo_0xffffdbfbfffff7ff(void) { return 0xffffdbfbfffff7ffUL; } +unsigned long foo_0xffff7bfbfffff7ff(void) { return 0xffff7bfbfffff7ffUL; } +unsigned long foo_0xfffdfbfbfffff7ff(void) { return 0xfffdfbfbfffff7ffUL; } +unsigned long foo_0xfff7fbfbfffff7ff(void) { return 0xfff7fbfbfffff7ffUL; } +unsigned long foo_0xffffd7fbfffff7ff(void) { return 0xffffd7fbfffff7ffUL; } +unsigned long foo_0xffffb7fbfffff7ff(void) { return 0xffffb7fbfffff7ffUL; } +unsigned long foo_0xffff77fbfffff7ff(void) { return 0xffff77fbfffff7ffUL; } +unsigned long foo_0xfffef7fbfffff7ff(void) { return 0xfffef7fbfffff7ffUL; } +unsigned long foo_0xfffdf7fbfffff7ff(void) { return 0xfffdf7fbfffff7ffUL; } +unsigned long foo_0xfffbf7fbfffff7ff(void) { return 0xfffbf7fbfffff7ffUL; } +unsigned long foo_0xfff7f7fbfffff7ff(void) { return 0xfff7f7fbfffff7ffUL; } +unsigned long foo_0xffeff7fbfffff7ff(void) { return 0xffeff7fbfffff7ffUL; } +unsigned long foo_0xffffcffbfffff7ff(void) { return 0xffffcffbfffff7ffUL; } +unsigned long foo_0xffff6ffbfffff7ff(void) { return 0xffff6ffbfffff7ffUL; } +unsigned long foo_0xfffdeffbfffff7ff(void) { return 0xfffdeffbfffff7ffUL; } +unsigned long foo_0xfff7effbfffff7ff(void) { return 0xfff7effbfffff7ffUL; } +unsigned long foo_0xffff9ffbfffff7ff(void) { return 0xffff9ffbfffff7ffUL; } +unsigned long foo_0xffff5ffbfffff7ff(void) { return 0xffff5ffbfffff7ffUL; } +unsigned long foo_0xfffedffbfffff7ff(void) { return 0xfffedffbfffff7ffUL; } +unsigned long foo_0xfffddffbfffff7ff(void) { return 0xfffddffbfffff7ffUL; } +unsigned long foo_0xfffbdffbfffff7ff(void) { return 0xfffbdffbfffff7ffUL; } +unsigned long foo_0xfff7dffbfffff7ff(void) { return 0xfff7dffbfffff7ffUL; } +unsigned long foo_0xffefdffbfffff7ff(void) { return 0xffefdffbfffff7ffUL; } +unsigned long foo_0xffff3ffbfffff7ff(void) { return 0xffff3ffbfffff7ffUL; } +unsigned long foo_0xfffdbffbfffff7ff(void) { return 0xfffdbffbfffff7ffUL; } +unsigned long foo_0xfff7bffbfffff7ff(void) { return 0xfff7bffbfffff7ffUL; } +unsigned long foo_0xfffe7ffbfffff7ff(void) { return 0xfffe7ffbfffff7ffUL; } +unsigned long foo_0xfffd7ffbfffff7ff(void) { return 0xfffd7ffbfffff7ffUL; } +unsigned long foo_0xfffb7ffbfffff7ff(void) { return 0xfffb7ffbfffff7ffUL; } +unsigned long foo_0xfff77ffbfffff7ff(void) { return 0xfff77ffbfffff7ffUL; } +unsigned long foo_0xffef7ffbfffff7ff(void) { return 0xffef7ffbfffff7ffUL; } +unsigned long foo_0xfffcfffbfffff7ff(void) { return 0xfffcfffbfffff7ffUL; } +unsigned long foo_0xfff6fffbfffff7ff(void) { return 0xfff6fffbfffff7ffUL; } +unsigned long foo_0xfff9fffbfffff7ff(void) { return 0xfff9fffbfffff7ffUL; } +unsigned long foo_0xfff5fffbfffff7ff(void) { return 0xfff5fffbfffff7ffUL; } +unsigned long foo_0xffedfffbfffff7ff(void) { return 0xffedfffbfffff7ffUL; } +unsigned long foo_0xfff3fffbfffff7ff(void) { return 0xfff3fffbfffff7ffUL; } +unsigned long foo_0xffe7fffbfffff7ff(void) { return 0xffe7fffbfffff7ffUL; } +unsigned long foo_0xffffbfe7fffff7ff(void) { return 0xffffbfe7fffff7ffUL; } +unsigned long foo_0xffff7fe7fffff7ff(void) { return 0xffff7fe7fffff7ffUL; } +unsigned long foo_0xfffeffe7fffff7ff(void) { return 0xfffeffe7fffff7ffUL; } +unsigned long foo_0xfffdffe7fffff7ff(void) { return 0xfffdffe7fffff7ffUL; } +unsigned long foo_0xfffbffe7fffff7ff(void) { return 0xfffbffe7fffff7ffUL; } +unsigned long foo_0xfff7ffe7fffff7ff(void) { return 0xfff7ffe7fffff7ffUL; } +unsigned long foo_0xffefffe7fffff7ff(void) { return 0xffefffe7fffff7ffUL; } +unsigned long foo_0xffdfffe7fffff7ff(void) { return 0xffdfffe7fffff7ffUL; } +unsigned long foo_0xffffbfd7fffff7ff(void) { return 0xffffbfd7fffff7ffUL; } +unsigned long foo_0xfffeffd7fffff7ff(void) { return 0xfffeffd7fffff7ffUL; } +unsigned long foo_0xfffbffd7fffff7ff(void) { return 0xfffbffd7fffff7ffUL; } +unsigned long foo_0xffefffd7fffff7ff(void) { return 0xffefffd7fffff7ffUL; } +unsigned long foo_0xffffbfb7fffff7ff(void) { return 0xffffbfb7fffff7ffUL; } +unsigned long foo_0xffff7fb7fffff7ff(void) { return 0xffff7fb7fffff7ffUL; } +unsigned long foo_0xfffeffb7fffff7ff(void) { return 0xfffeffb7fffff7ffUL; } +unsigned long foo_0xfffdffb7fffff7ff(void) { return 0xfffdffb7fffff7ffUL; } +unsigned long foo_0xfffbffb7fffff7ff(void) { return 0xfffbffb7fffff7ffUL; } +unsigned long foo_0xfff7ffb7fffff7ff(void) { return 0xfff7ffb7fffff7ffUL; } +unsigned long foo_0xffefffb7fffff7ff(void) { return 0xffefffb7fffff7ffUL; } +unsigned long foo_0xffdfffb7fffff7ff(void) { return 0xffdfffb7fffff7ffUL; } +unsigned long foo_0xffffbf77fffff7ff(void) { return 0xffffbf77fffff7ffUL; } +unsigned long foo_0xfffeff77fffff7ff(void) { return 0xfffeff77fffff7ffUL; } +unsigned long foo_0xfffbff77fffff7ff(void) { return 0xfffbff77fffff7ffUL; } +unsigned long foo_0xffefff77fffff7ff(void) { return 0xffefff77fffff7ffUL; } +unsigned long foo_0xffffbef7fffff7ff(void) { return 0xffffbef7fffff7ffUL; } +unsigned long foo_0xffff7ef7fffff7ff(void) { return 0xffff7ef7fffff7ffUL; } +unsigned long foo_0xfffefef7fffff7ff(void) { return 0xfffefef7fffff7ffUL; } +unsigned long foo_0xfffdfef7fffff7ff(void) { return 0xfffdfef7fffff7ffUL; } +unsigned long foo_0xfffbfef7fffff7ff(void) { return 0xfffbfef7fffff7ffUL; } +unsigned long foo_0xfff7fef7fffff7ff(void) { return 0xfff7fef7fffff7ffUL; } +unsigned long foo_0xffeffef7fffff7ff(void) { return 0xffeffef7fffff7ffUL; } +unsigned long foo_0xffdffef7fffff7ff(void) { return 0xffdffef7fffff7ffUL; } +unsigned long foo_0xffffbdf7fffff7ff(void) { return 0xffffbdf7fffff7ffUL; } +unsigned long foo_0xfffefdf7fffff7ff(void) { return 0xfffefdf7fffff7ffUL; } +unsigned long foo_0xfffbfdf7fffff7ff(void) { return 0xfffbfdf7fffff7ffUL; } +unsigned long foo_0xffeffdf7fffff7ff(void) { return 0xffeffdf7fffff7ffUL; } +unsigned long foo_0xffffbbf7fffff7ff(void) { return 0xffffbbf7fffff7ffUL; } +unsigned long foo_0xffff7bf7fffff7ff(void) { return 0xffff7bf7fffff7ffUL; } +unsigned long foo_0xfffefbf7fffff7ff(void) { return 0xfffefbf7fffff7ffUL; } +unsigned long foo_0xfffdfbf7fffff7ff(void) { return 0xfffdfbf7fffff7ffUL; } +unsigned long foo_0xfffbfbf7fffff7ff(void) { return 0xfffbfbf7fffff7ffUL; } +unsigned long foo_0xfff7fbf7fffff7ff(void) { return 0xfff7fbf7fffff7ffUL; } +unsigned long foo_0xffeffbf7fffff7ff(void) { return 0xffeffbf7fffff7ffUL; } +unsigned long foo_0xffdffbf7fffff7ff(void) { return 0xffdffbf7fffff7ffUL; } +unsigned long foo_0xffffb7f7fffff7ff(void) { return 0xffffb7f7fffff7ffUL; } +unsigned long foo_0xfffef7f7fffff7ff(void) { return 0xfffef7f7fffff7ffUL; } +unsigned long foo_0xfffbf7f7fffff7ff(void) { return 0xfffbf7f7fffff7ffUL; } +unsigned long foo_0xffeff7f7fffff7ff(void) { return 0xffeff7f7fffff7ffUL; } +unsigned long foo_0xffffaff7fffff7ff(void) { return 0xffffaff7fffff7ffUL; } +unsigned long foo_0xffff6ff7fffff7ff(void) { return 0xffff6ff7fffff7ffUL; } +unsigned long foo_0xfffeeff7fffff7ff(void) { return 0xfffeeff7fffff7ffUL; } +unsigned long foo_0xfffdeff7fffff7ff(void) { return 0xfffdeff7fffff7ffUL; } +unsigned long foo_0xfffbeff7fffff7ff(void) { return 0xfffbeff7fffff7ffUL; } +unsigned long foo_0xfff7eff7fffff7ff(void) { return 0xfff7eff7fffff7ffUL; } +unsigned long foo_0xffefeff7fffff7ff(void) { return 0xffefeff7fffff7ffUL; } +unsigned long foo_0xffdfeff7fffff7ff(void) { return 0xffdfeff7fffff7ffUL; } +unsigned long foo_0xffff9ff7fffff7ff(void) { return 0xffff9ff7fffff7ffUL; } +unsigned long foo_0xfffedff7fffff7ff(void) { return 0xfffedff7fffff7ffUL; } +unsigned long foo_0xfffbdff7fffff7ff(void) { return 0xfffbdff7fffff7ffUL; } +unsigned long foo_0xffefdff7fffff7ff(void) { return 0xffefdff7fffff7ffUL; } +unsigned long foo_0xffff3ff7fffff7ff(void) { return 0xffff3ff7fffff7ffUL; } +unsigned long foo_0xfffebff7fffff7ff(void) { return 0xfffebff7fffff7ffUL; } +unsigned long foo_0xfffdbff7fffff7ff(void) { return 0xfffdbff7fffff7ffUL; } +unsigned long foo_0xfffbbff7fffff7ff(void) { return 0xfffbbff7fffff7ffUL; } +unsigned long foo_0xfff7bff7fffff7ff(void) { return 0xfff7bff7fffff7ffUL; } +unsigned long foo_0xffefbff7fffff7ff(void) { return 0xffefbff7fffff7ffUL; } +unsigned long foo_0xffdfbff7fffff7ff(void) { return 0xffdfbff7fffff7ffUL; } +unsigned long foo_0xfffe7ff7fffff7ff(void) { return 0xfffe7ff7fffff7ffUL; } +unsigned long foo_0xfffb7ff7fffff7ff(void) { return 0xfffb7ff7fffff7ffUL; } +unsigned long foo_0xffef7ff7fffff7ff(void) { return 0xffef7ff7fffff7ffUL; } +unsigned long foo_0xfffcfff7fffff7ff(void) { return 0xfffcfff7fffff7ffUL; } +unsigned long foo_0xfffafff7fffff7ff(void) { return 0xfffafff7fffff7ffUL; } +unsigned long foo_0xfff6fff7fffff7ff(void) { return 0xfff6fff7fffff7ffUL; } +unsigned long foo_0xffeefff7fffff7ff(void) { return 0xffeefff7fffff7ffUL; } +unsigned long foo_0xffdefff7fffff7ff(void) { return 0xffdefff7fffff7ffUL; } +unsigned long foo_0xfff9fff7fffff7ff(void) { return 0xfff9fff7fffff7ffUL; } +unsigned long foo_0xffedfff7fffff7ff(void) { return 0xffedfff7fffff7ffUL; } +unsigned long foo_0xfff3fff7fffff7ff(void) { return 0xfff3fff7fffff7ffUL; } +unsigned long foo_0xffebfff7fffff7ff(void) { return 0xffebfff7fffff7ffUL; } +unsigned long foo_0xffdbfff7fffff7ff(void) { return 0xffdbfff7fffff7ffUL; } +unsigned long foo_0xffe7fff7fffff7ff(void) { return 0xffe7fff7fffff7ffUL; } +unsigned long foo_0xffcffff7fffff7ff(void) { return 0xffcffff7fffff7ffUL; } +unsigned long foo_0xffff7fcffffff7ff(void) { return 0xffff7fcffffff7ffUL; } +unsigned long foo_0xfffeffcffffff7ff(void) { return 0xfffeffcffffff7ffUL; } +unsigned long foo_0xfffdffcffffff7ff(void) { return 0xfffdffcffffff7ffUL; } +unsigned long foo_0xfffbffcffffff7ff(void) { return 0xfffbffcffffff7ffUL; } +unsigned long foo_0xfff7ffcffffff7ff(void) { return 0xfff7ffcffffff7ffUL; } +unsigned long foo_0xffefffcffffff7ff(void) { return 0xffefffcffffff7ffUL; } +unsigned long foo_0xffdfffcffffff7ff(void) { return 0xffdfffcffffff7ffUL; } +unsigned long foo_0xffbfffcffffff7ff(void) { return 0xffbfffcffffff7ffUL; } +unsigned long foo_0xffff7faffffff7ff(void) { return 0xffff7faffffff7ffUL; } +unsigned long foo_0xfffdffaffffff7ff(void) { return 0xfffdffaffffff7ffUL; } +unsigned long foo_0xfff7ffaffffff7ff(void) { return 0xfff7ffaffffff7ffUL; } +unsigned long foo_0xffdfffaffffff7ff(void) { return 0xffdfffaffffff7ffUL; } +unsigned long foo_0xffff7f6ffffff7ff(void) { return 0xffff7f6ffffff7ffUL; } +unsigned long foo_0xfffeff6ffffff7ff(void) { return 0xfffeff6ffffff7ffUL; } +unsigned long foo_0xfffdff6ffffff7ff(void) { return 0xfffdff6ffffff7ffUL; } +unsigned long foo_0xfffbff6ffffff7ff(void) { return 0xfffbff6ffffff7ffUL; } +unsigned long foo_0xfff7ff6ffffff7ff(void) { return 0xfff7ff6ffffff7ffUL; } +unsigned long foo_0xffefff6ffffff7ff(void) { return 0xffefff6ffffff7ffUL; } +unsigned long foo_0xffdfff6ffffff7ff(void) { return 0xffdfff6ffffff7ffUL; } +unsigned long foo_0xffbfff6ffffff7ff(void) { return 0xffbfff6ffffff7ffUL; } +unsigned long foo_0xffff7eeffffff7ff(void) { return 0xffff7eeffffff7ffUL; } +unsigned long foo_0xfffdfeeffffff7ff(void) { return 0xfffdfeeffffff7ffUL; } +unsigned long foo_0xfff7feeffffff7ff(void) { return 0xfff7feeffffff7ffUL; } +unsigned long foo_0xffdffeeffffff7ff(void) { return 0xffdffeeffffff7ffUL; } +unsigned long foo_0xffff7deffffff7ff(void) { return 0xffff7deffffff7ffUL; } +unsigned long foo_0xfffefdeffffff7ff(void) { return 0xfffefdeffffff7ffUL; } +unsigned long foo_0xfffdfdeffffff7ff(void) { return 0xfffdfdeffffff7ffUL; } +unsigned long foo_0xfffbfdeffffff7ff(void) { return 0xfffbfdeffffff7ffUL; } +unsigned long foo_0xfff7fdeffffff7ff(void) { return 0xfff7fdeffffff7ffUL; } +unsigned long foo_0xffeffdeffffff7ff(void) { return 0xffeffdeffffff7ffUL; } +unsigned long foo_0xffdffdeffffff7ff(void) { return 0xffdffdeffffff7ffUL; } +unsigned long foo_0xffbffdeffffff7ff(void) { return 0xffbffdeffffff7ffUL; } +unsigned long foo_0xffff7beffffff7ff(void) { return 0xffff7beffffff7ffUL; } +unsigned long foo_0xfffdfbeffffff7ff(void) { return 0xfffdfbeffffff7ffUL; } +unsigned long foo_0xfff7fbeffffff7ff(void) { return 0xfff7fbeffffff7ffUL; } +unsigned long foo_0xffdffbeffffff7ff(void) { return 0xffdffbeffffff7ffUL; } +unsigned long foo_0xffff77effffff7ff(void) { return 0xffff77effffff7ffUL; } +unsigned long foo_0xfffef7effffff7ff(void) { return 0xfffef7effffff7ffUL; } +unsigned long foo_0xfffdf7effffff7ff(void) { return 0xfffdf7effffff7ffUL; } +unsigned long foo_0xfffbf7effffff7ff(void) { return 0xfffbf7effffff7ffUL; } +unsigned long foo_0xfff7f7effffff7ff(void) { return 0xfff7f7effffff7ffUL; } +unsigned long foo_0xffeff7effffff7ff(void) { return 0xffeff7effffff7ffUL; } +unsigned long foo_0xffdff7effffff7ff(void) { return 0xffdff7effffff7ffUL; } +unsigned long foo_0xffbff7effffff7ff(void) { return 0xffbff7effffff7ffUL; } +unsigned long foo_0xffff6feffffff7ff(void) { return 0xffff6feffffff7ffUL; } +unsigned long foo_0xfffdefeffffff7ff(void) { return 0xfffdefeffffff7ffUL; } +unsigned long foo_0xfff7efeffffff7ff(void) { return 0xfff7efeffffff7ffUL; } +unsigned long foo_0xffdfefeffffff7ff(void) { return 0xffdfefeffffff7ffUL; } +unsigned long foo_0xffff5feffffff7ff(void) { return 0xffff5feffffff7ffUL; } +unsigned long foo_0xfffedfeffffff7ff(void) { return 0xfffedfeffffff7ffUL; } +unsigned long foo_0xfffddfeffffff7ff(void) { return 0xfffddfeffffff7ffUL; } +unsigned long foo_0xfffbdfeffffff7ff(void) { return 0xfffbdfeffffff7ffUL; } +unsigned long foo_0xfff7dfeffffff7ff(void) { return 0xfff7dfeffffff7ffUL; } +unsigned long foo_0xffefdfeffffff7ff(void) { return 0xffefdfeffffff7ffUL; } +unsigned long foo_0xffdfdfeffffff7ff(void) { return 0xffdfdfeffffff7ffUL; } +unsigned long foo_0xffbfdfeffffff7ff(void) { return 0xffbfdfeffffff7ffUL; } +unsigned long foo_0xffff3feffffff7ff(void) { return 0xffff3feffffff7ffUL; } +unsigned long foo_0xfffdbfeffffff7ff(void) { return 0xfffdbfeffffff7ffUL; } +unsigned long foo_0xfff7bfeffffff7ff(void) { return 0xfff7bfeffffff7ffUL; } +unsigned long foo_0xffdfbfeffffff7ff(void) { return 0xffdfbfeffffff7ffUL; } +unsigned long foo_0xfffe7feffffff7ff(void) { return 0xfffe7feffffff7ffUL; } +unsigned long foo_0xfffd7feffffff7ff(void) { return 0xfffd7feffffff7ffUL; } +unsigned long foo_0xfffb7feffffff7ff(void) { return 0xfffb7feffffff7ffUL; } +unsigned long foo_0xfff77feffffff7ff(void) { return 0xfff77feffffff7ffUL; } +unsigned long foo_0xffef7feffffff7ff(void) { return 0xffef7feffffff7ffUL; } +unsigned long foo_0xffdf7feffffff7ff(void) { return 0xffdf7feffffff7ffUL; } +unsigned long foo_0xffbf7feffffff7ff(void) { return 0xffbf7feffffff7ffUL; } +unsigned long foo_0xfffcffeffffff7ff(void) { return 0xfffcffeffffff7ffUL; } +unsigned long foo_0xfff6ffeffffff7ff(void) { return 0xfff6ffeffffff7ffUL; } +unsigned long foo_0xffdeffeffffff7ff(void) { return 0xffdeffeffffff7ffUL; } +unsigned long foo_0xfff9ffeffffff7ff(void) { return 0xfff9ffeffffff7ffUL; } +unsigned long foo_0xfff5ffeffffff7ff(void) { return 0xfff5ffeffffff7ffUL; } +unsigned long foo_0xffedffeffffff7ff(void) { return 0xffedffeffffff7ffUL; } +unsigned long foo_0xffddffeffffff7ff(void) { return 0xffddffeffffff7ffUL; } +unsigned long foo_0xffbdffeffffff7ff(void) { return 0xffbdffeffffff7ffUL; } +unsigned long foo_0xfff3ffeffffff7ff(void) { return 0xfff3ffeffffff7ffUL; } +unsigned long foo_0xffdbffeffffff7ff(void) { return 0xffdbffeffffff7ffUL; } +unsigned long foo_0xffe7ffeffffff7ff(void) { return 0xffe7ffeffffff7ffUL; } +unsigned long foo_0xffd7ffeffffff7ff(void) { return 0xffd7ffeffffff7ffUL; } +unsigned long foo_0xffb7ffeffffff7ff(void) { return 0xffb7ffeffffff7ffUL; } +unsigned long foo_0xffcfffeffffff7ff(void) { return 0xffcfffeffffff7ffUL; } +unsigned long foo_0xff9fffeffffff7ff(void) { return 0xff9fffeffffff7ffUL; } +unsigned long foo_0xfffeff9ffffff7ff(void) { return 0xfffeff9ffffff7ffUL; } +unsigned long foo_0xfffdff9ffffff7ff(void) { return 0xfffdff9ffffff7ffUL; } +unsigned long foo_0xfffbff9ffffff7ff(void) { return 0xfffbff9ffffff7ffUL; } +unsigned long foo_0xfff7ff9ffffff7ff(void) { return 0xfff7ff9ffffff7ffUL; } +unsigned long foo_0xffefff9ffffff7ff(void) { return 0xffefff9ffffff7ffUL; } +unsigned long foo_0xffdfff9ffffff7ff(void) { return 0xffdfff9ffffff7ffUL; } +unsigned long foo_0xffbfff9ffffff7ff(void) { return 0xffbfff9ffffff7ffUL; } +unsigned long foo_0xff7fff9ffffff7ff(void) { return 0xff7fff9ffffff7ffUL; } +unsigned long foo_0xfffeff5ffffff7ff(void) { return 0xfffeff5ffffff7ffUL; } +unsigned long foo_0xfffbff5ffffff7ff(void) { return 0xfffbff5ffffff7ffUL; } +unsigned long foo_0xffefff5ffffff7ff(void) { return 0xffefff5ffffff7ffUL; } +unsigned long foo_0xffbfff5ffffff7ff(void) { return 0xffbfff5ffffff7ffUL; } +unsigned long foo_0xfffefedffffff7ff(void) { return 0xfffefedffffff7ffUL; } +unsigned long foo_0xfffdfedffffff7ff(void) { return 0xfffdfedffffff7ffUL; } +unsigned long foo_0xfffbfedffffff7ff(void) { return 0xfffbfedffffff7ffUL; } +unsigned long foo_0xfff7fedffffff7ff(void) { return 0xfff7fedffffff7ffUL; } +unsigned long foo_0xffeffedffffff7ff(void) { return 0xffeffedffffff7ffUL; } +unsigned long foo_0xffdffedffffff7ff(void) { return 0xffdffedffffff7ffUL; } +unsigned long foo_0xffbffedffffff7ff(void) { return 0xffbffedffffff7ffUL; } +unsigned long foo_0xff7ffedffffff7ff(void) { return 0xff7ffedffffff7ffUL; } +unsigned long foo_0xfffefddffffff7ff(void) { return 0xfffefddffffff7ffUL; } +unsigned long foo_0xfffbfddffffff7ff(void) { return 0xfffbfddffffff7ffUL; } +unsigned long foo_0xffeffddffffff7ff(void) { return 0xffeffddffffff7ffUL; } +unsigned long foo_0xffbffddffffff7ff(void) { return 0xffbffddffffff7ffUL; } +unsigned long foo_0xfffefbdffffff7ff(void) { return 0xfffefbdffffff7ffUL; } +unsigned long foo_0xfffdfbdffffff7ff(void) { return 0xfffdfbdffffff7ffUL; } +unsigned long foo_0xfffbfbdffffff7ff(void) { return 0xfffbfbdffffff7ffUL; } +unsigned long foo_0xfff7fbdffffff7ff(void) { return 0xfff7fbdffffff7ffUL; } +unsigned long foo_0xffeffbdffffff7ff(void) { return 0xffeffbdffffff7ffUL; } +unsigned long foo_0xffdffbdffffff7ff(void) { return 0xffdffbdffffff7ffUL; } +unsigned long foo_0xffbffbdffffff7ff(void) { return 0xffbffbdffffff7ffUL; } +unsigned long foo_0xff7ffbdffffff7ff(void) { return 0xff7ffbdffffff7ffUL; } +unsigned long foo_0xfffef7dffffff7ff(void) { return 0xfffef7dffffff7ffUL; } +unsigned long foo_0xfffbf7dffffff7ff(void) { return 0xfffbf7dffffff7ffUL; } +unsigned long foo_0xffeff7dffffff7ff(void) { return 0xffeff7dffffff7ffUL; } +unsigned long foo_0xffbff7dffffff7ff(void) { return 0xffbff7dffffff7ffUL; } +unsigned long foo_0xfffeefdffffff7ff(void) { return 0xfffeefdffffff7ffUL; } +unsigned long foo_0xfffdefdffffff7ff(void) { return 0xfffdefdffffff7ffUL; } +unsigned long foo_0xfffbefdffffff7ff(void) { return 0xfffbefdffffff7ffUL; } +unsigned long foo_0xfff7efdffffff7ff(void) { return 0xfff7efdffffff7ffUL; } +unsigned long foo_0xffefefdffffff7ff(void) { return 0xffefefdffffff7ffUL; } +unsigned long foo_0xffdfefdffffff7ff(void) { return 0xffdfefdffffff7ffUL; } +unsigned long foo_0xffbfefdffffff7ff(void) { return 0xffbfefdffffff7ffUL; } +unsigned long foo_0xff7fefdffffff7ff(void) { return 0xff7fefdffffff7ffUL; } +unsigned long foo_0xfffedfdffffff7ff(void) { return 0xfffedfdffffff7ffUL; } +unsigned long foo_0xfffbdfdffffff7ff(void) { return 0xfffbdfdffffff7ffUL; } +unsigned long foo_0xffefdfdffffff7ff(void) { return 0xffefdfdffffff7ffUL; } +unsigned long foo_0xffbfdfdffffff7ff(void) { return 0xffbfdfdffffff7ffUL; } +unsigned long foo_0xfffebfdffffff7ff(void) { return 0xfffebfdffffff7ffUL; } +unsigned long foo_0xfffdbfdffffff7ff(void) { return 0xfffdbfdffffff7ffUL; } +unsigned long foo_0xfffbbfdffffff7ff(void) { return 0xfffbbfdffffff7ffUL; } +unsigned long foo_0xfff7bfdffffff7ff(void) { return 0xfff7bfdffffff7ffUL; } +unsigned long foo_0xffefbfdffffff7ff(void) { return 0xffefbfdffffff7ffUL; } +unsigned long foo_0xffdfbfdffffff7ff(void) { return 0xffdfbfdffffff7ffUL; } +unsigned long foo_0xffbfbfdffffff7ff(void) { return 0xffbfbfdffffff7ffUL; } +unsigned long foo_0xff7fbfdffffff7ff(void) { return 0xff7fbfdffffff7ffUL; } +unsigned long foo_0xfffe7fdffffff7ff(void) { return 0xfffe7fdffffff7ffUL; } +unsigned long foo_0xfffb7fdffffff7ff(void) { return 0xfffb7fdffffff7ffUL; } +unsigned long foo_0xffef7fdffffff7ff(void) { return 0xffef7fdffffff7ffUL; } +unsigned long foo_0xffbf7fdffffff7ff(void) { return 0xffbf7fdffffff7ffUL; } +unsigned long foo_0xfffcffdffffff7ff(void) { return 0xfffcffdffffff7ffUL; } +unsigned long foo_0xfffaffdffffff7ff(void) { return 0xfffaffdffffff7ffUL; } +unsigned long foo_0xfff6ffdffffff7ff(void) { return 0xfff6ffdffffff7ffUL; } +unsigned long foo_0xffeeffdffffff7ff(void) { return 0xffeeffdffffff7ffUL; } +unsigned long foo_0xffdeffdffffff7ff(void) { return 0xffdeffdffffff7ffUL; } +unsigned long foo_0xffbeffdffffff7ff(void) { return 0xffbeffdffffff7ffUL; } +unsigned long foo_0xff7effdffffff7ff(void) { return 0xff7effdffffff7ffUL; } +unsigned long foo_0xfff9ffdffffff7ff(void) { return 0xfff9ffdffffff7ffUL; } +unsigned long foo_0xffedffdffffff7ff(void) { return 0xffedffdffffff7ffUL; } +unsigned long foo_0xffbdffdffffff7ff(void) { return 0xffbdffdffffff7ffUL; } +unsigned long foo_0xfff3ffdffffff7ff(void) { return 0xfff3ffdffffff7ffUL; } +unsigned long foo_0xffebffdffffff7ff(void) { return 0xffebffdffffff7ffUL; } +unsigned long foo_0xffdbffdffffff7ff(void) { return 0xffdbffdffffff7ffUL; } +unsigned long foo_0xffbbffdffffff7ff(void) { return 0xffbbffdffffff7ffUL; } +unsigned long foo_0xff7bffdffffff7ff(void) { return 0xff7bffdffffff7ffUL; } +unsigned long foo_0xffe7ffdffffff7ff(void) { return 0xffe7ffdffffff7ffUL; } +unsigned long foo_0xffb7ffdffffff7ff(void) { return 0xffb7ffdffffff7ffUL; } +unsigned long foo_0xffcfffdffffff7ff(void) { return 0xffcfffdffffff7ffUL; } +unsigned long foo_0xffafffdffffff7ff(void) { return 0xffafffdffffff7ffUL; } +unsigned long foo_0xff6fffdffffff7ff(void) { return 0xff6fffdffffff7ffUL; } +unsigned long foo_0xff9fffdffffff7ff(void) { return 0xff9fffdffffff7ffUL; } +unsigned long foo_0xff3fffdffffff7ff(void) { return 0xff3fffdffffff7ffUL; } +unsigned long foo_0xfffdff3ffffff7ff(void) { return 0xfffdff3ffffff7ffUL; } +unsigned long foo_0xfffbff3ffffff7ff(void) { return 0xfffbff3ffffff7ffUL; } +unsigned long foo_0xfff7ff3ffffff7ff(void) { return 0xfff7ff3ffffff7ffUL; } +unsigned long foo_0xffefff3ffffff7ff(void) { return 0xffefff3ffffff7ffUL; } +unsigned long foo_0xffdfff3ffffff7ff(void) { return 0xffdfff3ffffff7ffUL; } +unsigned long foo_0xffbfff3ffffff7ff(void) { return 0xffbfff3ffffff7ffUL; } +unsigned long foo_0xff7fff3ffffff7ff(void) { return 0xff7fff3ffffff7ffUL; } +unsigned long foo_0xfeffff3ffffff7ff(void) { return 0xfeffff3ffffff7ffUL; } +unsigned long foo_0xfffdfebffffff7ff(void) { return 0xfffdfebffffff7ffUL; } +unsigned long foo_0xfff7febffffff7ff(void) { return 0xfff7febffffff7ffUL; } +unsigned long foo_0xffdffebffffff7ff(void) { return 0xffdffebffffff7ffUL; } +unsigned long foo_0xff7ffebffffff7ff(void) { return 0xff7ffebffffff7ffUL; } +unsigned long foo_0xfffdfdbffffff7ff(void) { return 0xfffdfdbffffff7ffUL; } +unsigned long foo_0xfffbfdbffffff7ff(void) { return 0xfffbfdbffffff7ffUL; } +unsigned long foo_0xfff7fdbffffff7ff(void) { return 0xfff7fdbffffff7ffUL; } +unsigned long foo_0xffeffdbffffff7ff(void) { return 0xffeffdbffffff7ffUL; } +unsigned long foo_0xffdffdbffffff7ff(void) { return 0xffdffdbffffff7ffUL; } +unsigned long foo_0xffbffdbffffff7ff(void) { return 0xffbffdbffffff7ffUL; } +unsigned long foo_0xff7ffdbffffff7ff(void) { return 0xff7ffdbffffff7ffUL; } +unsigned long foo_0xfefffdbffffff7ff(void) { return 0xfefffdbffffff7ffUL; } +unsigned long foo_0xfffdfbbffffff7ff(void) { return 0xfffdfbbffffff7ffUL; } +unsigned long foo_0xfff7fbbffffff7ff(void) { return 0xfff7fbbffffff7ffUL; } +unsigned long foo_0xffdffbbffffff7ff(void) { return 0xffdffbbffffff7ffUL; } +unsigned long foo_0xff7ffbbffffff7ff(void) { return 0xff7ffbbffffff7ffUL; } +unsigned long foo_0xfffdf7bffffff7ff(void) { return 0xfffdf7bffffff7ffUL; } +unsigned long foo_0xfffbf7bffffff7ff(void) { return 0xfffbf7bffffff7ffUL; } +unsigned long foo_0xfff7f7bffffff7ff(void) { return 0xfff7f7bffffff7ffUL; } +unsigned long foo_0xffeff7bffffff7ff(void) { return 0xffeff7bffffff7ffUL; } +unsigned long foo_0xffdff7bffffff7ff(void) { return 0xffdff7bffffff7ffUL; } +unsigned long foo_0xffbff7bffffff7ff(void) { return 0xffbff7bffffff7ffUL; } +unsigned long foo_0xff7ff7bffffff7ff(void) { return 0xff7ff7bffffff7ffUL; } +unsigned long foo_0xfefff7bffffff7ff(void) { return 0xfefff7bffffff7ffUL; } +unsigned long foo_0xfffdefbffffff7ff(void) { return 0xfffdefbffffff7ffUL; } +unsigned long foo_0xfff7efbffffff7ff(void) { return 0xfff7efbffffff7ffUL; } +unsigned long foo_0xffdfefbffffff7ff(void) { return 0xffdfefbffffff7ffUL; } +unsigned long foo_0xff7fefbffffff7ff(void) { return 0xff7fefbffffff7ffUL; } +unsigned long foo_0xfffddfbffffff7ff(void) { return 0xfffddfbffffff7ffUL; } +unsigned long foo_0xfffbdfbffffff7ff(void) { return 0xfffbdfbffffff7ffUL; } +unsigned long foo_0xfff7dfbffffff7ff(void) { return 0xfff7dfbffffff7ffUL; } +unsigned long foo_0xffefdfbffffff7ff(void) { return 0xffefdfbffffff7ffUL; } +unsigned long foo_0xffdfdfbffffff7ff(void) { return 0xffdfdfbffffff7ffUL; } +unsigned long foo_0xffbfdfbffffff7ff(void) { return 0xffbfdfbffffff7ffUL; } +unsigned long foo_0xff7fdfbffffff7ff(void) { return 0xff7fdfbffffff7ffUL; } +unsigned long foo_0xfeffdfbffffff7ff(void) { return 0xfeffdfbffffff7ffUL; } +unsigned long foo_0xfffdbfbffffff7ff(void) { return 0xfffdbfbffffff7ffUL; } +unsigned long foo_0xfff7bfbffffff7ff(void) { return 0xfff7bfbffffff7ffUL; } +unsigned long foo_0xffdfbfbffffff7ff(void) { return 0xffdfbfbffffff7ffUL; } +unsigned long foo_0xff7fbfbffffff7ff(void) { return 0xff7fbfbffffff7ffUL; } +unsigned long foo_0xfffd7fbffffff7ff(void) { return 0xfffd7fbffffff7ffUL; } +unsigned long foo_0xfffb7fbffffff7ff(void) { return 0xfffb7fbffffff7ffUL; } +unsigned long foo_0xfff77fbffffff7ff(void) { return 0xfff77fbffffff7ffUL; } +unsigned long foo_0xffef7fbffffff7ff(void) { return 0xffef7fbffffff7ffUL; } +unsigned long foo_0xffdf7fbffffff7ff(void) { return 0xffdf7fbffffff7ffUL; } +unsigned long foo_0xffbf7fbffffff7ff(void) { return 0xffbf7fbffffff7ffUL; } +unsigned long foo_0xff7f7fbffffff7ff(void) { return 0xff7f7fbffffff7ffUL; } +unsigned long foo_0xfeff7fbffffff7ff(void) { return 0xfeff7fbffffff7ffUL; } +unsigned long foo_0xfffcffbffffff7ff(void) { return 0xfffcffbffffff7ffUL; } +unsigned long foo_0xfff6ffbffffff7ff(void) { return 0xfff6ffbffffff7ffUL; } +unsigned long foo_0xffdeffbffffff7ff(void) { return 0xffdeffbffffff7ffUL; } +unsigned long foo_0xff7effbffffff7ff(void) { return 0xff7effbffffff7ffUL; } +unsigned long foo_0xfff9ffbffffff7ff(void) { return 0xfff9ffbffffff7ffUL; } +unsigned long foo_0xfff5ffbffffff7ff(void) { return 0xfff5ffbffffff7ffUL; } +unsigned long foo_0xffedffbffffff7ff(void) { return 0xffedffbffffff7ffUL; } +unsigned long foo_0xffddffbffffff7ff(void) { return 0xffddffbffffff7ffUL; } +unsigned long foo_0xffbdffbffffff7ff(void) { return 0xffbdffbffffff7ffUL; } +unsigned long foo_0xff7dffbffffff7ff(void) { return 0xff7dffbffffff7ffUL; } +unsigned long foo_0xfefdffbffffff7ff(void) { return 0xfefdffbffffff7ffUL; } +unsigned long foo_0xfff3ffbffffff7ff(void) { return 0xfff3ffbffffff7ffUL; } +unsigned long foo_0xffdbffbffffff7ff(void) { return 0xffdbffbffffff7ffUL; } +unsigned long foo_0xff7bffbffffff7ff(void) { return 0xff7bffbffffff7ffUL; } +unsigned long foo_0xffe7ffbffffff7ff(void) { return 0xffe7ffbffffff7ffUL; } +unsigned long foo_0xffd7ffbffffff7ff(void) { return 0xffd7ffbffffff7ffUL; } +unsigned long foo_0xffb7ffbffffff7ff(void) { return 0xffb7ffbffffff7ffUL; } +unsigned long foo_0xff77ffbffffff7ff(void) { return 0xff77ffbffffff7ffUL; } +unsigned long foo_0xfef7ffbffffff7ff(void) { return 0xfef7ffbffffff7ffUL; } +unsigned long foo_0xffcfffbffffff7ff(void) { return 0xffcfffbffffff7ffUL; } +unsigned long foo_0xff6fffbffffff7ff(void) { return 0xff6fffbffffff7ffUL; } +unsigned long foo_0xff9fffbffffff7ff(void) { return 0xff9fffbffffff7ffUL; } +unsigned long foo_0xff5fffbffffff7ff(void) { return 0xff5fffbffffff7ffUL; } +unsigned long foo_0xfedfffbffffff7ff(void) { return 0xfedfffbffffff7ffUL; } +unsigned long foo_0xff3fffbffffff7ff(void) { return 0xff3fffbffffff7ffUL; } +unsigned long foo_0xfe7fffbffffff7ff(void) { return 0xfe7fffbffffff7ffUL; } +unsigned long foo_0xfffbfe7ffffff7ff(void) { return 0xfffbfe7ffffff7ffUL; } +unsigned long foo_0xfff7fe7ffffff7ff(void) { return 0xfff7fe7ffffff7ffUL; } +unsigned long foo_0xffeffe7ffffff7ff(void) { return 0xffeffe7ffffff7ffUL; } +unsigned long foo_0xffdffe7ffffff7ff(void) { return 0xffdffe7ffffff7ffUL; } +unsigned long foo_0xffbffe7ffffff7ff(void) { return 0xffbffe7ffffff7ffUL; } +unsigned long foo_0xff7ffe7ffffff7ff(void) { return 0xff7ffe7ffffff7ffUL; } +unsigned long foo_0xfefffe7ffffff7ff(void) { return 0xfefffe7ffffff7ffUL; } +unsigned long foo_0xfdfffe7ffffff7ff(void) { return 0xfdfffe7ffffff7ffUL; } +unsigned long foo_0xfffbfd7ffffff7ff(void) { return 0xfffbfd7ffffff7ffUL; } +unsigned long foo_0xffeffd7ffffff7ff(void) { return 0xffeffd7ffffff7ffUL; } +unsigned long foo_0xffbffd7ffffff7ff(void) { return 0xffbffd7ffffff7ffUL; } +unsigned long foo_0xfefffd7ffffff7ff(void) { return 0xfefffd7ffffff7ffUL; } +unsigned long foo_0xfffbfb7ffffff7ff(void) { return 0xfffbfb7ffffff7ffUL; } +unsigned long foo_0xfff7fb7ffffff7ff(void) { return 0xfff7fb7ffffff7ffUL; } +unsigned long foo_0xffeffb7ffffff7ff(void) { return 0xffeffb7ffffff7ffUL; } +unsigned long foo_0xffdffb7ffffff7ff(void) { return 0xffdffb7ffffff7ffUL; } +unsigned long foo_0xffbffb7ffffff7ff(void) { return 0xffbffb7ffffff7ffUL; } +unsigned long foo_0xff7ffb7ffffff7ff(void) { return 0xff7ffb7ffffff7ffUL; } +unsigned long foo_0xfefffb7ffffff7ff(void) { return 0xfefffb7ffffff7ffUL; } +unsigned long foo_0xfdfffb7ffffff7ff(void) { return 0xfdfffb7ffffff7ffUL; } +unsigned long foo_0xfffbf77ffffff7ff(void) { return 0xfffbf77ffffff7ffUL; } +unsigned long foo_0xffeff77ffffff7ff(void) { return 0xffeff77ffffff7ffUL; } +unsigned long foo_0xffbff77ffffff7ff(void) { return 0xffbff77ffffff7ffUL; } +unsigned long foo_0xfefff77ffffff7ff(void) { return 0xfefff77ffffff7ffUL; } +unsigned long foo_0xfffbef7ffffff7ff(void) { return 0xfffbef7ffffff7ffUL; } +unsigned long foo_0xfff7ef7ffffff7ff(void) { return 0xfff7ef7ffffff7ffUL; } +unsigned long foo_0xffefef7ffffff7ff(void) { return 0xffefef7ffffff7ffUL; } +unsigned long foo_0xffdfef7ffffff7ff(void) { return 0xffdfef7ffffff7ffUL; } +unsigned long foo_0xffbfef7ffffff7ff(void) { return 0xffbfef7ffffff7ffUL; } +unsigned long foo_0xff7fef7ffffff7ff(void) { return 0xff7fef7ffffff7ffUL; } +unsigned long foo_0xfeffef7ffffff7ff(void) { return 0xfeffef7ffffff7ffUL; } +unsigned long foo_0xfdffef7ffffff7ff(void) { return 0xfdffef7ffffff7ffUL; } +unsigned long foo_0xfffbdf7ffffff7ff(void) { return 0xfffbdf7ffffff7ffUL; } +unsigned long foo_0xffefdf7ffffff7ff(void) { return 0xffefdf7ffffff7ffUL; } +unsigned long foo_0xffbfdf7ffffff7ff(void) { return 0xffbfdf7ffffff7ffUL; } +unsigned long foo_0xfeffdf7ffffff7ff(void) { return 0xfeffdf7ffffff7ffUL; } +unsigned long foo_0xfffbbf7ffffff7ff(void) { return 0xfffbbf7ffffff7ffUL; } +unsigned long foo_0xfff7bf7ffffff7ff(void) { return 0xfff7bf7ffffff7ffUL; } +unsigned long foo_0xffefbf7ffffff7ff(void) { return 0xffefbf7ffffff7ffUL; } +unsigned long foo_0xffdfbf7ffffff7ff(void) { return 0xffdfbf7ffffff7ffUL; } +unsigned long foo_0xffbfbf7ffffff7ff(void) { return 0xffbfbf7ffffff7ffUL; } +unsigned long foo_0xff7fbf7ffffff7ff(void) { return 0xff7fbf7ffffff7ffUL; } +unsigned long foo_0xfeffbf7ffffff7ff(void) { return 0xfeffbf7ffffff7ffUL; } +unsigned long foo_0xfdffbf7ffffff7ff(void) { return 0xfdffbf7ffffff7ffUL; } +unsigned long foo_0xfffb7f7ffffff7ff(void) { return 0xfffb7f7ffffff7ffUL; } +unsigned long foo_0xffef7f7ffffff7ff(void) { return 0xffef7f7ffffff7ffUL; } +unsigned long foo_0xffbf7f7ffffff7ff(void) { return 0xffbf7f7ffffff7ffUL; } +unsigned long foo_0xfeff7f7ffffff7ff(void) { return 0xfeff7f7ffffff7ffUL; } +unsigned long foo_0xfffaff7ffffff7ff(void) { return 0xfffaff7ffffff7ffUL; } +unsigned long foo_0xfff6ff7ffffff7ff(void) { return 0xfff6ff7ffffff7ffUL; } +unsigned long foo_0xffeeff7ffffff7ff(void) { return 0xffeeff7ffffff7ffUL; } +unsigned long foo_0xffdeff7ffffff7ff(void) { return 0xffdeff7ffffff7ffUL; } +unsigned long foo_0xffbeff7ffffff7ff(void) { return 0xffbeff7ffffff7ffUL; } +unsigned long foo_0xff7eff7ffffff7ff(void) { return 0xff7eff7ffffff7ffUL; } +unsigned long foo_0xfefeff7ffffff7ff(void) { return 0xfefeff7ffffff7ffUL; } +unsigned long foo_0xfdfeff7ffffff7ff(void) { return 0xfdfeff7ffffff7ffUL; } +unsigned long foo_0xfff9ff7ffffff7ff(void) { return 0xfff9ff7ffffff7ffUL; } +unsigned long foo_0xffedff7ffffff7ff(void) { return 0xffedff7ffffff7ffUL; } +unsigned long foo_0xffbdff7ffffff7ff(void) { return 0xffbdff7ffffff7ffUL; } +unsigned long foo_0xfefdff7ffffff7ff(void) { return 0xfefdff7ffffff7ffUL; } +unsigned long foo_0xfff3ff7ffffff7ff(void) { return 0xfff3ff7ffffff7ffUL; } +unsigned long foo_0xffebff7ffffff7ff(void) { return 0xffebff7ffffff7ffUL; } +unsigned long foo_0xffdbff7ffffff7ff(void) { return 0xffdbff7ffffff7ffUL; } +unsigned long foo_0xffbbff7ffffff7ff(void) { return 0xffbbff7ffffff7ffUL; } +unsigned long foo_0xff7bff7ffffff7ff(void) { return 0xff7bff7ffffff7ffUL; } +unsigned long foo_0xfefbff7ffffff7ff(void) { return 0xfefbff7ffffff7ffUL; } +unsigned long foo_0xfdfbff7ffffff7ff(void) { return 0xfdfbff7ffffff7ffUL; } +unsigned long foo_0xffe7ff7ffffff7ff(void) { return 0xffe7ff7ffffff7ffUL; } +unsigned long foo_0xffb7ff7ffffff7ff(void) { return 0xffb7ff7ffffff7ffUL; } +unsigned long foo_0xfef7ff7ffffff7ff(void) { return 0xfef7ff7ffffff7ffUL; } +unsigned long foo_0xffcfff7ffffff7ff(void) { return 0xffcfff7ffffff7ffUL; } +unsigned long foo_0xffafff7ffffff7ff(void) { return 0xffafff7ffffff7ffUL; } +unsigned long foo_0xff6fff7ffffff7ff(void) { return 0xff6fff7ffffff7ffUL; } +unsigned long foo_0xfeefff7ffffff7ff(void) { return 0xfeefff7ffffff7ffUL; } +unsigned long foo_0xfdefff7ffffff7ff(void) { return 0xfdefff7ffffff7ffUL; } +unsigned long foo_0xff9fff7ffffff7ff(void) { return 0xff9fff7ffffff7ffUL; } +unsigned long foo_0xfedfff7ffffff7ff(void) { return 0xfedfff7ffffff7ffUL; } +unsigned long foo_0xff3fff7ffffff7ff(void) { return 0xff3fff7ffffff7ffUL; } +unsigned long foo_0xfebfff7ffffff7ff(void) { return 0xfebfff7ffffff7ffUL; } +unsigned long foo_0xfdbfff7ffffff7ff(void) { return 0xfdbfff7ffffff7ffUL; } +unsigned long foo_0xfe7fff7ffffff7ff(void) { return 0xfe7fff7ffffff7ffUL; } +unsigned long foo_0xfcffff7ffffff7ff(void) { return 0xfcffff7ffffff7ffUL; } +unsigned long foo_0xfff7fcfffffff7ff(void) { return 0xfff7fcfffffff7ffUL; } +unsigned long foo_0xffeffcfffffff7ff(void) { return 0xffeffcfffffff7ffUL; } +unsigned long foo_0xffdffcfffffff7ff(void) { return 0xffdffcfffffff7ffUL; } +unsigned long foo_0xffbffcfffffff7ff(void) { return 0xffbffcfffffff7ffUL; } +unsigned long foo_0xff7ffcfffffff7ff(void) { return 0xff7ffcfffffff7ffUL; } +unsigned long foo_0xfefffcfffffff7ff(void) { return 0xfefffcfffffff7ffUL; } +unsigned long foo_0xfdfffcfffffff7ff(void) { return 0xfdfffcfffffff7ffUL; } +unsigned long foo_0xfbfffcfffffff7ff(void) { return 0xfbfffcfffffff7ffUL; } +unsigned long foo_0xfff7fafffffff7ff(void) { return 0xfff7fafffffff7ffUL; } +unsigned long foo_0xffdffafffffff7ff(void) { return 0xffdffafffffff7ffUL; } +unsigned long foo_0xff7ffafffffff7ff(void) { return 0xff7ffafffffff7ffUL; } +unsigned long foo_0xfdfffafffffff7ff(void) { return 0xfdfffafffffff7ffUL; } +unsigned long foo_0xfff7f6fffffff7ff(void) { return 0xfff7f6fffffff7ffUL; } +unsigned long foo_0xffeff6fffffff7ff(void) { return 0xffeff6fffffff7ffUL; } +unsigned long foo_0xffdff6fffffff7ff(void) { return 0xffdff6fffffff7ffUL; } +unsigned long foo_0xffbff6fffffff7ff(void) { return 0xffbff6fffffff7ffUL; } +unsigned long foo_0xff7ff6fffffff7ff(void) { return 0xff7ff6fffffff7ffUL; } +unsigned long foo_0xfefff6fffffff7ff(void) { return 0xfefff6fffffff7ffUL; } +unsigned long foo_0xfdfff6fffffff7ff(void) { return 0xfdfff6fffffff7ffUL; } +unsigned long foo_0xfbfff6fffffff7ff(void) { return 0xfbfff6fffffff7ffUL; } +unsigned long foo_0xfff7eefffffff7ff(void) { return 0xfff7eefffffff7ffUL; } +unsigned long foo_0xffdfeefffffff7ff(void) { return 0xffdfeefffffff7ffUL; } +unsigned long foo_0xff7feefffffff7ff(void) { return 0xff7feefffffff7ffUL; } +unsigned long foo_0xfdffeefffffff7ff(void) { return 0xfdffeefffffff7ffUL; } +unsigned long foo_0xfff7defffffff7ff(void) { return 0xfff7defffffff7ffUL; } +unsigned long foo_0xffefdefffffff7ff(void) { return 0xffefdefffffff7ffUL; } +unsigned long foo_0xffdfdefffffff7ff(void) { return 0xffdfdefffffff7ffUL; } +unsigned long foo_0xffbfdefffffff7ff(void) { return 0xffbfdefffffff7ffUL; } +unsigned long foo_0xff7fdefffffff7ff(void) { return 0xff7fdefffffff7ffUL; } +unsigned long foo_0xfeffdefffffff7ff(void) { return 0xfeffdefffffff7ffUL; } +unsigned long foo_0xfdffdefffffff7ff(void) { return 0xfdffdefffffff7ffUL; } +unsigned long foo_0xfbffdefffffff7ff(void) { return 0xfbffdefffffff7ffUL; } +unsigned long foo_0xfff7befffffff7ff(void) { return 0xfff7befffffff7ffUL; } +unsigned long foo_0xffdfbefffffff7ff(void) { return 0xffdfbefffffff7ffUL; } +unsigned long foo_0xff7fbefffffff7ff(void) { return 0xff7fbefffffff7ffUL; } +unsigned long foo_0xfdffbefffffff7ff(void) { return 0xfdffbefffffff7ffUL; } +unsigned long foo_0xfff77efffffff7ff(void) { return 0xfff77efffffff7ffUL; } +unsigned long foo_0xffef7efffffff7ff(void) { return 0xffef7efffffff7ffUL; } +unsigned long foo_0xffdf7efffffff7ff(void) { return 0xffdf7efffffff7ffUL; } +unsigned long foo_0xffbf7efffffff7ff(void) { return 0xffbf7efffffff7ffUL; } +unsigned long foo_0xff7f7efffffff7ff(void) { return 0xff7f7efffffff7ffUL; } +unsigned long foo_0xfeff7efffffff7ff(void) { return 0xfeff7efffffff7ffUL; } +unsigned long foo_0xfdff7efffffff7ff(void) { return 0xfdff7efffffff7ffUL; } +unsigned long foo_0xfbff7efffffff7ff(void) { return 0xfbff7efffffff7ffUL; } +unsigned long foo_0xfff6fefffffff7ff(void) { return 0xfff6fefffffff7ffUL; } +unsigned long foo_0xffdefefffffff7ff(void) { return 0xffdefefffffff7ffUL; } +unsigned long foo_0xff7efefffffff7ff(void) { return 0xff7efefffffff7ffUL; } +unsigned long foo_0xfdfefefffffff7ff(void) { return 0xfdfefefffffff7ffUL; } +unsigned long foo_0xfff5fefffffff7ff(void) { return 0xfff5fefffffff7ffUL; } +unsigned long foo_0xffedfefffffff7ff(void) { return 0xffedfefffffff7ffUL; } +unsigned long foo_0xffddfefffffff7ff(void) { return 0xffddfefffffff7ffUL; } +unsigned long foo_0xffbdfefffffff7ff(void) { return 0xffbdfefffffff7ffUL; } +unsigned long foo_0xff7dfefffffff7ff(void) { return 0xff7dfefffffff7ffUL; } +unsigned long foo_0xfefdfefffffff7ff(void) { return 0xfefdfefffffff7ffUL; } +unsigned long foo_0xfdfdfefffffff7ff(void) { return 0xfdfdfefffffff7ffUL; } +unsigned long foo_0xfbfdfefffffff7ff(void) { return 0xfbfdfefffffff7ffUL; } +unsigned long foo_0xfff3fefffffff7ff(void) { return 0xfff3fefffffff7ffUL; } +unsigned long foo_0xffdbfefffffff7ff(void) { return 0xffdbfefffffff7ffUL; } +unsigned long foo_0xff7bfefffffff7ff(void) { return 0xff7bfefffffff7ffUL; } +unsigned long foo_0xfdfbfefffffff7ff(void) { return 0xfdfbfefffffff7ffUL; } +unsigned long foo_0xffe7fefffffff7ff(void) { return 0xffe7fefffffff7ffUL; } +unsigned long foo_0xffd7fefffffff7ff(void) { return 0xffd7fefffffff7ffUL; } +unsigned long foo_0xffb7fefffffff7ff(void) { return 0xffb7fefffffff7ffUL; } +unsigned long foo_0xff77fefffffff7ff(void) { return 0xff77fefffffff7ffUL; } +unsigned long foo_0xfef7fefffffff7ff(void) { return 0xfef7fefffffff7ffUL; } +unsigned long foo_0xfdf7fefffffff7ff(void) { return 0xfdf7fefffffff7ffUL; } +unsigned long foo_0xfbf7fefffffff7ff(void) { return 0xfbf7fefffffff7ffUL; } +unsigned long foo_0xffcffefffffff7ff(void) { return 0xffcffefffffff7ffUL; } +unsigned long foo_0xff6ffefffffff7ff(void) { return 0xff6ffefffffff7ffUL; } +unsigned long foo_0xfdeffefffffff7ff(void) { return 0xfdeffefffffff7ffUL; } +unsigned long foo_0xff9ffefffffff7ff(void) { return 0xff9ffefffffff7ffUL; } +unsigned long foo_0xff5ffefffffff7ff(void) { return 0xff5ffefffffff7ffUL; } +unsigned long foo_0xfedffefffffff7ff(void) { return 0xfedffefffffff7ffUL; } +unsigned long foo_0xfddffefffffff7ff(void) { return 0xfddffefffffff7ffUL; } +unsigned long foo_0xfbdffefffffff7ff(void) { return 0xfbdffefffffff7ffUL; } +unsigned long foo_0xff3ffefffffff7ff(void) { return 0xff3ffefffffff7ffUL; } +unsigned long foo_0xfdbffefffffff7ff(void) { return 0xfdbffefffffff7ffUL; } +unsigned long foo_0xfe7ffefffffff7ff(void) { return 0xfe7ffefffffff7ffUL; } +unsigned long foo_0xfd7ffefffffff7ff(void) { return 0xfd7ffefffffff7ffUL; } +unsigned long foo_0xfb7ffefffffff7ff(void) { return 0xfb7ffefffffff7ffUL; } +unsigned long foo_0xfcfffefffffff7ff(void) { return 0xfcfffefffffff7ffUL; } +unsigned long foo_0xf9fffefffffff7ff(void) { return 0xf9fffefffffff7ffUL; } +unsigned long foo_0xffeff9fffffff7ff(void) { return 0xffeff9fffffff7ffUL; } +unsigned long foo_0xffdff9fffffff7ff(void) { return 0xffdff9fffffff7ffUL; } +unsigned long foo_0xffbff9fffffff7ff(void) { return 0xffbff9fffffff7ffUL; } +unsigned long foo_0xff7ff9fffffff7ff(void) { return 0xff7ff9fffffff7ffUL; } +unsigned long foo_0xfefff9fffffff7ff(void) { return 0xfefff9fffffff7ffUL; } +unsigned long foo_0xfdfff9fffffff7ff(void) { return 0xfdfff9fffffff7ffUL; } +unsigned long foo_0xfbfff9fffffff7ff(void) { return 0xfbfff9fffffff7ffUL; } +unsigned long foo_0xf7fff9fffffff7ff(void) { return 0xf7fff9fffffff7ffUL; } +unsigned long foo_0xffeff5fffffff7ff(void) { return 0xffeff5fffffff7ffUL; } +unsigned long foo_0xffbff5fffffff7ff(void) { return 0xffbff5fffffff7ffUL; } +unsigned long foo_0xfefff5fffffff7ff(void) { return 0xfefff5fffffff7ffUL; } +unsigned long foo_0xfbfff5fffffff7ff(void) { return 0xfbfff5fffffff7ffUL; } +unsigned long foo_0xffefedfffffff7ff(void) { return 0xffefedfffffff7ffUL; } +unsigned long foo_0xffdfedfffffff7ff(void) { return 0xffdfedfffffff7ffUL; } +unsigned long foo_0xffbfedfffffff7ff(void) { return 0xffbfedfffffff7ffUL; } +unsigned long foo_0xff7fedfffffff7ff(void) { return 0xff7fedfffffff7ffUL; } +unsigned long foo_0xfeffedfffffff7ff(void) { return 0xfeffedfffffff7ffUL; } +unsigned long foo_0xfdffedfffffff7ff(void) { return 0xfdffedfffffff7ffUL; } +unsigned long foo_0xfbffedfffffff7ff(void) { return 0xfbffedfffffff7ffUL; } +unsigned long foo_0xf7ffedfffffff7ff(void) { return 0xf7ffedfffffff7ffUL; } +unsigned long foo_0xffefddfffffff7ff(void) { return 0xffefddfffffff7ffUL; } +unsigned long foo_0xffbfddfffffff7ff(void) { return 0xffbfddfffffff7ffUL; } +unsigned long foo_0xfeffddfffffff7ff(void) { return 0xfeffddfffffff7ffUL; } +unsigned long foo_0xfbffddfffffff7ff(void) { return 0xfbffddfffffff7ffUL; } +unsigned long foo_0xffefbdfffffff7ff(void) { return 0xffefbdfffffff7ffUL; } +unsigned long foo_0xffdfbdfffffff7ff(void) { return 0xffdfbdfffffff7ffUL; } +unsigned long foo_0xffbfbdfffffff7ff(void) { return 0xffbfbdfffffff7ffUL; } +unsigned long foo_0xff7fbdfffffff7ff(void) { return 0xff7fbdfffffff7ffUL; } +unsigned long foo_0xfeffbdfffffff7ff(void) { return 0xfeffbdfffffff7ffUL; } +unsigned long foo_0xfdffbdfffffff7ff(void) { return 0xfdffbdfffffff7ffUL; } +unsigned long foo_0xfbffbdfffffff7ff(void) { return 0xfbffbdfffffff7ffUL; } +unsigned long foo_0xf7ffbdfffffff7ff(void) { return 0xf7ffbdfffffff7ffUL; } +unsigned long foo_0xffef7dfffffff7ff(void) { return 0xffef7dfffffff7ffUL; } +unsigned long foo_0xffbf7dfffffff7ff(void) { return 0xffbf7dfffffff7ffUL; } +unsigned long foo_0xfeff7dfffffff7ff(void) { return 0xfeff7dfffffff7ffUL; } +unsigned long foo_0xfbff7dfffffff7ff(void) { return 0xfbff7dfffffff7ffUL; } +unsigned long foo_0xffeefdfffffff7ff(void) { return 0xffeefdfffffff7ffUL; } +unsigned long foo_0xffdefdfffffff7ff(void) { return 0xffdefdfffffff7ffUL; } +unsigned long foo_0xffbefdfffffff7ff(void) { return 0xffbefdfffffff7ffUL; } +unsigned long foo_0xff7efdfffffff7ff(void) { return 0xff7efdfffffff7ffUL; } +unsigned long foo_0xfefefdfffffff7ff(void) { return 0xfefefdfffffff7ffUL; } +unsigned long foo_0xfdfefdfffffff7ff(void) { return 0xfdfefdfffffff7ffUL; } +unsigned long foo_0xfbfefdfffffff7ff(void) { return 0xfbfefdfffffff7ffUL; } +unsigned long foo_0xf7fefdfffffff7ff(void) { return 0xf7fefdfffffff7ffUL; } +unsigned long foo_0xffedfdfffffff7ff(void) { return 0xffedfdfffffff7ffUL; } +unsigned long foo_0xffbdfdfffffff7ff(void) { return 0xffbdfdfffffff7ffUL; } +unsigned long foo_0xfefdfdfffffff7ff(void) { return 0xfefdfdfffffff7ffUL; } +unsigned long foo_0xfbfdfdfffffff7ff(void) { return 0xfbfdfdfffffff7ffUL; } +unsigned long foo_0xffebfdfffffff7ff(void) { return 0xffebfdfffffff7ffUL; } +unsigned long foo_0xffdbfdfffffff7ff(void) { return 0xffdbfdfffffff7ffUL; } +unsigned long foo_0xffbbfdfffffff7ff(void) { return 0xffbbfdfffffff7ffUL; } +unsigned long foo_0xff7bfdfffffff7ff(void) { return 0xff7bfdfffffff7ffUL; } +unsigned long foo_0xfefbfdfffffff7ff(void) { return 0xfefbfdfffffff7ffUL; } +unsigned long foo_0xfdfbfdfffffff7ff(void) { return 0xfdfbfdfffffff7ffUL; } +unsigned long foo_0xfbfbfdfffffff7ff(void) { return 0xfbfbfdfffffff7ffUL; } +unsigned long foo_0xf7fbfdfffffff7ff(void) { return 0xf7fbfdfffffff7ffUL; } +unsigned long foo_0xffe7fdfffffff7ff(void) { return 0xffe7fdfffffff7ffUL; } +unsigned long foo_0xffb7fdfffffff7ff(void) { return 0xffb7fdfffffff7ffUL; } +unsigned long foo_0xfef7fdfffffff7ff(void) { return 0xfef7fdfffffff7ffUL; } +unsigned long foo_0xfbf7fdfffffff7ff(void) { return 0xfbf7fdfffffff7ffUL; } +unsigned long foo_0xffcffdfffffff7ff(void) { return 0xffcffdfffffff7ffUL; } +unsigned long foo_0xffaffdfffffff7ff(void) { return 0xffaffdfffffff7ffUL; } +unsigned long foo_0xff6ffdfffffff7ff(void) { return 0xff6ffdfffffff7ffUL; } +unsigned long foo_0xfeeffdfffffff7ff(void) { return 0xfeeffdfffffff7ffUL; } +unsigned long foo_0xfdeffdfffffff7ff(void) { return 0xfdeffdfffffff7ffUL; } +unsigned long foo_0xfbeffdfffffff7ff(void) { return 0xfbeffdfffffff7ffUL; } +unsigned long foo_0xf7effdfffffff7ff(void) { return 0xf7effdfffffff7ffUL; } +unsigned long foo_0xff9ffdfffffff7ff(void) { return 0xff9ffdfffffff7ffUL; } +unsigned long foo_0xfedffdfffffff7ff(void) { return 0xfedffdfffffff7ffUL; } +unsigned long foo_0xfbdffdfffffff7ff(void) { return 0xfbdffdfffffff7ffUL; } +unsigned long foo_0xff3ffdfffffff7ff(void) { return 0xff3ffdfffffff7ffUL; } +unsigned long foo_0xfebffdfffffff7ff(void) { return 0xfebffdfffffff7ffUL; } +unsigned long foo_0xfdbffdfffffff7ff(void) { return 0xfdbffdfffffff7ffUL; } +unsigned long foo_0xfbbffdfffffff7ff(void) { return 0xfbbffdfffffff7ffUL; } +unsigned long foo_0xf7bffdfffffff7ff(void) { return 0xf7bffdfffffff7ffUL; } +unsigned long foo_0xfe7ffdfffffff7ff(void) { return 0xfe7ffdfffffff7ffUL; } +unsigned long foo_0xfb7ffdfffffff7ff(void) { return 0xfb7ffdfffffff7ffUL; } +unsigned long foo_0xfcfffdfffffff7ff(void) { return 0xfcfffdfffffff7ffUL; } +unsigned long foo_0xfafffdfffffff7ff(void) { return 0xfafffdfffffff7ffUL; } +unsigned long foo_0xf6fffdfffffff7ff(void) { return 0xf6fffdfffffff7ffUL; } +unsigned long foo_0xf9fffdfffffff7ff(void) { return 0xf9fffdfffffff7ffUL; } +unsigned long foo_0xf3fffdfffffff7ff(void) { return 0xf3fffdfffffff7ffUL; } +unsigned long foo_0xffdff3fffffff7ff(void) { return 0xffdff3fffffff7ffUL; } +unsigned long foo_0xffbff3fffffff7ff(void) { return 0xffbff3fffffff7ffUL; } +unsigned long foo_0xff7ff3fffffff7ff(void) { return 0xff7ff3fffffff7ffUL; } +unsigned long foo_0xfefff3fffffff7ff(void) { return 0xfefff3fffffff7ffUL; } +unsigned long foo_0xfdfff3fffffff7ff(void) { return 0xfdfff3fffffff7ffUL; } +unsigned long foo_0xfbfff3fffffff7ff(void) { return 0xfbfff3fffffff7ffUL; } +unsigned long foo_0xf7fff3fffffff7ff(void) { return 0xf7fff3fffffff7ffUL; } +unsigned long foo_0xeffff3fffffff7ff(void) { return 0xeffff3fffffff7ffUL; } +unsigned long foo_0xffdfebfffffff7ff(void) { return 0xffdfebfffffff7ffUL; } +unsigned long foo_0xff7febfffffff7ff(void) { return 0xff7febfffffff7ffUL; } +unsigned long foo_0xfdffebfffffff7ff(void) { return 0xfdffebfffffff7ffUL; } +unsigned long foo_0xf7ffebfffffff7ff(void) { return 0xf7ffebfffffff7ffUL; } +unsigned long foo_0xffdfdbfffffff7ff(void) { return 0xffdfdbfffffff7ffUL; } +unsigned long foo_0xffbfdbfffffff7ff(void) { return 0xffbfdbfffffff7ffUL; } +unsigned long foo_0xff7fdbfffffff7ff(void) { return 0xff7fdbfffffff7ffUL; } +unsigned long foo_0xfeffdbfffffff7ff(void) { return 0xfeffdbfffffff7ffUL; } +unsigned long foo_0xfdffdbfffffff7ff(void) { return 0xfdffdbfffffff7ffUL; } +unsigned long foo_0xfbffdbfffffff7ff(void) { return 0xfbffdbfffffff7ffUL; } +unsigned long foo_0xf7ffdbfffffff7ff(void) { return 0xf7ffdbfffffff7ffUL; } +unsigned long foo_0xefffdbfffffff7ff(void) { return 0xefffdbfffffff7ffUL; } +unsigned long foo_0xffdfbbfffffff7ff(void) { return 0xffdfbbfffffff7ffUL; } +unsigned long foo_0xff7fbbfffffff7ff(void) { return 0xff7fbbfffffff7ffUL; } +unsigned long foo_0xfdffbbfffffff7ff(void) { return 0xfdffbbfffffff7ffUL; } +unsigned long foo_0xf7ffbbfffffff7ff(void) { return 0xf7ffbbfffffff7ffUL; } +unsigned long foo_0xffdf7bfffffff7ff(void) { return 0xffdf7bfffffff7ffUL; } +unsigned long foo_0xffbf7bfffffff7ff(void) { return 0xffbf7bfffffff7ffUL; } +unsigned long foo_0xff7f7bfffffff7ff(void) { return 0xff7f7bfffffff7ffUL; } +unsigned long foo_0xfeff7bfffffff7ff(void) { return 0xfeff7bfffffff7ffUL; } +unsigned long foo_0xfdff7bfffffff7ff(void) { return 0xfdff7bfffffff7ffUL; } +unsigned long foo_0xfbff7bfffffff7ff(void) { return 0xfbff7bfffffff7ffUL; } +unsigned long foo_0xf7ff7bfffffff7ff(void) { return 0xf7ff7bfffffff7ffUL; } +unsigned long foo_0xefff7bfffffff7ff(void) { return 0xefff7bfffffff7ffUL; } +unsigned long foo_0xffdefbfffffff7ff(void) { return 0xffdefbfffffff7ffUL; } +unsigned long foo_0xff7efbfffffff7ff(void) { return 0xff7efbfffffff7ffUL; } +unsigned long foo_0xfdfefbfffffff7ff(void) { return 0xfdfefbfffffff7ffUL; } +unsigned long foo_0xf7fefbfffffff7ff(void) { return 0xf7fefbfffffff7ffUL; } +unsigned long foo_0xffddfbfffffff7ff(void) { return 0xffddfbfffffff7ffUL; } +unsigned long foo_0xffbdfbfffffff7ff(void) { return 0xffbdfbfffffff7ffUL; } +unsigned long foo_0xff7dfbfffffff7ff(void) { return 0xff7dfbfffffff7ffUL; } +unsigned long foo_0xfefdfbfffffff7ff(void) { return 0xfefdfbfffffff7ffUL; } +unsigned long foo_0xfdfdfbfffffff7ff(void) { return 0xfdfdfbfffffff7ffUL; } +unsigned long foo_0xfbfdfbfffffff7ff(void) { return 0xfbfdfbfffffff7ffUL; } +unsigned long foo_0xf7fdfbfffffff7ff(void) { return 0xf7fdfbfffffff7ffUL; } +unsigned long foo_0xeffdfbfffffff7ff(void) { return 0xeffdfbfffffff7ffUL; } +unsigned long foo_0xffdbfbfffffff7ff(void) { return 0xffdbfbfffffff7ffUL; } +unsigned long foo_0xff7bfbfffffff7ff(void) { return 0xff7bfbfffffff7ffUL; } +unsigned long foo_0xfdfbfbfffffff7ff(void) { return 0xfdfbfbfffffff7ffUL; } +unsigned long foo_0xf7fbfbfffffff7ff(void) { return 0xf7fbfbfffffff7ffUL; } +unsigned long foo_0xffd7fbfffffff7ff(void) { return 0xffd7fbfffffff7ffUL; } +unsigned long foo_0xffb7fbfffffff7ff(void) { return 0xffb7fbfffffff7ffUL; } +unsigned long foo_0xff77fbfffffff7ff(void) { return 0xff77fbfffffff7ffUL; } +unsigned long foo_0xfef7fbfffffff7ff(void) { return 0xfef7fbfffffff7ffUL; } +unsigned long foo_0xfdf7fbfffffff7ff(void) { return 0xfdf7fbfffffff7ffUL; } +unsigned long foo_0xfbf7fbfffffff7ff(void) { return 0xfbf7fbfffffff7ffUL; } +unsigned long foo_0xf7f7fbfffffff7ff(void) { return 0xf7f7fbfffffff7ffUL; } +unsigned long foo_0xeff7fbfffffff7ff(void) { return 0xeff7fbfffffff7ffUL; } +unsigned long foo_0xffcffbfffffff7ff(void) { return 0xffcffbfffffff7ffUL; } +unsigned long foo_0xff6ffbfffffff7ff(void) { return 0xff6ffbfffffff7ffUL; } +unsigned long foo_0xfdeffbfffffff7ff(void) { return 0xfdeffbfffffff7ffUL; } +unsigned long foo_0xf7effbfffffff7ff(void) { return 0xf7effbfffffff7ffUL; } +unsigned long foo_0xff9ffbfffffff7ff(void) { return 0xff9ffbfffffff7ffUL; } +unsigned long foo_0xff5ffbfffffff7ff(void) { return 0xff5ffbfffffff7ffUL; } +unsigned long foo_0xfedffbfffffff7ff(void) { return 0xfedffbfffffff7ffUL; } +unsigned long foo_0xfddffbfffffff7ff(void) { return 0xfddffbfffffff7ffUL; } +unsigned long foo_0xfbdffbfffffff7ff(void) { return 0xfbdffbfffffff7ffUL; } +unsigned long foo_0xf7dffbfffffff7ff(void) { return 0xf7dffbfffffff7ffUL; } +unsigned long foo_0xefdffbfffffff7ff(void) { return 0xefdffbfffffff7ffUL; } +unsigned long foo_0xff3ffbfffffff7ff(void) { return 0xff3ffbfffffff7ffUL; } +unsigned long foo_0xfdbffbfffffff7ff(void) { return 0xfdbffbfffffff7ffUL; } +unsigned long foo_0xf7bffbfffffff7ff(void) { return 0xf7bffbfffffff7ffUL; } +unsigned long foo_0xfe7ffbfffffff7ff(void) { return 0xfe7ffbfffffff7ffUL; } +unsigned long foo_0xfd7ffbfffffff7ff(void) { return 0xfd7ffbfffffff7ffUL; } +unsigned long foo_0xfb7ffbfffffff7ff(void) { return 0xfb7ffbfffffff7ffUL; } +unsigned long foo_0xf77ffbfffffff7ff(void) { return 0xf77ffbfffffff7ffUL; } +unsigned long foo_0xef7ffbfffffff7ff(void) { return 0xef7ffbfffffff7ffUL; } +unsigned long foo_0xfcfffbfffffff7ff(void) { return 0xfcfffbfffffff7ffUL; } +unsigned long foo_0xf6fffbfffffff7ff(void) { return 0xf6fffbfffffff7ffUL; } +unsigned long foo_0xf9fffbfffffff7ff(void) { return 0xf9fffbfffffff7ffUL; } +unsigned long foo_0xf5fffbfffffff7ff(void) { return 0xf5fffbfffffff7ffUL; } +unsigned long foo_0xedfffbfffffff7ff(void) { return 0xedfffbfffffff7ffUL; } +unsigned long foo_0xf3fffbfffffff7ff(void) { return 0xf3fffbfffffff7ffUL; } +unsigned long foo_0xe7fffbfffffff7ff(void) { return 0xe7fffbfffffff7ffUL; } +unsigned long foo_0xffbfe7fffffff7ff(void) { return 0xffbfe7fffffff7ffUL; } +unsigned long foo_0xff7fe7fffffff7ff(void) { return 0xff7fe7fffffff7ffUL; } +unsigned long foo_0xfeffe7fffffff7ff(void) { return 0xfeffe7fffffff7ffUL; } +unsigned long foo_0xfdffe7fffffff7ff(void) { return 0xfdffe7fffffff7ffUL; } +unsigned long foo_0xfbffe7fffffff7ff(void) { return 0xfbffe7fffffff7ffUL; } +unsigned long foo_0xf7ffe7fffffff7ff(void) { return 0xf7ffe7fffffff7ffUL; } +unsigned long foo_0xefffe7fffffff7ff(void) { return 0xefffe7fffffff7ffUL; } +unsigned long foo_0xdfffe7fffffff7ff(void) { return 0xdfffe7fffffff7ffUL; } +unsigned long foo_0xffbfd7fffffff7ff(void) { return 0xffbfd7fffffff7ffUL; } +unsigned long foo_0xfeffd7fffffff7ff(void) { return 0xfeffd7fffffff7ffUL; } +unsigned long foo_0xfbffd7fffffff7ff(void) { return 0xfbffd7fffffff7ffUL; } +unsigned long foo_0xefffd7fffffff7ff(void) { return 0xefffd7fffffff7ffUL; } +unsigned long foo_0x7fffd7fffffff7ff(void) { return 0x7fffd7fffffff7ffUL; } +unsigned long foo_0xffbfb7fffffff7ff(void) { return 0xffbfb7fffffff7ffUL; } +unsigned long foo_0xff7fb7fffffff7ff(void) { return 0xff7fb7fffffff7ffUL; } +unsigned long foo_0xfeffb7fffffff7ff(void) { return 0xfeffb7fffffff7ffUL; } +unsigned long foo_0xfdffb7fffffff7ff(void) { return 0xfdffb7fffffff7ffUL; } +unsigned long foo_0xfbffb7fffffff7ff(void) { return 0xfbffb7fffffff7ffUL; } +unsigned long foo_0xf7ffb7fffffff7ff(void) { return 0xf7ffb7fffffff7ffUL; } +unsigned long foo_0xefffb7fffffff7ff(void) { return 0xefffb7fffffff7ffUL; } +unsigned long foo_0xdfffb7fffffff7ff(void) { return 0xdfffb7fffffff7ffUL; } +unsigned long foo_0x7fffb7fffffff7ff(void) { return 0x7fffb7fffffff7ffUL; } +unsigned long foo_0xffbf77fffffff7ff(void) { return 0xffbf77fffffff7ffUL; } +unsigned long foo_0xfeff77fffffff7ff(void) { return 0xfeff77fffffff7ffUL; } +unsigned long foo_0xfbff77fffffff7ff(void) { return 0xfbff77fffffff7ffUL; } +unsigned long foo_0xefff77fffffff7ff(void) { return 0xefff77fffffff7ffUL; } +unsigned long foo_0x7fff77fffffff7ff(void) { return 0x7fff77fffffff7ffUL; } +unsigned long foo_0xffbef7fffffff7ff(void) { return 0xffbef7fffffff7ffUL; } +unsigned long foo_0xff7ef7fffffff7ff(void) { return 0xff7ef7fffffff7ffUL; } +unsigned long foo_0xfefef7fffffff7ff(void) { return 0xfefef7fffffff7ffUL; } +unsigned long foo_0xfdfef7fffffff7ff(void) { return 0xfdfef7fffffff7ffUL; } +unsigned long foo_0xfbfef7fffffff7ff(void) { return 0xfbfef7fffffff7ffUL; } +unsigned long foo_0xf7fef7fffffff7ff(void) { return 0xf7fef7fffffff7ffUL; } +unsigned long foo_0xeffef7fffffff7ff(void) { return 0xeffef7fffffff7ffUL; } +unsigned long foo_0xdffef7fffffff7ff(void) { return 0xdffef7fffffff7ffUL; } +unsigned long foo_0x7ffef7fffffff7ff(void) { return 0x7ffef7fffffff7ffUL; } +unsigned long foo_0xffbdf7fffffff7ff(void) { return 0xffbdf7fffffff7ffUL; } +unsigned long foo_0xfefdf7fffffff7ff(void) { return 0xfefdf7fffffff7ffUL; } +unsigned long foo_0xfbfdf7fffffff7ff(void) { return 0xfbfdf7fffffff7ffUL; } +unsigned long foo_0xeffdf7fffffff7ff(void) { return 0xeffdf7fffffff7ffUL; } +unsigned long foo_0x7ffdf7fffffff7ff(void) { return 0x7ffdf7fffffff7ffUL; } +unsigned long foo_0xffbbf7fffffff7ff(void) { return 0xffbbf7fffffff7ffUL; } +unsigned long foo_0xff7bf7fffffff7ff(void) { return 0xff7bf7fffffff7ffUL; } +unsigned long foo_0xfefbf7fffffff7ff(void) { return 0xfefbf7fffffff7ffUL; } +unsigned long foo_0xfdfbf7fffffff7ff(void) { return 0xfdfbf7fffffff7ffUL; } +unsigned long foo_0xfbfbf7fffffff7ff(void) { return 0xfbfbf7fffffff7ffUL; } +unsigned long foo_0xf7fbf7fffffff7ff(void) { return 0xf7fbf7fffffff7ffUL; } +unsigned long foo_0xeffbf7fffffff7ff(void) { return 0xeffbf7fffffff7ffUL; } +unsigned long foo_0xdffbf7fffffff7ff(void) { return 0xdffbf7fffffff7ffUL; } +unsigned long foo_0x7ffbf7fffffff7ff(void) { return 0x7ffbf7fffffff7ffUL; } +unsigned long foo_0xffb7f7fffffff7ff(void) { return 0xffb7f7fffffff7ffUL; } +unsigned long foo_0xfef7f7fffffff7ff(void) { return 0xfef7f7fffffff7ffUL; } +unsigned long foo_0xfbf7f7fffffff7ff(void) { return 0xfbf7f7fffffff7ffUL; } +unsigned long foo_0xeff7f7fffffff7ff(void) { return 0xeff7f7fffffff7ffUL; } +unsigned long foo_0x7ff7f7fffffff7ff(void) { return 0x7ff7f7fffffff7ffUL; } +unsigned long foo_0xffaff7fffffff7ff(void) { return 0xffaff7fffffff7ffUL; } +unsigned long foo_0xff6ff7fffffff7ff(void) { return 0xff6ff7fffffff7ffUL; } +unsigned long foo_0xfeeff7fffffff7ff(void) { return 0xfeeff7fffffff7ffUL; } +unsigned long foo_0xfdeff7fffffff7ff(void) { return 0xfdeff7fffffff7ffUL; } +unsigned long foo_0xfbeff7fffffff7ff(void) { return 0xfbeff7fffffff7ffUL; } +unsigned long foo_0xf7eff7fffffff7ff(void) { return 0xf7eff7fffffff7ffUL; } +unsigned long foo_0xefeff7fffffff7ff(void) { return 0xefeff7fffffff7ffUL; } +unsigned long foo_0xdfeff7fffffff7ff(void) { return 0xdfeff7fffffff7ffUL; } +unsigned long foo_0x7feff7fffffff7ff(void) { return 0x7feff7fffffff7ffUL; } +unsigned long foo_0xff9ff7fffffff7ff(void) { return 0xff9ff7fffffff7ffUL; } +unsigned long foo_0xfedff7fffffff7ff(void) { return 0xfedff7fffffff7ffUL; } +unsigned long foo_0xfbdff7fffffff7ff(void) { return 0xfbdff7fffffff7ffUL; } +unsigned long foo_0xefdff7fffffff7ff(void) { return 0xefdff7fffffff7ffUL; } +unsigned long foo_0x7fdff7fffffff7ff(void) { return 0x7fdff7fffffff7ffUL; } +unsigned long foo_0xff3ff7fffffff7ff(void) { return 0xff3ff7fffffff7ffUL; } +unsigned long foo_0xfebff7fffffff7ff(void) { return 0xfebff7fffffff7ffUL; } +unsigned long foo_0xfdbff7fffffff7ff(void) { return 0xfdbff7fffffff7ffUL; } +unsigned long foo_0xfbbff7fffffff7ff(void) { return 0xfbbff7fffffff7ffUL; } +unsigned long foo_0xf7bff7fffffff7ff(void) { return 0xf7bff7fffffff7ffUL; } +unsigned long foo_0xefbff7fffffff7ff(void) { return 0xefbff7fffffff7ffUL; } +unsigned long foo_0xdfbff7fffffff7ff(void) { return 0xdfbff7fffffff7ffUL; } +unsigned long foo_0x7fbff7fffffff7ff(void) { return 0x7fbff7fffffff7ffUL; } +unsigned long foo_0xfe7ff7fffffff7ff(void) { return 0xfe7ff7fffffff7ffUL; } +unsigned long foo_0xfb7ff7fffffff7ff(void) { return 0xfb7ff7fffffff7ffUL; } +unsigned long foo_0xef7ff7fffffff7ff(void) { return 0xef7ff7fffffff7ffUL; } +unsigned long foo_0x7f7ff7fffffff7ff(void) { return 0x7f7ff7fffffff7ffUL; } +unsigned long foo_0xfcfff7fffffff7ff(void) { return 0xfcfff7fffffff7ffUL; } +unsigned long foo_0xfafff7fffffff7ff(void) { return 0xfafff7fffffff7ffUL; } +unsigned long foo_0xf6fff7fffffff7ff(void) { return 0xf6fff7fffffff7ffUL; } +unsigned long foo_0xeefff7fffffff7ff(void) { return 0xeefff7fffffff7ffUL; } +unsigned long foo_0xdefff7fffffff7ff(void) { return 0xdefff7fffffff7ffUL; } +unsigned long foo_0x7efff7fffffff7ff(void) { return 0x7efff7fffffff7ffUL; } +unsigned long foo_0xf9fff7fffffff7ff(void) { return 0xf9fff7fffffff7ffUL; } +unsigned long foo_0xedfff7fffffff7ff(void) { return 0xedfff7fffffff7ffUL; } +unsigned long foo_0x7dfff7fffffff7ff(void) { return 0x7dfff7fffffff7ffUL; } +unsigned long foo_0xf3fff7fffffff7ff(void) { return 0xf3fff7fffffff7ffUL; } +unsigned long foo_0xebfff7fffffff7ff(void) { return 0xebfff7fffffff7ffUL; } +unsigned long foo_0xdbfff7fffffff7ff(void) { return 0xdbfff7fffffff7ffUL; } +unsigned long foo_0x7bfff7fffffff7ff(void) { return 0x7bfff7fffffff7ffUL; } +unsigned long foo_0xe7fff7fffffff7ff(void) { return 0xe7fff7fffffff7ffUL; } +unsigned long foo_0x77fff7fffffff7ff(void) { return 0x77fff7fffffff7ffUL; } +unsigned long foo_0xcffff7fffffff7ff(void) { return 0xcffff7fffffff7ffUL; } +unsigned long foo_0x6ffff7fffffff7ff(void) { return 0x6ffff7fffffff7ffUL; } +unsigned long foo_0x5ffff7fffffff7ff(void) { return 0x5ffff7fffffff7ffUL; } +unsigned long foo_0xff7fcffffffff7ff(void) { return 0xff7fcffffffff7ffUL; } +unsigned long foo_0xfeffcffffffff7ff(void) { return 0xfeffcffffffff7ffUL; } +unsigned long foo_0xfdffcffffffff7ff(void) { return 0xfdffcffffffff7ffUL; } +unsigned long foo_0xfbffcffffffff7ff(void) { return 0xfbffcffffffff7ffUL; } +unsigned long foo_0xf7ffcffffffff7ff(void) { return 0xf7ffcffffffff7ffUL; } +unsigned long foo_0xefffcffffffff7ff(void) { return 0xefffcffffffff7ffUL; } +unsigned long foo_0xdfffcffffffff7ff(void) { return 0xdfffcffffffff7ffUL; } +unsigned long foo_0xbfffcffffffff7ff(void) { return 0xbfffcffffffff7ffUL; } +unsigned long foo_0xff7faffffffff7ff(void) { return 0xff7faffffffff7ffUL; } +unsigned long foo_0xfdffaffffffff7ff(void) { return 0xfdffaffffffff7ffUL; } +unsigned long foo_0xf7ffaffffffff7ff(void) { return 0xf7ffaffffffff7ffUL; } +unsigned long foo_0xdfffaffffffff7ff(void) { return 0xdfffaffffffff7ffUL; } +unsigned long foo_0xff7f6ffffffff7ff(void) { return 0xff7f6ffffffff7ffUL; } +unsigned long foo_0xfeff6ffffffff7ff(void) { return 0xfeff6ffffffff7ffUL; } +unsigned long foo_0xfdff6ffffffff7ff(void) { return 0xfdff6ffffffff7ffUL; } +unsigned long foo_0xfbff6ffffffff7ff(void) { return 0xfbff6ffffffff7ffUL; } +unsigned long foo_0xf7ff6ffffffff7ff(void) { return 0xf7ff6ffffffff7ffUL; } +unsigned long foo_0xefff6ffffffff7ff(void) { return 0xefff6ffffffff7ffUL; } +unsigned long foo_0xdfff6ffffffff7ff(void) { return 0xdfff6ffffffff7ffUL; } +unsigned long foo_0xbfff6ffffffff7ff(void) { return 0xbfff6ffffffff7ffUL; } +unsigned long foo_0x7fff6ffffffff7ff(void) { return 0x7fff6ffffffff7ffUL; } +unsigned long foo_0xff7eeffffffff7ff(void) { return 0xff7eeffffffff7ffUL; } +unsigned long foo_0xfdfeeffffffff7ff(void) { return 0xfdfeeffffffff7ffUL; } +unsigned long foo_0xf7feeffffffff7ff(void) { return 0xf7feeffffffff7ffUL; } +unsigned long foo_0xdffeeffffffff7ff(void) { return 0xdffeeffffffff7ffUL; } +unsigned long foo_0xff7deffffffff7ff(void) { return 0xff7deffffffff7ffUL; } +unsigned long foo_0xfefdeffffffff7ff(void) { return 0xfefdeffffffff7ffUL; } +unsigned long foo_0xfdfdeffffffff7ff(void) { return 0xfdfdeffffffff7ffUL; } +unsigned long foo_0xfbfdeffffffff7ff(void) { return 0xfbfdeffffffff7ffUL; } +unsigned long foo_0xf7fdeffffffff7ff(void) { return 0xf7fdeffffffff7ffUL; } +unsigned long foo_0xeffdeffffffff7ff(void) { return 0xeffdeffffffff7ffUL; } +unsigned long foo_0xdffdeffffffff7ff(void) { return 0xdffdeffffffff7ffUL; } +unsigned long foo_0xbffdeffffffff7ff(void) { return 0xbffdeffffffff7ffUL; } +unsigned long foo_0x7ffdeffffffff7ff(void) { return 0x7ffdeffffffff7ffUL; } +unsigned long foo_0xff7beffffffff7ff(void) { return 0xff7beffffffff7ffUL; } +unsigned long foo_0xfdfbeffffffff7ff(void) { return 0xfdfbeffffffff7ffUL; } +unsigned long foo_0xf7fbeffffffff7ff(void) { return 0xf7fbeffffffff7ffUL; } +unsigned long foo_0xdffbeffffffff7ff(void) { return 0xdffbeffffffff7ffUL; } +unsigned long foo_0xff77effffffff7ff(void) { return 0xff77effffffff7ffUL; } +unsigned long foo_0xfef7effffffff7ff(void) { return 0xfef7effffffff7ffUL; } +unsigned long foo_0xfdf7effffffff7ff(void) { return 0xfdf7effffffff7ffUL; } +unsigned long foo_0xfbf7effffffff7ff(void) { return 0xfbf7effffffff7ffUL; } +unsigned long foo_0xf7f7effffffff7ff(void) { return 0xf7f7effffffff7ffUL; } +unsigned long foo_0xeff7effffffff7ff(void) { return 0xeff7effffffff7ffUL; } +unsigned long foo_0xdff7effffffff7ff(void) { return 0xdff7effffffff7ffUL; } +unsigned long foo_0xbff7effffffff7ff(void) { return 0xbff7effffffff7ffUL; } +unsigned long foo_0x7ff7effffffff7ff(void) { return 0x7ff7effffffff7ffUL; } +unsigned long foo_0xff6feffffffff7ff(void) { return 0xff6feffffffff7ffUL; } +unsigned long foo_0xfdefeffffffff7ff(void) { return 0xfdefeffffffff7ffUL; } +unsigned long foo_0xf7efeffffffff7ff(void) { return 0xf7efeffffffff7ffUL; } +unsigned long foo_0xdfefeffffffff7ff(void) { return 0xdfefeffffffff7ffUL; } +unsigned long foo_0xff5feffffffff7ff(void) { return 0xff5feffffffff7ffUL; } +unsigned long foo_0xfedfeffffffff7ff(void) { return 0xfedfeffffffff7ffUL; } +unsigned long foo_0xfddfeffffffff7ff(void) { return 0xfddfeffffffff7ffUL; } +unsigned long foo_0xfbdfeffffffff7ff(void) { return 0xfbdfeffffffff7ffUL; } +unsigned long foo_0xf7dfeffffffff7ff(void) { return 0xf7dfeffffffff7ffUL; } +unsigned long foo_0xefdfeffffffff7ff(void) { return 0xefdfeffffffff7ffUL; } +unsigned long foo_0xdfdfeffffffff7ff(void) { return 0xdfdfeffffffff7ffUL; } +unsigned long foo_0xbfdfeffffffff7ff(void) { return 0xbfdfeffffffff7ffUL; } +unsigned long foo_0x7fdfeffffffff7ff(void) { return 0x7fdfeffffffff7ffUL; } +unsigned long foo_0xff3feffffffff7ff(void) { return 0xff3feffffffff7ffUL; } +unsigned long foo_0xfdbfeffffffff7ff(void) { return 0xfdbfeffffffff7ffUL; } +unsigned long foo_0xf7bfeffffffff7ff(void) { return 0xf7bfeffffffff7ffUL; } +unsigned long foo_0xdfbfeffffffff7ff(void) { return 0xdfbfeffffffff7ffUL; } +unsigned long foo_0xfe7feffffffff7ff(void) { return 0xfe7feffffffff7ffUL; } +unsigned long foo_0xfd7feffffffff7ff(void) { return 0xfd7feffffffff7ffUL; } +unsigned long foo_0xfb7feffffffff7ff(void) { return 0xfb7feffffffff7ffUL; } +unsigned long foo_0xf77feffffffff7ff(void) { return 0xf77feffffffff7ffUL; } +unsigned long foo_0xef7feffffffff7ff(void) { return 0xef7feffffffff7ffUL; } +unsigned long foo_0xdf7feffffffff7ff(void) { return 0xdf7feffffffff7ffUL; } +unsigned long foo_0xbf7feffffffff7ff(void) { return 0xbf7feffffffff7ffUL; } +unsigned long foo_0x7f7feffffffff7ff(void) { return 0x7f7feffffffff7ffUL; } +unsigned long foo_0xfcffeffffffff7ff(void) { return 0xfcffeffffffff7ffUL; } +unsigned long foo_0xf6ffeffffffff7ff(void) { return 0xf6ffeffffffff7ffUL; } +unsigned long foo_0xdeffeffffffff7ff(void) { return 0xdeffeffffffff7ffUL; } +unsigned long foo_0xf9ffeffffffff7ff(void) { return 0xf9ffeffffffff7ffUL; } +unsigned long foo_0xf5ffeffffffff7ff(void) { return 0xf5ffeffffffff7ffUL; } +unsigned long foo_0xedffeffffffff7ff(void) { return 0xedffeffffffff7ffUL; } +unsigned long foo_0xddffeffffffff7ff(void) { return 0xddffeffffffff7ffUL; } +unsigned long foo_0xbdffeffffffff7ff(void) { return 0xbdffeffffffff7ffUL; } +unsigned long foo_0x7dffeffffffff7ff(void) { return 0x7dffeffffffff7ffUL; } +unsigned long foo_0xf3ffeffffffff7ff(void) { return 0xf3ffeffffffff7ffUL; } +unsigned long foo_0xdbffeffffffff7ff(void) { return 0xdbffeffffffff7ffUL; } +unsigned long foo_0xe7ffeffffffff7ff(void) { return 0xe7ffeffffffff7ffUL; } +unsigned long foo_0xd7ffeffffffff7ff(void) { return 0xd7ffeffffffff7ffUL; } +unsigned long foo_0xb7ffeffffffff7ff(void) { return 0xb7ffeffffffff7ffUL; } +unsigned long foo_0x77ffeffffffff7ff(void) { return 0x77ffeffffffff7ffUL; } +unsigned long foo_0xcfffeffffffff7ff(void) { return 0xcfffeffffffff7ffUL; } +unsigned long foo_0x9fffeffffffff7ff(void) { return 0x9fffeffffffff7ffUL; } +unsigned long foo_0x5fffeffffffff7ff(void) { return 0x5fffeffffffff7ffUL; } +unsigned long foo_0xfeff9ffffffff7ff(void) { return 0xfeff9ffffffff7ffUL; } +unsigned long foo_0xfdff9ffffffff7ff(void) { return 0xfdff9ffffffff7ffUL; } +unsigned long foo_0xfbff9ffffffff7ff(void) { return 0xfbff9ffffffff7ffUL; } +unsigned long foo_0xf7ff9ffffffff7ff(void) { return 0xf7ff9ffffffff7ffUL; } +unsigned long foo_0xefff9ffffffff7ff(void) { return 0xefff9ffffffff7ffUL; } +unsigned long foo_0xdfff9ffffffff7ff(void) { return 0xdfff9ffffffff7ffUL; } +unsigned long foo_0xbfff9ffffffff7ff(void) { return 0xbfff9ffffffff7ffUL; } +unsigned long foo_0xfeff5ffffffff7ff(void) { return 0xfeff5ffffffff7ffUL; } +unsigned long foo_0xfbff5ffffffff7ff(void) { return 0xfbff5ffffffff7ffUL; } +unsigned long foo_0xefff5ffffffff7ff(void) { return 0xefff5ffffffff7ffUL; } +unsigned long foo_0xbfff5ffffffff7ff(void) { return 0xbfff5ffffffff7ffUL; } +unsigned long foo_0x7fff5ffffffff7ff(void) { return 0x7fff5ffffffff7ffUL; } +unsigned long foo_0xfefedffffffff7ff(void) { return 0xfefedffffffff7ffUL; } +unsigned long foo_0xfdfedffffffff7ff(void) { return 0xfdfedffffffff7ffUL; } +unsigned long foo_0xfbfedffffffff7ff(void) { return 0xfbfedffffffff7ffUL; } +unsigned long foo_0xf7fedffffffff7ff(void) { return 0xf7fedffffffff7ffUL; } +unsigned long foo_0xeffedffffffff7ff(void) { return 0xeffedffffffff7ffUL; } +unsigned long foo_0xdffedffffffff7ff(void) { return 0xdffedffffffff7ffUL; } +unsigned long foo_0xbffedffffffff7ff(void) { return 0xbffedffffffff7ffUL; } +unsigned long foo_0x7ffedffffffff7ff(void) { return 0x7ffedffffffff7ffUL; } +unsigned long foo_0xfefddffffffff7ff(void) { return 0xfefddffffffff7ffUL; } +unsigned long foo_0xfbfddffffffff7ff(void) { return 0xfbfddffffffff7ffUL; } +unsigned long foo_0xeffddffffffff7ff(void) { return 0xeffddffffffff7ffUL; } +unsigned long foo_0xbffddffffffff7ff(void) { return 0xbffddffffffff7ffUL; } +unsigned long foo_0x7ffddffffffff7ff(void) { return 0x7ffddffffffff7ffUL; } +unsigned long foo_0xfefbdffffffff7ff(void) { return 0xfefbdffffffff7ffUL; } +unsigned long foo_0xfdfbdffffffff7ff(void) { return 0xfdfbdffffffff7ffUL; } +unsigned long foo_0xfbfbdffffffff7ff(void) { return 0xfbfbdffffffff7ffUL; } +unsigned long foo_0xf7fbdffffffff7ff(void) { return 0xf7fbdffffffff7ffUL; } +unsigned long foo_0xeffbdffffffff7ff(void) { return 0xeffbdffffffff7ffUL; } +unsigned long foo_0xdffbdffffffff7ff(void) { return 0xdffbdffffffff7ffUL; } +unsigned long foo_0xbffbdffffffff7ff(void) { return 0xbffbdffffffff7ffUL; } +unsigned long foo_0x7ffbdffffffff7ff(void) { return 0x7ffbdffffffff7ffUL; } +unsigned long foo_0xfef7dffffffff7ff(void) { return 0xfef7dffffffff7ffUL; } +unsigned long foo_0xfbf7dffffffff7ff(void) { return 0xfbf7dffffffff7ffUL; } +unsigned long foo_0xeff7dffffffff7ff(void) { return 0xeff7dffffffff7ffUL; } +unsigned long foo_0xbff7dffffffff7ff(void) { return 0xbff7dffffffff7ffUL; } +unsigned long foo_0x7ff7dffffffff7ff(void) { return 0x7ff7dffffffff7ffUL; } +unsigned long foo_0xfeefdffffffff7ff(void) { return 0xfeefdffffffff7ffUL; } +unsigned long foo_0xfdefdffffffff7ff(void) { return 0xfdefdffffffff7ffUL; } +unsigned long foo_0xfbefdffffffff7ff(void) { return 0xfbefdffffffff7ffUL; } +unsigned long foo_0xf7efdffffffff7ff(void) { return 0xf7efdffffffff7ffUL; } +unsigned long foo_0xefefdffffffff7ff(void) { return 0xefefdffffffff7ffUL; } +unsigned long foo_0xdfefdffffffff7ff(void) { return 0xdfefdffffffff7ffUL; } +unsigned long foo_0xbfefdffffffff7ff(void) { return 0xbfefdffffffff7ffUL; } +unsigned long foo_0x7fefdffffffff7ff(void) { return 0x7fefdffffffff7ffUL; } +unsigned long foo_0xfedfdffffffff7ff(void) { return 0xfedfdffffffff7ffUL; } +unsigned long foo_0xfbdfdffffffff7ff(void) { return 0xfbdfdffffffff7ffUL; } +unsigned long foo_0xefdfdffffffff7ff(void) { return 0xefdfdffffffff7ffUL; } +unsigned long foo_0xbfdfdffffffff7ff(void) { return 0xbfdfdffffffff7ffUL; } +unsigned long foo_0x7fdfdffffffff7ff(void) { return 0x7fdfdffffffff7ffUL; } +unsigned long foo_0xfebfdffffffff7ff(void) { return 0xfebfdffffffff7ffUL; } +unsigned long foo_0xfdbfdffffffff7ff(void) { return 0xfdbfdffffffff7ffUL; } +unsigned long foo_0xfbbfdffffffff7ff(void) { return 0xfbbfdffffffff7ffUL; } +unsigned long foo_0xf7bfdffffffff7ff(void) { return 0xf7bfdffffffff7ffUL; } +unsigned long foo_0xefbfdffffffff7ff(void) { return 0xefbfdffffffff7ffUL; } +unsigned long foo_0xdfbfdffffffff7ff(void) { return 0xdfbfdffffffff7ffUL; } +unsigned long foo_0xbfbfdffffffff7ff(void) { return 0xbfbfdffffffff7ffUL; } +unsigned long foo_0x7fbfdffffffff7ff(void) { return 0x7fbfdffffffff7ffUL; } +unsigned long foo_0xfe7fdffffffff7ff(void) { return 0xfe7fdffffffff7ffUL; } +unsigned long foo_0xfb7fdffffffff7ff(void) { return 0xfb7fdffffffff7ffUL; } +unsigned long foo_0xef7fdffffffff7ff(void) { return 0xef7fdffffffff7ffUL; } +unsigned long foo_0xbf7fdffffffff7ff(void) { return 0xbf7fdffffffff7ffUL; } +unsigned long foo_0x7f7fdffffffff7ff(void) { return 0x7f7fdffffffff7ffUL; } +unsigned long foo_0xfcffdffffffff7ff(void) { return 0xfcffdffffffff7ffUL; } +unsigned long foo_0xfaffdffffffff7ff(void) { return 0xfaffdffffffff7ffUL; } +unsigned long foo_0xf6ffdffffffff7ff(void) { return 0xf6ffdffffffff7ffUL; } +unsigned long foo_0xeeffdffffffff7ff(void) { return 0xeeffdffffffff7ffUL; } +unsigned long foo_0xdeffdffffffff7ff(void) { return 0xdeffdffffffff7ffUL; } +unsigned long foo_0xbeffdffffffff7ff(void) { return 0xbeffdffffffff7ffUL; } +unsigned long foo_0x7effdffffffff7ff(void) { return 0x7effdffffffff7ffUL; } +unsigned long foo_0xf9ffdffffffff7ff(void) { return 0xf9ffdffffffff7ffUL; } +unsigned long foo_0xedffdffffffff7ff(void) { return 0xedffdffffffff7ffUL; } +unsigned long foo_0xbdffdffffffff7ff(void) { return 0xbdffdffffffff7ffUL; } +unsigned long foo_0x7dffdffffffff7ff(void) { return 0x7dffdffffffff7ffUL; } +unsigned long foo_0xf3ffdffffffff7ff(void) { return 0xf3ffdffffffff7ffUL; } +unsigned long foo_0xebffdffffffff7ff(void) { return 0xebffdffffffff7ffUL; } +unsigned long foo_0xdbffdffffffff7ff(void) { return 0xdbffdffffffff7ffUL; } +unsigned long foo_0xbbffdffffffff7ff(void) { return 0xbbffdffffffff7ffUL; } +unsigned long foo_0x7bffdffffffff7ff(void) { return 0x7bffdffffffff7ffUL; } +unsigned long foo_0xe7ffdffffffff7ff(void) { return 0xe7ffdffffffff7ffUL; } +unsigned long foo_0xb7ffdffffffff7ff(void) { return 0xb7ffdffffffff7ffUL; } +unsigned long foo_0x77ffdffffffff7ff(void) { return 0x77ffdffffffff7ffUL; } +unsigned long foo_0xcfffdffffffff7ff(void) { return 0xcfffdffffffff7ffUL; } +unsigned long foo_0xafffdffffffff7ff(void) { return 0xafffdffffffff7ffUL; } +unsigned long foo_0x6fffdffffffff7ff(void) { return 0x6fffdffffffff7ffUL; } +unsigned long foo_0x9fffdffffffff7ff(void) { return 0x9fffdffffffff7ffUL; } +unsigned long foo_0x5fffdffffffff7ff(void) { return 0x5fffdffffffff7ffUL; } +unsigned long foo_0xfdff3ffffffff7ff(void) { return 0xfdff3ffffffff7ffUL; } +unsigned long foo_0xfbff3ffffffff7ff(void) { return 0xfbff3ffffffff7ffUL; } +unsigned long foo_0xf7ff3ffffffff7ff(void) { return 0xf7ff3ffffffff7ffUL; } +unsigned long foo_0xefff3ffffffff7ff(void) { return 0xefff3ffffffff7ffUL; } +unsigned long foo_0xdfff3ffffffff7ff(void) { return 0xdfff3ffffffff7ffUL; } +unsigned long foo_0xbfff3ffffffff7ff(void) { return 0xbfff3ffffffff7ffUL; } +unsigned long foo_0xfdfebffffffff7ff(void) { return 0xfdfebffffffff7ffUL; } +unsigned long foo_0xf7febffffffff7ff(void) { return 0xf7febffffffff7ffUL; } +unsigned long foo_0xdffebffffffff7ff(void) { return 0xdffebffffffff7ffUL; } +unsigned long foo_0xfdfdbffffffff7ff(void) { return 0xfdfdbffffffff7ffUL; } +unsigned long foo_0xfbfdbffffffff7ff(void) { return 0xfbfdbffffffff7ffUL; } +unsigned long foo_0xf7fdbffffffff7ff(void) { return 0xf7fdbffffffff7ffUL; } +unsigned long foo_0xeffdbffffffff7ff(void) { return 0xeffdbffffffff7ffUL; } +unsigned long foo_0xdffdbffffffff7ff(void) { return 0xdffdbffffffff7ffUL; } +unsigned long foo_0xbffdbffffffff7ff(void) { return 0xbffdbffffffff7ffUL; } +unsigned long foo_0x7ffdbffffffff7ff(void) { return 0x7ffdbffffffff7ffUL; } +unsigned long foo_0xfdfbbffffffff7ff(void) { return 0xfdfbbffffffff7ffUL; } +unsigned long foo_0xf7fbbffffffff7ff(void) { return 0xf7fbbffffffff7ffUL; } +unsigned long foo_0xdffbbffffffff7ff(void) { return 0xdffbbffffffff7ffUL; } +unsigned long foo_0xfdf7bffffffff7ff(void) { return 0xfdf7bffffffff7ffUL; } +unsigned long foo_0xfbf7bffffffff7ff(void) { return 0xfbf7bffffffff7ffUL; } +unsigned long foo_0xf7f7bffffffff7ff(void) { return 0xf7f7bffffffff7ffUL; } +unsigned long foo_0xeff7bffffffff7ff(void) { return 0xeff7bffffffff7ffUL; } +unsigned long foo_0xdff7bffffffff7ff(void) { return 0xdff7bffffffff7ffUL; } +unsigned long foo_0xbff7bffffffff7ff(void) { return 0xbff7bffffffff7ffUL; } +unsigned long foo_0x7ff7bffffffff7ff(void) { return 0x7ff7bffffffff7ffUL; } +unsigned long foo_0xfdefbffffffff7ff(void) { return 0xfdefbffffffff7ffUL; } +unsigned long foo_0xf7efbffffffff7ff(void) { return 0xf7efbffffffff7ffUL; } +unsigned long foo_0xdfefbffffffff7ff(void) { return 0xdfefbffffffff7ffUL; } +unsigned long foo_0xfddfbffffffff7ff(void) { return 0xfddfbffffffff7ffUL; } +unsigned long foo_0xfbdfbffffffff7ff(void) { return 0xfbdfbffffffff7ffUL; } +unsigned long foo_0xf7dfbffffffff7ff(void) { return 0xf7dfbffffffff7ffUL; } +unsigned long foo_0xefdfbffffffff7ff(void) { return 0xefdfbffffffff7ffUL; } +unsigned long foo_0xdfdfbffffffff7ff(void) { return 0xdfdfbffffffff7ffUL; } +unsigned long foo_0xbfdfbffffffff7ff(void) { return 0xbfdfbffffffff7ffUL; } +unsigned long foo_0x7fdfbffffffff7ff(void) { return 0x7fdfbffffffff7ffUL; } +unsigned long foo_0xfdbfbffffffff7ff(void) { return 0xfdbfbffffffff7ffUL; } +unsigned long foo_0xf7bfbffffffff7ff(void) { return 0xf7bfbffffffff7ffUL; } +unsigned long foo_0xdfbfbffffffff7ff(void) { return 0xdfbfbffffffff7ffUL; } +unsigned long foo_0xfd7fbffffffff7ff(void) { return 0xfd7fbffffffff7ffUL; } +unsigned long foo_0xfb7fbffffffff7ff(void) { return 0xfb7fbffffffff7ffUL; } +unsigned long foo_0xf77fbffffffff7ff(void) { return 0xf77fbffffffff7ffUL; } +unsigned long foo_0xef7fbffffffff7ff(void) { return 0xef7fbffffffff7ffUL; } +unsigned long foo_0xdf7fbffffffff7ff(void) { return 0xdf7fbffffffff7ffUL; } +unsigned long foo_0xbf7fbffffffff7ff(void) { return 0xbf7fbffffffff7ffUL; } +unsigned long foo_0x7f7fbffffffff7ff(void) { return 0x7f7fbffffffff7ffUL; } +unsigned long foo_0xfcffbffffffff7ff(void) { return 0xfcffbffffffff7ffUL; } +unsigned long foo_0xf6ffbffffffff7ff(void) { return 0xf6ffbffffffff7ffUL; } +unsigned long foo_0xdeffbffffffff7ff(void) { return 0xdeffbffffffff7ffUL; } +unsigned long foo_0xf9ffbffffffff7ff(void) { return 0xf9ffbffffffff7ffUL; } +unsigned long foo_0xf5ffbffffffff7ff(void) { return 0xf5ffbffffffff7ffUL; } +unsigned long foo_0xedffbffffffff7ff(void) { return 0xedffbffffffff7ffUL; } +unsigned long foo_0xddffbffffffff7ff(void) { return 0xddffbffffffff7ffUL; } +unsigned long foo_0xbdffbffffffff7ff(void) { return 0xbdffbffffffff7ffUL; } +unsigned long foo_0x7dffbffffffff7ff(void) { return 0x7dffbffffffff7ffUL; } +unsigned long foo_0xf3ffbffffffff7ff(void) { return 0xf3ffbffffffff7ffUL; } +unsigned long foo_0xdbffbffffffff7ff(void) { return 0xdbffbffffffff7ffUL; } +unsigned long foo_0xe7ffbffffffff7ff(void) { return 0xe7ffbffffffff7ffUL; } +unsigned long foo_0xd7ffbffffffff7ff(void) { return 0xd7ffbffffffff7ffUL; } +unsigned long foo_0xb7ffbffffffff7ff(void) { return 0xb7ffbffffffff7ffUL; } +unsigned long foo_0x77ffbffffffff7ff(void) { return 0x77ffbffffffff7ffUL; } +unsigned long foo_0xcfffbffffffff7ff(void) { return 0xcfffbffffffff7ffUL; } +unsigned long foo_0x9fffbffffffff7ff(void) { return 0x9fffbffffffff7ffUL; } +unsigned long foo_0x5fffbffffffff7ff(void) { return 0x5fffbffffffff7ffUL; } +unsigned long foo_0xfbfe7ffffffff7ff(void) { return 0xfbfe7ffffffff7ffUL; } +unsigned long foo_0xf7fe7ffffffff7ff(void) { return 0xf7fe7ffffffff7ffUL; } +unsigned long foo_0xeffe7ffffffff7ff(void) { return 0xeffe7ffffffff7ffUL; } +unsigned long foo_0xdffe7ffffffff7ff(void) { return 0xdffe7ffffffff7ffUL; } +unsigned long foo_0xbffe7ffffffff7ff(void) { return 0xbffe7ffffffff7ffUL; } +unsigned long foo_0xfbfd7ffffffff7ff(void) { return 0xfbfd7ffffffff7ffUL; } +unsigned long foo_0xeffd7ffffffff7ff(void) { return 0xeffd7ffffffff7ffUL; } +unsigned long foo_0xbffd7ffffffff7ff(void) { return 0xbffd7ffffffff7ffUL; } +unsigned long foo_0x7ffd7ffffffff7ff(void) { return 0x7ffd7ffffffff7ffUL; } +unsigned long foo_0xfbfb7ffffffff7ff(void) { return 0xfbfb7ffffffff7ffUL; } +unsigned long foo_0xf7fb7ffffffff7ff(void) { return 0xf7fb7ffffffff7ffUL; } +unsigned long foo_0xeffb7ffffffff7ff(void) { return 0xeffb7ffffffff7ffUL; } +unsigned long foo_0xdffb7ffffffff7ff(void) { return 0xdffb7ffffffff7ffUL; } +unsigned long foo_0xbffb7ffffffff7ff(void) { return 0xbffb7ffffffff7ffUL; } +unsigned long foo_0x7ffb7ffffffff7ff(void) { return 0x7ffb7ffffffff7ffUL; } +unsigned long foo_0xfbf77ffffffff7ff(void) { return 0xfbf77ffffffff7ffUL; } +unsigned long foo_0xeff77ffffffff7ff(void) { return 0xeff77ffffffff7ffUL; } +unsigned long foo_0xbff77ffffffff7ff(void) { return 0xbff77ffffffff7ffUL; } +unsigned long foo_0x7ff77ffffffff7ff(void) { return 0x7ff77ffffffff7ffUL; } +unsigned long foo_0xfbef7ffffffff7ff(void) { return 0xfbef7ffffffff7ffUL; } +unsigned long foo_0xf7ef7ffffffff7ff(void) { return 0xf7ef7ffffffff7ffUL; } +unsigned long foo_0xefef7ffffffff7ff(void) { return 0xefef7ffffffff7ffUL; } +unsigned long foo_0xdfef7ffffffff7ff(void) { return 0xdfef7ffffffff7ffUL; } +unsigned long foo_0xbfef7ffffffff7ff(void) { return 0xbfef7ffffffff7ffUL; } +unsigned long foo_0x7fef7ffffffff7ff(void) { return 0x7fef7ffffffff7ffUL; } +unsigned long foo_0xfbdf7ffffffff7ff(void) { return 0xfbdf7ffffffff7ffUL; } +unsigned long foo_0xefdf7ffffffff7ff(void) { return 0xefdf7ffffffff7ffUL; } +unsigned long foo_0xbfdf7ffffffff7ff(void) { return 0xbfdf7ffffffff7ffUL; } +unsigned long foo_0x7fdf7ffffffff7ff(void) { return 0x7fdf7ffffffff7ffUL; } +unsigned long foo_0xfbbf7ffffffff7ff(void) { return 0xfbbf7ffffffff7ffUL; } +unsigned long foo_0xf7bf7ffffffff7ff(void) { return 0xf7bf7ffffffff7ffUL; } +unsigned long foo_0xefbf7ffffffff7ff(void) { return 0xefbf7ffffffff7ffUL; } +unsigned long foo_0xdfbf7ffffffff7ff(void) { return 0xdfbf7ffffffff7ffUL; } +unsigned long foo_0xbfbf7ffffffff7ff(void) { return 0xbfbf7ffffffff7ffUL; } +unsigned long foo_0x7fbf7ffffffff7ff(void) { return 0x7fbf7ffffffff7ffUL; } +unsigned long foo_0xfb7f7ffffffff7ff(void) { return 0xfb7f7ffffffff7ffUL; } +unsigned long foo_0xef7f7ffffffff7ff(void) { return 0xef7f7ffffffff7ffUL; } +unsigned long foo_0xbf7f7ffffffff7ff(void) { return 0xbf7f7ffffffff7ffUL; } +unsigned long foo_0x7f7f7ffffffff7ff(void) { return 0x7f7f7ffffffff7ffUL; } +unsigned long foo_0xfaff7ffffffff7ff(void) { return 0xfaff7ffffffff7ffUL; } +unsigned long foo_0xf6ff7ffffffff7ff(void) { return 0xf6ff7ffffffff7ffUL; } +unsigned long foo_0xeeff7ffffffff7ff(void) { return 0xeeff7ffffffff7ffUL; } +unsigned long foo_0xdeff7ffffffff7ff(void) { return 0xdeff7ffffffff7ffUL; } +unsigned long foo_0xbeff7ffffffff7ff(void) { return 0xbeff7ffffffff7ffUL; } +unsigned long foo_0x7eff7ffffffff7ff(void) { return 0x7eff7ffffffff7ffUL; } +unsigned long foo_0xf9ff7ffffffff7ff(void) { return 0xf9ff7ffffffff7ffUL; } +unsigned long foo_0xedff7ffffffff7ff(void) { return 0xedff7ffffffff7ffUL; } +unsigned long foo_0xbdff7ffffffff7ff(void) { return 0xbdff7ffffffff7ffUL; } +unsigned long foo_0x7dff7ffffffff7ff(void) { return 0x7dff7ffffffff7ffUL; } +unsigned long foo_0xf3ff7ffffffff7ff(void) { return 0xf3ff7ffffffff7ffUL; } +unsigned long foo_0xebff7ffffffff7ff(void) { return 0xebff7ffffffff7ffUL; } +unsigned long foo_0xdbff7ffffffff7ff(void) { return 0xdbff7ffffffff7ffUL; } +unsigned long foo_0xbbff7ffffffff7ff(void) { return 0xbbff7ffffffff7ffUL; } +unsigned long foo_0x7bff7ffffffff7ff(void) { return 0x7bff7ffffffff7ffUL; } +unsigned long foo_0xe7ff7ffffffff7ff(void) { return 0xe7ff7ffffffff7ffUL; } +unsigned long foo_0xb7ff7ffffffff7ff(void) { return 0xb7ff7ffffffff7ffUL; } +unsigned long foo_0x77ff7ffffffff7ff(void) { return 0x77ff7ffffffff7ffUL; } +unsigned long foo_0xcfff7ffffffff7ff(void) { return 0xcfff7ffffffff7ffUL; } +unsigned long foo_0xafff7ffffffff7ff(void) { return 0xafff7ffffffff7ffUL; } +unsigned long foo_0x6fff7ffffffff7ff(void) { return 0x6fff7ffffffff7ffUL; } +unsigned long foo_0x9fff7ffffffff7ff(void) { return 0x9fff7ffffffff7ffUL; } +unsigned long foo_0x5fff7ffffffff7ff(void) { return 0x5fff7ffffffff7ffUL; } +unsigned long foo_0xf7fcfffffffff7ff(void) { return 0xf7fcfffffffff7ffUL; } +unsigned long foo_0xeffcfffffffff7ff(void) { return 0xeffcfffffffff7ffUL; } +unsigned long foo_0xdffcfffffffff7ff(void) { return 0xdffcfffffffff7ffUL; } +unsigned long foo_0xbffcfffffffff7ff(void) { return 0xbffcfffffffff7ffUL; } +unsigned long foo_0xf7fafffffffff7ff(void) { return 0xf7fafffffffff7ffUL; } +unsigned long foo_0xdffafffffffff7ff(void) { return 0xdffafffffffff7ffUL; } +unsigned long foo_0xf7f6fffffffff7ff(void) { return 0xf7f6fffffffff7ffUL; } +unsigned long foo_0xeff6fffffffff7ff(void) { return 0xeff6fffffffff7ffUL; } +unsigned long foo_0xdff6fffffffff7ff(void) { return 0xdff6fffffffff7ffUL; } +unsigned long foo_0xbff6fffffffff7ff(void) { return 0xbff6fffffffff7ffUL; } +unsigned long foo_0x7ff6fffffffff7ff(void) { return 0x7ff6fffffffff7ffUL; } +unsigned long foo_0xf7eefffffffff7ff(void) { return 0xf7eefffffffff7ffUL; } +unsigned long foo_0xdfeefffffffff7ff(void) { return 0xdfeefffffffff7ffUL; } +unsigned long foo_0xf7defffffffff7ff(void) { return 0xf7defffffffff7ffUL; } +unsigned long foo_0xefdefffffffff7ff(void) { return 0xefdefffffffff7ffUL; } +unsigned long foo_0xdfdefffffffff7ff(void) { return 0xdfdefffffffff7ffUL; } +unsigned long foo_0xbfdefffffffff7ff(void) { return 0xbfdefffffffff7ffUL; } +unsigned long foo_0x7fdefffffffff7ff(void) { return 0x7fdefffffffff7ffUL; } +unsigned long foo_0xf7befffffffff7ff(void) { return 0xf7befffffffff7ffUL; } +unsigned long foo_0xdfbefffffffff7ff(void) { return 0xdfbefffffffff7ffUL; } +unsigned long foo_0xf77efffffffff7ff(void) { return 0xf77efffffffff7ffUL; } +unsigned long foo_0xef7efffffffff7ff(void) { return 0xef7efffffffff7ffUL; } +unsigned long foo_0xdf7efffffffff7ff(void) { return 0xdf7efffffffff7ffUL; } +unsigned long foo_0xbf7efffffffff7ff(void) { return 0xbf7efffffffff7ffUL; } +unsigned long foo_0x7f7efffffffff7ff(void) { return 0x7f7efffffffff7ffUL; } +unsigned long foo_0xf6fefffffffff7ff(void) { return 0xf6fefffffffff7ffUL; } +unsigned long foo_0xdefefffffffff7ff(void) { return 0xdefefffffffff7ffUL; } +unsigned long foo_0xf5fefffffffff7ff(void) { return 0xf5fefffffffff7ffUL; } +unsigned long foo_0xedfefffffffff7ff(void) { return 0xedfefffffffff7ffUL; } +unsigned long foo_0xddfefffffffff7ff(void) { return 0xddfefffffffff7ffUL; } +unsigned long foo_0xbdfefffffffff7ff(void) { return 0xbdfefffffffff7ffUL; } +unsigned long foo_0x7dfefffffffff7ff(void) { return 0x7dfefffffffff7ffUL; } +unsigned long foo_0xf3fefffffffff7ff(void) { return 0xf3fefffffffff7ffUL; } +unsigned long foo_0xdbfefffffffff7ff(void) { return 0xdbfefffffffff7ffUL; } +unsigned long foo_0xe7fefffffffff7ff(void) { return 0xe7fefffffffff7ffUL; } +unsigned long foo_0xd7fefffffffff7ff(void) { return 0xd7fefffffffff7ffUL; } +unsigned long foo_0xb7fefffffffff7ff(void) { return 0xb7fefffffffff7ffUL; } +unsigned long foo_0x77fefffffffff7ff(void) { return 0x77fefffffffff7ffUL; } +unsigned long foo_0xcffefffffffff7ff(void) { return 0xcffefffffffff7ffUL; } +unsigned long foo_0x9ffefffffffff7ff(void) { return 0x9ffefffffffff7ffUL; } +unsigned long foo_0x5ffefffffffff7ff(void) { return 0x5ffefffffffff7ffUL; } +unsigned long foo_0xeff9fffffffff7ff(void) { return 0xeff9fffffffff7ffUL; } +unsigned long foo_0xdff9fffffffff7ff(void) { return 0xdff9fffffffff7ffUL; } +unsigned long foo_0xbff9fffffffff7ff(void) { return 0xbff9fffffffff7ffUL; } +unsigned long foo_0xeff5fffffffff7ff(void) { return 0xeff5fffffffff7ffUL; } +unsigned long foo_0xbff5fffffffff7ff(void) { return 0xbff5fffffffff7ffUL; } +unsigned long foo_0x7ff5fffffffff7ff(void) { return 0x7ff5fffffffff7ffUL; } +unsigned long foo_0xefedfffffffff7ff(void) { return 0xefedfffffffff7ffUL; } +unsigned long foo_0xdfedfffffffff7ff(void) { return 0xdfedfffffffff7ffUL; } +unsigned long foo_0xbfedfffffffff7ff(void) { return 0xbfedfffffffff7ffUL; } +unsigned long foo_0x7fedfffffffff7ff(void) { return 0x7fedfffffffff7ffUL; } +unsigned long foo_0xefddfffffffff7ff(void) { return 0xefddfffffffff7ffUL; } +unsigned long foo_0xbfddfffffffff7ff(void) { return 0xbfddfffffffff7ffUL; } +unsigned long foo_0x7fddfffffffff7ff(void) { return 0x7fddfffffffff7ffUL; } +unsigned long foo_0xefbdfffffffff7ff(void) { return 0xefbdfffffffff7ffUL; } +unsigned long foo_0xdfbdfffffffff7ff(void) { return 0xdfbdfffffffff7ffUL; } +unsigned long foo_0xbfbdfffffffff7ff(void) { return 0xbfbdfffffffff7ffUL; } +unsigned long foo_0x7fbdfffffffff7ff(void) { return 0x7fbdfffffffff7ffUL; } +unsigned long foo_0xef7dfffffffff7ff(void) { return 0xef7dfffffffff7ffUL; } +unsigned long foo_0xbf7dfffffffff7ff(void) { return 0xbf7dfffffffff7ffUL; } +unsigned long foo_0x7f7dfffffffff7ff(void) { return 0x7f7dfffffffff7ffUL; } +unsigned long foo_0xeefdfffffffff7ff(void) { return 0xeefdfffffffff7ffUL; } +unsigned long foo_0xdefdfffffffff7ff(void) { return 0xdefdfffffffff7ffUL; } +unsigned long foo_0xbefdfffffffff7ff(void) { return 0xbefdfffffffff7ffUL; } +unsigned long foo_0x7efdfffffffff7ff(void) { return 0x7efdfffffffff7ffUL; } +unsigned long foo_0xedfdfffffffff7ff(void) { return 0xedfdfffffffff7ffUL; } +unsigned long foo_0xbdfdfffffffff7ff(void) { return 0xbdfdfffffffff7ffUL; } +unsigned long foo_0x7dfdfffffffff7ff(void) { return 0x7dfdfffffffff7ffUL; } +unsigned long foo_0xebfdfffffffff7ff(void) { return 0xebfdfffffffff7ffUL; } +unsigned long foo_0xdbfdfffffffff7ff(void) { return 0xdbfdfffffffff7ffUL; } +unsigned long foo_0xbbfdfffffffff7ff(void) { return 0xbbfdfffffffff7ffUL; } +unsigned long foo_0x7bfdfffffffff7ff(void) { return 0x7bfdfffffffff7ffUL; } +unsigned long foo_0xe7fdfffffffff7ff(void) { return 0xe7fdfffffffff7ffUL; } +unsigned long foo_0xb7fdfffffffff7ff(void) { return 0xb7fdfffffffff7ffUL; } +unsigned long foo_0x77fdfffffffff7ff(void) { return 0x77fdfffffffff7ffUL; } +unsigned long foo_0xcffdfffffffff7ff(void) { return 0xcffdfffffffff7ffUL; } +unsigned long foo_0xaffdfffffffff7ff(void) { return 0xaffdfffffffff7ffUL; } +unsigned long foo_0x6ffdfffffffff7ff(void) { return 0x6ffdfffffffff7ffUL; } +unsigned long foo_0x9ffdfffffffff7ff(void) { return 0x9ffdfffffffff7ffUL; } +unsigned long foo_0x5ffdfffffffff7ff(void) { return 0x5ffdfffffffff7ffUL; } +unsigned long foo_0xdff3fffffffff7ff(void) { return 0xdff3fffffffff7ffUL; } +unsigned long foo_0xbff3fffffffff7ff(void) { return 0xbff3fffffffff7ffUL; } +unsigned long foo_0xdfebfffffffff7ff(void) { return 0xdfebfffffffff7ffUL; } +unsigned long foo_0xdfdbfffffffff7ff(void) { return 0xdfdbfffffffff7ffUL; } +unsigned long foo_0xbfdbfffffffff7ff(void) { return 0xbfdbfffffffff7ffUL; } +unsigned long foo_0x7fdbfffffffff7ff(void) { return 0x7fdbfffffffff7ffUL; } +unsigned long foo_0xdfbbfffffffff7ff(void) { return 0xdfbbfffffffff7ffUL; } +unsigned long foo_0xdf7bfffffffff7ff(void) { return 0xdf7bfffffffff7ffUL; } +unsigned long foo_0xbf7bfffffffff7ff(void) { return 0xbf7bfffffffff7ffUL; } +unsigned long foo_0x7f7bfffffffff7ff(void) { return 0x7f7bfffffffff7ffUL; } +unsigned long foo_0xdefbfffffffff7ff(void) { return 0xdefbfffffffff7ffUL; } +unsigned long foo_0xddfbfffffffff7ff(void) { return 0xddfbfffffffff7ffUL; } +unsigned long foo_0xbdfbfffffffff7ff(void) { return 0xbdfbfffffffff7ffUL; } +unsigned long foo_0x7dfbfffffffff7ff(void) { return 0x7dfbfffffffff7ffUL; } +unsigned long foo_0xdbfbfffffffff7ff(void) { return 0xdbfbfffffffff7ffUL; } +unsigned long foo_0xd7fbfffffffff7ff(void) { return 0xd7fbfffffffff7ffUL; } +unsigned long foo_0xb7fbfffffffff7ff(void) { return 0xb7fbfffffffff7ffUL; } +unsigned long foo_0x77fbfffffffff7ff(void) { return 0x77fbfffffffff7ffUL; } +unsigned long foo_0xcffbfffffffff7ff(void) { return 0xcffbfffffffff7ffUL; } +unsigned long foo_0x9ffbfffffffff7ff(void) { return 0x9ffbfffffffff7ffUL; } +unsigned long foo_0x5ffbfffffffff7ff(void) { return 0x5ffbfffffffff7ffUL; } +unsigned long foo_0xbfe7fffffffff7ff(void) { return 0xbfe7fffffffff7ffUL; } +unsigned long foo_0xbfd7fffffffff7ff(void) { return 0xbfd7fffffffff7ffUL; } +unsigned long foo_0x7fd7fffffffff7ff(void) { return 0x7fd7fffffffff7ffUL; } +unsigned long foo_0xbfb7fffffffff7ff(void) { return 0xbfb7fffffffff7ffUL; } +unsigned long foo_0x7fb7fffffffff7ff(void) { return 0x7fb7fffffffff7ffUL; } +unsigned long foo_0xbf77fffffffff7ff(void) { return 0xbf77fffffffff7ffUL; } +unsigned long foo_0x7f77fffffffff7ff(void) { return 0x7f77fffffffff7ffUL; } +unsigned long foo_0xbef7fffffffff7ff(void) { return 0xbef7fffffffff7ffUL; } +unsigned long foo_0x7ef7fffffffff7ff(void) { return 0x7ef7fffffffff7ffUL; } +unsigned long foo_0xbdf7fffffffff7ff(void) { return 0xbdf7fffffffff7ffUL; } +unsigned long foo_0x7df7fffffffff7ff(void) { return 0x7df7fffffffff7ffUL; } +unsigned long foo_0xbbf7fffffffff7ff(void) { return 0xbbf7fffffffff7ffUL; } +unsigned long foo_0x7bf7fffffffff7ff(void) { return 0x7bf7fffffffff7ffUL; } +unsigned long foo_0xb7f7fffffffff7ff(void) { return 0xb7f7fffffffff7ffUL; } +unsigned long foo_0x77f7fffffffff7ff(void) { return 0x77f7fffffffff7ffUL; } +unsigned long foo_0xaff7fffffffff7ff(void) { return 0xaff7fffffffff7ffUL; } +unsigned long foo_0x6ff7fffffffff7ff(void) { return 0x6ff7fffffffff7ffUL; } +unsigned long foo_0x9ff7fffffffff7ff(void) { return 0x9ff7fffffffff7ffUL; } +unsigned long foo_0x5ff7fffffffff7ff(void) { return 0x5ff7fffffffff7ffUL; } +unsigned long foo_0x7f6ffffffffff7ff(void) { return 0x7f6ffffffffff7ffUL; } +unsigned long foo_0x7deffffffffff7ff(void) { return 0x7deffffffffff7ffUL; } +unsigned long foo_0x77effffffffff7ff(void) { return 0x77effffffffff7ffUL; } +unsigned long foo_0x5feffffffffff7ff(void) { return 0x5feffffffffff7ffUL; } +unsigned long foo_0x7f5ffffffffff7ff(void) { return 0x7f5ffffffffff7ffUL; } +unsigned long foo_0x7edffffffffff7ff(void) { return 0x7edffffffffff7ffUL; } +unsigned long foo_0x7ddffffffffff7ff(void) { return 0x7ddffffffffff7ffUL; } +unsigned long foo_0x7bdffffffffff7ff(void) { return 0x7bdffffffffff7ffUL; } +unsigned long foo_0x77dffffffffff7ff(void) { return 0x77dffffffffff7ffUL; } +unsigned long foo_0x6fdffffffffff7ff(void) { return 0x6fdffffffffff7ffUL; } +unsigned long foo_0x5fdffffffffff7ff(void) { return 0x5fdffffffffff7ffUL; } +unsigned long foo_0x7dbffffffffff7ff(void) { return 0x7dbffffffffff7ffUL; } +unsigned long foo_0x77bffffffffff7ff(void) { return 0x77bffffffffff7ffUL; } +unsigned long foo_0x5fbffffffffff7ff(void) { return 0x5fbffffffffff7ffUL; } +unsigned long foo_0x7d7ffffffffff7ff(void) { return 0x7d7ffffffffff7ffUL; } +unsigned long foo_0x7b7ffffffffff7ff(void) { return 0x7b7ffffffffff7ffUL; } +unsigned long foo_0x777ffffffffff7ff(void) { return 0x777ffffffffff7ffUL; } +unsigned long foo_0x6f7ffffffffff7ff(void) { return 0x6f7ffffffffff7ffUL; } +unsigned long foo_0x5f7ffffffffff7ff(void) { return 0x5f7ffffffffff7ffUL; } +unsigned long foo_0x76fffffffffff7ff(void) { return 0x76fffffffffff7ffUL; } +unsigned long foo_0x5efffffffffff7ff(void) { return 0x5efffffffffff7ffUL; } +unsigned long foo_0x75fffffffffff7ff(void) { return 0x75fffffffffff7ffUL; } +unsigned long foo_0x6dfffffffffff7ff(void) { return 0x6dfffffffffff7ffUL; } +unsigned long foo_0x5dfffffffffff7ff(void) { return 0x5dfffffffffff7ffUL; } +unsigned long foo_0x5bfffffffffff7ff(void) { return 0x5bfffffffffff7ffUL; } +unsigned long foo_0x57fffffffffff7ff(void) { return 0x57fffffffffff7ffUL; } +unsigned long foo_0xffffdffe7fffefff(void) { return 0xffffdffe7fffefffUL; } +unsigned long foo_0xffffbffe7fffdfff(void) { return 0xffffbffe7fffdfffUL; } diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-8.c b/gcc/testsuite/gcc.target/riscv/synthesis-8.c new file mode 100644 index 00000000000..2bcdb4e774d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-8.c @@ -0,0 +1,34 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs" } */ + +/* Rather than test for a specific synthesis of all these constants or + having thousands of tests each testing one variant, we just test the + total number of instructions. + + This isn't expected to change much and any change is worthy of a look. */ +/* { dg-final { scan-assembler-times "\\t(add|addi|bseti|li|ret|sh1add|sh2add|sh3add|slli|srli|xori)" 72 } } */ + +unsigned long foo_0xc0000000000077ff(void) { return 0xc0000000000077ffUL; } +unsigned long foo_0xc00000000000b7ff(void) { return 0xc00000000000b7ffUL; } +unsigned long foo_0xc0000000000137ff(void) { return 0xc0000000000137ffUL; } +unsigned long foo_0xc0000000000237ff(void) { return 0xc0000000000237ffUL; } +unsigned long foo_0xc0000000000437ff(void) { return 0xc0000000000437ffUL; } +unsigned long foo_0xc0000000000837ff(void) { return 0xc0000000000837ffUL; } +unsigned long foo_0xc0000000001037ff(void) { return 0xc0000000001037ffUL; } +unsigned long foo_0xc0000000002037ff(void) { return 0xc0000000002037ffUL; } +unsigned long foo_0xc0000000004037ff(void) { return 0xc0000000004037ffUL; } +unsigned long foo_0xc0000000008037ff(void) { return 0xc0000000008037ffUL; } +unsigned long foo_0xc0000000010037ff(void) { return 0xc0000000010037ffUL; } +unsigned long foo_0xc0000000020037ff(void) { return 0xc0000000020037ffUL; } +unsigned long foo_0xc0000000040037ff(void) { return 0xc0000000040037ffUL; } +unsigned long foo_0xc0000000080037ff(void) { return 0xc0000000080037ffUL; } +unsigned long foo_0xc0000000100037ff(void) { return 0xc0000000100037ffUL; } +unsigned long foo_0xe0000000000037ff(void) { return 0xe0000000000037ffUL; } +unsigned long foo_0xc00000000000d7ff(void) { return 0xc00000000000d7ffUL; } +unsigned long foo_0xc0000000000157ff(void) { return 0xc0000000000157ffUL; } diff --git a/gcc/testsuite/gcc.target/riscv/synthesis-9.c b/gcc/testsuite/gcc.target/riscv/synthesis-9.c new file mode 100644 index 00000000000..cc622188abc --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/synthesis-9.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* We aggressively skip as we really just need to test the basic synthesis + which shouldn't vary based on the optimization level. -O1 seems to work + and eliminates the usual sources of extraneous dead code that would throw + off the counts. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-O2" "-O3" "-Os" "-Oz" "-flto" } } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbkb_zbs" } */ + +/* Rather than test for a specific synthesis of all these constants or + having thousands of tests each testing one variant, we just test the + total number of instructions. + + This isn't expected to change much and any change is worthy of a look. */ +/* { dg-final { scan-assembler-times "\\t(add|addi|bseti|li|pack|ret|sh1add|sh2add|sh3add|slli|srli|xori)" 40 } } */ + + + +unsigned long foo_0xf857f2def857f2de(void) { return 0xf857f2def857f2deUL; } +unsigned long foo_0x99660e6399660e63(void) { return 0x99660e6399660e63UL; } +unsigned long foo_0x937f1b75937f1b75(void) { return 0x937f1b75937f1b75UL; } +unsigned long foo_0xb5019fa0b5019fa0(void) { return 0xb5019fa0b5019fa0UL; } +unsigned long foo_0xb828e6c1b828e6c1(void) { return 0xb828e6c1b828e6c1UL; } +unsigned long foo_0x839d87e9839d87e9(void) { return 0x839d87e9839d87e9UL; } +unsigned long foo_0xc29617c1c29617c1(void) { return 0xc29617c1c29617c1UL; } +unsigned long foo_0xa4118119a4118119(void) { return 0xa4118119a4118119UL; } +unsigned long foo_0x8c01df7d8c01df7d(void) { return 0x8c01df7d8c01df7dUL; } +unsigned long foo_0xf0e23d6bf0e23d6b(void) { return 0xf0e23d6bf0e23d6bUL; } diff --git a/gcc/testsuite/gcc.target/riscv/zba-shadduw.c b/gcc/testsuite/gcc.target/riscv/zba-shadduw.c new file mode 100644 index 00000000000..5b77447e681 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zba-shadduw.c @@ -0,0 +1,35 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=rv64gc_zba -mabi=lp64" } */ + +typedef struct simple_bitmap_def +{ + unsigned char *popcount; + unsigned int n_bits; + unsigned int size; + unsigned long elms[1]; +} *sbitmap; +typedef const struct simple_bitmap_def *const_sbitmap; + +typedef unsigned long *sbitmap_ptr; +typedef const unsigned long *const_sbitmap_ptr; +static unsigned long sbitmap_elt_popcount (unsigned long); + +void +sbitmap_a_or_b (sbitmap dst, const_sbitmap a, const_sbitmap b) +{ + unsigned int i, n = dst->size; + sbitmap_ptr dstp = dst->elms; + const_sbitmap_ptr ap = a->elms; + const_sbitmap_ptr bp = b->elms; + unsigned char has_popcount = dst->popcount != ((void *) 0); + + for (i = 0; i < n; i++) + { + const unsigned long tmp = *ap++ | *bp++; + *dstp++ = tmp; + } +} + + +/* { dg-final { scan-assembler "sh3add.uw" } } */ +/* { dg-final { scan-assembler-not {\mslli.uw} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zba_zbs_and-1.c b/gcc/testsuite/gcc.target/riscv/zba_zbs_and-1.c new file mode 100644 index 00000000000..23fd769449e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zba_zbs_and-1.c @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc_zba_zbb_zbs -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" } } */ + + +unsigned long long w32mem_1(unsigned long long w32) +{ + return w32 & ~(1U << 0); +} + +unsigned long long w32mem_2(unsigned long long w32) +{ + return w32 & ~(1U << 30); +} + +unsigned long long w32mem_3(unsigned long long w32) +{ + return w32 & ~(1U << 31); +} + +/* If we do synthesis, then we'd see an addi. */ +/* { dg-final { scan-assembler-not "addi\t" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c b/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c index a481068aa0c..1295aeb0086 100644 --- a/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c +++ b/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-march=rv32gc_zbb" { target { rv32 } } } */ -/* { dg-options "-march=rv64gc_zbb" { target { rv64 } } } */ +/* { dg-options "-mno-inline-strlen -march=rv32gc_zbb" { target { rv32 } } } */ +/* { dg-options "-mno-inline-strlen -march=rv64gc_zbb" { target { rv64 } } } */ /* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */ typedef long unsigned int size_t; diff --git a/gcc/testsuite/gcc.target/riscv/zbs-bext-2.c b/gcc/testsuite/gcc.target/riscv/zbs-bext-2.c new file mode 100644 index 00000000000..79f120b2286 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zbs-bext-2.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc_zbs -mabi=lp64" } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" } } */ + + +_Bool match(const int ch, int fMap) { + return ((fMap & (1<<(ch))) == 0); +} + +_Bool match2(const int ch, int fMap) { + return ((fMap & (1UL<<(ch))) == 0); +} + + +/* { dg-final { scan-assembler-times "bext\t" 2 } } */ +/* { dg-final { scan-assembler-times "seqz\t|xori\t" 2 } } */ +/* { dg-final { scan-assembler-not "sraw\t" } } */ +/* { dg-final { scan-assembler-not "not\t" } } */ +/* { dg-final { scan-assembler-not "andi\t" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zbs-bext.c b/gcc/testsuite/gcc.target/riscv/zbs-bext.c index ff75dad6528..0db97f5ab59 100644 --- a/gcc/testsuite/gcc.target/riscv/zbs-bext.c +++ b/gcc/testsuite/gcc.target/riscv/zbs-bext.c @@ -38,7 +38,7 @@ long bext64_4(long a, char bitno) /* { dg-final { scan-assembler-times "bexti\t" 1 } } */ /* { dg-final { scan-assembler-times "bext\t" 5 } } */ -/* { dg-final { scan-assembler-times "xori\t|snez\t" 1 } } */ +/* { dg-final { scan-assembler-times "xori\t|seqz\t" 1 } } */ /* { dg-final { scan-assembler-times "addi\t" 1 } } */ /* { dg-final { scan-assembler-times "neg\t" 1 } } */ /* { dg-final { scan-assembler-not {\mandi} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zero-extend-rshift-32.c b/gcc/testsuite/gcc.target/riscv/zero-extend-rshift-32.c new file mode 100644 index 00000000000..c995a6e0dfa --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zero-extend-rshift-32.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv32 } */ +/* { dg-options "-march=rv32gc" } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ + +#include "extend-shift-helpers.h" + +/* { dg-final { scan-assembler "slli\ta\[0-9\],a\[0-9\],2" } } */ +/* { dg-final { scan-assembler "srli\ta\[0-9\],a\[0-9\],16" } } */ +ULONG_EXT_USHORT_RSHIFT_N_ULONG(14) + +/* { dg-final { scan-assembler "srli\ta\[0-9\],a\[0-9\],23" } } */ +ULONG_EXT_UINT_RSHIFT_N_ULONG(23) diff --git a/gcc/testsuite/gcc.target/riscv/zero-extend-rshift-64.c b/gcc/testsuite/gcc.target/riscv/zero-extend-rshift-64.c new file mode 100644 index 00000000000..847fadf660f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zero-extend-rshift-64.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target rv64 } */ +/* { dg-options "-march=rv64gc" } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ + +#include "extend-shift-helpers.h" + +/* { dg-final { scan-assembler "slli\ta\[0-9\],a\[0-9\],34" } } */ +/* { dg-final { scan-assembler "srli\ta\[0-9\],a\[0-9\],48" } } */ +ULONG_EXT_USHORT_RSHIFT_N_ULONG(14) + +/* { dg-final { scan-assembler "srli\ta\[0-9\],a\[0-9\],51" } } */ +ULONG_EXT_USHORT_RSHIFT_N_ULONG(51) + +/* { dg-final { scan-assembler "slli\ta\[0-9\],a\[0-9\],9" } } */ +/* { dg-final { scan-assembler "srli\ta\[0-9\],a\[0-9\],32" } } */ +ULONG_EXT_UINT_RSHIFT_N_ULONG(23) diff --git a/gcc/testsuite/gcc.target/riscv/zero-extend-rshift.c b/gcc/testsuite/gcc.target/riscv/zero-extend-rshift.c new file mode 100644 index 00000000000..8b27b0eb9ba --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zero-extend-rshift.c @@ -0,0 +1,115 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32gc" { target { rv32 } } } */ +/* { dg-options "-march=rv64gc" { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } {"-O0" "-Os" "-Og" "-Oz" "-flto" } } */ + +// Tests for merging rshifts into zero-extensions. +// u8-casts are skipped as they can be done with one instruction (andi 0xff). + +#include "extend-shift-helpers.h" + +// Below "slli (16-N); srli 16" for rv32 +// Below "slli ((32+16)-N); srli (32+16)" for rv64 +ULONG_EXT_USHORT_RSHIFT_N_ULONG(1) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(7) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(8) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(9) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(15) +// Below "srli 16" for rv32 +// Below "srliw 16" for rv64 +ULONG_EXT_USHORT_RSHIFT_N_ULONG(16) +// Below "srli N" for rv32 +// Below "slli ((32+16)-N); srli (32+16)" for rv64 +ULONG_EXT_USHORT_RSHIFT_N_ULONG(17) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(23) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(24) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(25) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(31) +// Below compiler warning for rv32 +#if __riscv_xlen == 64 +// Below "slli ((32+16)-N); srli (32+16)" for rv64 +ULONG_EXT_USHORT_RSHIFT_N_ULONG(32) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(33) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(39) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(40) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(41) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(47) +// Below "srli N" for rv64 +ULONG_EXT_USHORT_RSHIFT_N_ULONG(48) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(49) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(55) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(56) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(57) +ULONG_EXT_USHORT_RSHIFT_N_ULONG(63) +#endif /* __riscv_xlen == 64 */ + + + +// Below "srli N" for rv32 +// Below "slli (32-N); srli 32" for rv64 +ULONG_EXT_UINT_RSHIFT_N_ULONG(1) +ULONG_EXT_UINT_RSHIFT_N_ULONG(7) +ULONG_EXT_UINT_RSHIFT_N_ULONG(8) +ULONG_EXT_UINT_RSHIFT_N_ULONG(9) +ULONG_EXT_UINT_RSHIFT_N_ULONG(15) +ULONG_EXT_UINT_RSHIFT_N_ULONG(16) +ULONG_EXT_UINT_RSHIFT_N_ULONG(17) +ULONG_EXT_UINT_RSHIFT_N_ULONG(23) +ULONG_EXT_UINT_RSHIFT_N_ULONG(24) +ULONG_EXT_UINT_RSHIFT_N_ULONG(25) +ULONG_EXT_UINT_RSHIFT_N_ULONG(31) +// Below compiler warning for rv32 +#if __riscv_xlen == 64 +// Below "srli N" for rv64 +ULONG_EXT_UINT_RSHIFT_N_ULONG(32) +ULONG_EXT_UINT_RSHIFT_N_ULONG(33) +ULONG_EXT_UINT_RSHIFT_N_ULONG(39) +ULONG_EXT_UINT_RSHIFT_N_ULONG(40) +ULONG_EXT_UINT_RSHIFT_N_ULONG(41) +ULONG_EXT_UINT_RSHIFT_N_ULONG(47) +ULONG_EXT_UINT_RSHIFT_N_ULONG(48) +ULONG_EXT_UINT_RSHIFT_N_ULONG(49) +ULONG_EXT_UINT_RSHIFT_N_ULONG(55) +ULONG_EXT_UINT_RSHIFT_N_ULONG(56) +ULONG_EXT_UINT_RSHIFT_N_ULONG(57) +ULONG_EXT_UINT_RSHIFT_N_ULONG(63) +#endif /* __riscv_xlen == 64 */ + + + +#if __riscv_xlen == 64 +// Below "slli ((32+16)-N); srli (32+16)" for rv64 +UINT_EXT_USHORT_RSHIFT_N_UINT(1) +UINT_EXT_USHORT_RSHIFT_N_UINT(7) +UINT_EXT_USHORT_RSHIFT_N_UINT(8) +UINT_EXT_USHORT_RSHIFT_N_UINT(9) +UINT_EXT_USHORT_RSHIFT_N_UINT(15) +// Below "srliw N" for rv64 +UINT_EXT_USHORT_RSHIFT_N_UINT(16) +UINT_EXT_USHORT_RSHIFT_N_UINT(17) +UINT_EXT_USHORT_RSHIFT_N_UINT(23) +UINT_EXT_USHORT_RSHIFT_N_UINT(24) +UINT_EXT_USHORT_RSHIFT_N_UINT(25) +UINT_EXT_USHORT_RSHIFT_N_UINT(31) +#endif /* __riscv_xlen == 64 */ + + + +// Below "slli (16-N); srli 16" for rv32 +// Below "slli ((32+16)-N); srli (32+16)" for rv64 +UINT_EXT_USHORT_RSHIFT_N_ULONG(9) +UINT_EXT_USHORT_RSHIFT_N_ULONG(15) + + + +// Below "slli (16-N); srli 16" for rv32 +// Below "slli ((32+16)-N); srli (32+16)" for rv64 +ULONG_EXT_USHORT_RSHIFT_N_UINT(9) +ULONG_EXT_USHORT_RSHIFT_N_UINT(15) + +/* { dg-final { scan-assembler-times "slli\t" 9 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "srli\t" 26 { target { rv32 } } } } */ + +/* { dg-final { scan-assembler-times "slli\t" 36 { target { rv64 } } } } */ +/* { dg-final { scan-assembler-times "srli\t" 54 { target { rv64 } } } } */ +/* { dg-final { scan-assembler-times "srliw\t" 7 { target { rv64 } } } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_arithmetic.c b/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_arithmetic.c new file mode 100644 index 00000000000..2ca170345af --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_arithmetic.c @@ -0,0 +1,35 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i_zfbfmin -mabi=ilp32f -mcmodel=medany -O" { target { rv32 } } } */ +/* { dg-options "-march=rv64i_zfbfmin -mabi=lp64f -mcmodel=medany -O" { target { rv64 } } } */ + +/* 1) bf -> sf fcvt.s.bf16 */ +/* 2) sf1 [+|-|*|/] sf2 f[add|sub|mul|div].s */ +/* 3) sf -> bf fcvt.bf16.s */ +extern __bf16 bf; +extern __bf16 bf1; +extern __bf16 bf2; + +void bf_add_bf () { bf = bf1 + bf2; } + +void bf_sub_bf () { bf = bf1 - bf2; } + +void bf_mul_bf () { bf = bf1 * bf2; } + +void bf_div_bf () { bf = bf1 / bf2; } + +void bf_add_const () { bf = bf1 + 3.14f; } + +void const_sub_bf () { bf = 3.14f - bf2; } + +void bf_mul_const () { bf = bf1 * 3.14f; } + +void const_div_bf () { bf = 3.14f / bf2; } + +void bf_inc () { ++bf; } + +void bf_dec () { --bf; } + +/* { dg-final { scan-assembler-times "fcvt.s.bf16" 14 } } */ +/* { dg-final { scan-assembler-times "fcvt.bf16.s" 10 } } */ + +/* { dg-final { scan-assembler-not "call" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_comparison.c b/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_comparison.c new file mode 100644 index 00000000000..62d532063c4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_comparison.c @@ -0,0 +1,33 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i_zfbfmin -mabi=ilp32f -O" { target { rv32 } } } */ +/* { dg-options "-march=rv64i_zfbfmin -mabi=lp64f -O" { target { rv64 } } } */ + +/* 1) bf -> sf fcvt.s.bf16 */ +/* 2) sf1 [<|<=|>|>=|==] sf2 f[lt|le|gt|ge|eq].s */ +extern __bf16 bf; +extern __bf16 bf1; +extern __bf16 bf2; + +void bf_lt_bf () { bf = (bf1 < bf2) ? bf1 : bf2; } + +void bf_le_bf () { bf = (bf1 <= bf2) ? bf1 : bf2; } + +void bf_gt_bf () { bf = (bf1 > bf2) ? bf1 : bf2; } + +void bf_ge_bf () { bf = (bf1 >= bf2) ? bf1 : bf2; } + +void bf_eq_bf () { bf = (bf1 == bf2) ? bf1 : bf2; } + +void bf_lt_const () { bf = (bf1 < 3.14f) ? bf1 : bf2; } + +void bf_le_const () { bf = (bf1 <= 3.14f) ? bf1 : bf2; } + +void const_gt_bf () { bf = (3.14f > bf2) ? bf1 : bf2; } + +void const_ge_bf () { bf = (3.14f >= bf2) ? bf1 : bf2; } + +void bf_eq_const () { bf = (bf1 == 3.14f) ? bf1 : bf2; } + +/* { dg-final { scan-assembler-times "fcvt.s.bf16" 15 } } */ + +/* { dg-final { scan-assembler-not "call" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_float_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_float_libcall_convert.c new file mode 100644 index 00000000000..95e65996e28 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_float_libcall_convert.c @@ -0,0 +1,45 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i_zfbfmin -mabi=ilp32f -O" { target { rv32 } } } */ +/* { dg-options "-march=rv64i_zfbfmin -mabi=lp64f -O" { target { rv64 } } } */ + + +/* 1) float -> BF16 + * hf -> bf == hf -> sf -> bf fcvt.h.s + fcvt.bf16.s + * sf -> bf == sf -> bf fcvt.bf16.s + * df -> bf == df -> sf -> bf __truncdfsf2 + fcvt.bf16.s + * tf -> bf == tf -> sf -> bf __trunctfsf2 + fcvt.bf16.s +*/ + +/* 2) BF16 -> float + * bf -> hf == bf -> sf -> hf fcvt.s.bf16 + fcvt.s.h + * bf -> sf == bf -> sf fcvt.s.bf16 + * bf -> df == bf -> sf -> df fcvt.s.bf16 + __extendsfdf2 + * bf -> tf == bf -> sf -> tf fcvt.s.bf16 + __extendsftf2 +*/ + +extern __bf16 bf; +extern _Float16 hf; +extern float sf; +extern double df; +extern long double tf; + +void hf_to_bf () { bf = hf; } +void bf_to_hf () { hf = bf; } + +void sf_to_bf () { bf = sf; } +void bf_to_sf () { sf = bf; } + +void df_to_bf () { bf = df; } +void bf_to_df () { df = bf; } + +void tf_to_bf () { bf = tf; } +void bf_to_tf () { tf = bf; } + +/* { dg-final { scan-assembler-times "fcvt.bf16.s" 4 } } */ +/* { dg-final { scan-assembler-times "fcvt.s.bf16" 4 } } */ +/* { dg-final { scan-assembler-times "fcvt.h.s" 1 } } */ +/* { dg-final { scan-assembler-times "fcvt.s.h" 1 } } */ +/* { dg-final { scan-assembler-times "call\t__truncdfsf2" 1 } } */ +/* { dg-final { scan-assembler-times "call\t__trunctfsf2" 1 } } */ +/* { dg-final { scan-assembler-times "call\t__extendsfdf2" 1 } } */ +/* { dg-final { scan-assembler-times "call\t__extendsftf2" 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_integer_libcall_convert.c b/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_integer_libcall_convert.c new file mode 100644 index 00000000000..1a998bfe2f8 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_integer_libcall_convert.c @@ -0,0 +1,66 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32i_zfbfmin -mabi=ilp32f -O" { target { rv32 } } } */ +/* { dg-options "-march=rv64i_zfbfmin -mabi=lp64f -O" { target { rv64 } } } */ + +/* 1) Integer -> BF16 + * qi/hi -> bf fcvt.s.w + fcvt.bf16.s + * uqi/uhi -> bf fcvt.s.wu + fcvt.bf16.s + * + * si/di/ti -> bf __float[s|d|t]ibf + * usi/udi/uti -> bf __floatun[s|d|t]ibf +*/ + +/* 2) BF16 -> Integer + * bf -> qi/hi/si/di fcvt.s.bf16 + fcvt.[w|l].s + * bf -> uqi/uhi/usi/udi fcvt.s.bf16 + fcvt.[w|l]u.s + * bf -> ti/uti fcvt.s.bf16 + __fix[uns]sfti +*/ + +extern __bf16 bf; + +extern signed char qi; +extern unsigned char uqi; +extern signed short hi; +extern unsigned short uhi; +extern signed int si; +extern unsigned int usi; +extern signed long long di; +extern unsigned long long udi; + +void qi_to_bf () { bf = qi; } +void uqi_to_bf () { bf = uqi; } +void bf_to_qi () { qi = bf; } +void bf_to_uqi () { uqi = bf; } + +void hi_to_bf () { bf = hi; } +void uhi_to_bf () { bf = uhi; } +void bf_to_hi () { hi = bf; } +void bf_to_uhi () { uhi = bf; } + +void si_to_bf () { bf = si; } +void usi_to_bf () { bf = usi; } +void bf_to_si () { si = bf; } +void bf_to_usi () { usi = bf; } + +void di_to_bf () { bf = di; } +void udi_to_bf () { bf = udi; } +void bf_to_di () { di = bf; } +void bf_to_udi () { udi = bf; } + +#if __riscv_xlen == 64 +extern signed __int128 ti; +extern unsigned __int128 uti; +void ti_to_bf () { bf = ti; } /* { dg-final { scan-assembler-times "call\t__floattibf" 1 { target { rv64 } } } } */ +void uti_to_bf () { bf = uti; } /* { dg-final { scan-assembler-times "call\t__floatuntibf" 1 { target { rv64 } } } } */ +void bf_to_ti () { ti = bf; } /* { dg-final { scan-assembler-times "call\t__fixsfti" 1 { target { rv64 } } } } */ +void bf_to_uti () { uti = bf; } /* { dg-final { scan-assembler-times "call\t__fixunssfti" 1 { target { rv64 } } } } */ +#endif + +/* { dg-final { scan-assembler-times "fcvt.bf16.s" 4 } } */ +/* { dg-final { scan-assembler-times "fcvt.s.bf16" 8 { target { rv32 } } } } */ +/* { dg-final { scan-assembler-times "fcvt.s.bf16" 10 { target { rv64 } } } } */ + +/* { dg-final { scan-assembler-times "call\t__floatsibf" 1 } } */ +/* { dg-final { scan-assembler-times "call\t__floatunsibf" 1 } } */ +/* { dg-final { scan-assembler-times "call\t__floatdibf" 1 } } */ +/* { dg-final { scan-assembler-times "call\t__floatundibf" 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/zmmul-3.c b/gcc/testsuite/gcc.target/riscv/zmmul-3.c new file mode 100644 index 00000000000..f8377f86180 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/zmmul-3.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64iafdc_zmmul -mabi=lp64d" } */ +int foo1(int a) +{ + return a * 999999; +} + +/* { dg-final { scan-assembler-times "mulw\t" 1 } } */ |