aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/riscv
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.target/riscv')
-rw-r--r--gcc/testsuite/gcc.target/riscv/__bf16-nanboxing.c38
-rw-r--r--gcc/testsuite/gcc.target/riscv/and-shift32.c13
-rw-r--r--gcc/testsuite/gcc.target/riscv/and-shift64.c13
-rw-r--r--gcc/testsuite/gcc.target/riscv/arch-35.c5
-rw-r--r--gcc/testsuite/gcc.target/riscv/arch-36.c5
-rw-r--r--gcc/testsuite/gcc.target/riscv/arch-37.c5
-rw-r--r--gcc/testsuite/gcc.target/riscv/arch-38.c5
-rw-r--r--gcc/testsuite/gcc.target/riscv/bf16_arithmetic.c42
-rw-r--r--gcc/testsuite/gcc.target/riscv/bf16_call.c12
-rw-r--r--gcc/testsuite/gcc.target/riscv/bf16_comparison.c36
-rw-r--r--gcc/testsuite/gcc.target/riscv/bf16_float_libcall_convert.c57
-rw-r--r--gcc/testsuite/gcc.target/riscv/bf16_integer_libcall_convert.c81
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmo-zicboz-zic64-1.c27
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmpmemsi-1.c5
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmpmemsi-2.c42
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmpmemsi-3.c43
-rw-r--r--gcc/testsuite/gcc.target/riscv/cmpmemsi.c22
-rw-r--r--gcc/testsuite/gcc.target/riscv/cpymem-32-ooo.c137
-rw-r--r--gcc/testsuite/gcc.target/riscv/cpymem-32.c136
-rw-r--r--gcc/testsuite/gcc.target/riscv/cpymem-64-ooo.c130
-rw-r--r--gcc/testsuite/gcc.target/riscv/cpymem-64.c135
-rw-r--r--gcc/testsuite/gcc.target/riscv/cpymemsi-1.c7
-rw-r--r--gcc/testsuite/gcc.target/riscv/cpymemsi-2.c42
-rw-r--r--gcc/testsuite/gcc.target/riscv/cpymemsi-3.c43
-rw-r--r--gcc/testsuite/gcc.target/riscv/cpymemsi.c22
-rw-r--r--gcc/testsuite/gcc.target/riscv/extend-shift-helpers.h46
-rw-r--r--gcc/testsuite/gcc.target/riscv/fix.c34
-rw-r--r--gcc/testsuite/gcc.target/riscv/memcpy-nonoverlapping.c54
-rw-r--r--gcc/testsuite/gcc.target/riscv/memset-nonoverlapping.c45
-rw-r--r--gcc/testsuite/gcc.target/riscv/pack32.c18
-rw-r--r--gcc/testsuite/gcc.target/riscv/pack64.c17
-rw-r--r--gcc/testsuite/gcc.target/riscv/packh32.c13
-rw-r--r--gcc/testsuite/gcc.target/riscv/packh64.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/packw.c13
-rw-r--r--gcc/testsuite/gcc.target/riscv/pr105733.c15
-rw-r--r--gcc/testsuite/gcc.target/riscv/pr111501.c21
-rw-r--r--gcc/testsuite/gcc.target/riscv/pr115142.c10
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-34.c47
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-35.c47
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-36.c48
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-37.c48
-rw-r--r--gcc/testsuite/gcc.target/riscv/round.c144
-rw-r--r--gcc/testsuite/gcc.target/riscv/round_32.c23
-rw-r--r--gcc/testsuite/gcc.target/riscv/round_64.c24
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-1.c8
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-run.c54
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vandn-template.h38
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_binary.h33
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-1.c19
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-2.c20
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-3.c20
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-4.c20
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-1.c75
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-2.c75
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-3.c75
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vec_sat_u_add-run-4.c75
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-1.c10
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-run.c67
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vwsll-template.h49
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-1.c34
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-2.c37
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_64-12-zvbb.c113
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/pr113474.c13
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114734.c25
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/pr114749.c15
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-1.c8
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-run.c36
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/clz-template.h21
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-1.c8
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-run.c36
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/ctz-template.h21
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-1.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-2.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-3.c8
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-run-1.c3
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/unop/popcount-template.h21
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-1.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-2.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-3.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-4.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-5.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-6.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/spill-7.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/bug-6.c22
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-10.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-11.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-12.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-16.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-17.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-23.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-24.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-25.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-26.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-27.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-28.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-29.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-30.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-31.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-32.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-33.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c8
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-4.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-42.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-5.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-6.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-7.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-8.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-9.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-1.c9
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr114988-2.c9
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr115068-run.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/pr115068.c55
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/vwaddsub-1.c48
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr115214.c52
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat_arith.h31
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat_u_add-1.c19
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat_u_add-2.c21
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat_u_add-3.c18
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat_u_add-4.c17
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat_u_add-run-1.c25
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat_u_add-run-2.c25
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat_u_add-run-3.c25
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat_u_add-run-4.c25
-rw-r--r--gcc/testsuite/gcc.target/riscv/scalar_sat_binary.h27
-rw-r--r--gcc/testsuite/gcc.target/riscv/shift-add-1.c21
-rw-r--r--gcc/testsuite/gcc.target/riscv/shift-add-2.c16
-rw-r--r--gcc/testsuite/gcc.target/riscv/sign-extend-1.c28
-rw-r--r--gcc/testsuite/gcc.target/riscv/sign-extend-rshift-32.c17
-rw-r--r--gcc/testsuite/gcc.target/riscv/sign-extend-rshift-64.c17
-rw-r--r--gcc/testsuite/gcc.target/riscv/sign-extend-rshift.c123
-rw-r--r--gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c45
-rw-r--r--gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-2.c15
-rw-r--r--gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-3.c22
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-1.c2034
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-10.c18
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-2.c1481
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-3.c81
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-4.c34
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-5.c294
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-6.c95
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-7.c1531
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-8.c34
-rw-r--r--gcc/testsuite/gcc.target/riscv/synthesis-9.c28
-rw-r--r--gcc/testsuite/gcc.target/riscv/zba-shadduw.c35
-rw-r--r--gcc/testsuite/gcc.target/riscv/zba_zbs_and-1.c22
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbs-bext-2.c19
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbs-bext.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/zero-extend-rshift-32.c13
-rw-r--r--gcc/testsuite/gcc.target/riscv/zero-extend-rshift-64.c17
-rw-r--r--gcc/testsuite/gcc.target/riscv/zero-extend-rshift.c115
-rw-r--r--gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_arithmetic.c35
-rw-r--r--gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_comparison.c33
-rw-r--r--gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_float_libcall_convert.c45
-rw-r--r--gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_integer_libcall_convert.c66
-rw-r--r--gcc/testsuite/gcc.target/riscv/zmmul-3.c8
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 } } */