diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-06-08 17:10:31 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-06-08 17:10:31 +0800 |
| commit | 72af0dedf9e18911da65b9a5c4906689e868d9fc (patch) | |
| tree | 2ecbad93f96ab8ad7e26dc02cd02d802f853ab97 /rcc-legacy/tests/sysy_lvX/088_int_literal.sy | |
| parent | 8faf6d290d6703b1775e0ad7a8928a4ebea4b11b (diff) | |
| download | rcc-project-72af0dedf9e18911da65b9a5c4906689e868d9fc.tar.gz rcc-project-72af0dedf9e18911da65b9a5c4906689e868d9fc.tar.xz | |
[legacy] Add functional and performance test suites
Diffstat (limited to 'rcc-legacy/tests/sysy_lvX/088_int_literal.sy')
| -rw-r--r-- | rcc-legacy/tests/sysy_lvX/088_int_literal.sy | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/rcc-legacy/tests/sysy_lvX/088_int_literal.sy b/rcc-legacy/tests/sysy_lvX/088_int_literal.sy new file mode 100644 index 0000000..69eacfe --- /dev/null +++ b/rcc-legacy/tests/sysy_lvX/088_int_literal.sy @@ -0,0 +1,50 @@ +int s = 0; + +int get_ans_se(int ans, int v0, int v1) { + int v = 0; + if (v0 == v1) v = 1; + ans = ans * 2; + ans = ans + v; + s = s + ans; + return ans; +} + +int get_ans(int ans, int v0, int v1) { + int v = 0; + if (v0 == v1) v = 1; + ans = ans * 2; + ans = ans + v; + return ans; +} + +int main() { + const int k0 = -214743648; + const int k1 = 0x800000; + const int k2 = 0x800000 + 1; + const int k3 = 0x7fFfff; + const int k4 = 0x7fFfff - 1; + int a1, a2, a3, a4; + a1 = get_ans( 0, k0, k1); + a1 = get_ans(a1, k0 + 1, k2); + a1 = get_ans(a1, k0, -k3 - 1); + a1 = get_ans(a1, k0, k4 + 1); + a1 = get_ans(a1, k1 / 2, k2 / 2); + a1 = get_ans(a1, k1, -k3 - 1); + a1 = get_ans(a1, k1, k4 + 1); + a2 = get_ans( 0, k2, k3); + a2 = get_ans(a2, k2, k4); + a2 = get_ans(a2, k3, k4); + a2 = get_ans(a2, k0 / 2, k1 / 2); + a3 = get_ans_se( 0, k0, k1); + a3 = get_ans_se(a3, k0 + 1, k2); + a3 = get_ans_se(a3, k0, -k3 - 1); + a3 = get_ans_se(a3, k0, k4 + 1); + a3 = get_ans_se(a3, k1 / 2, k2 / 2); + a3 = get_ans_se(a3, k1, -k3 - 1); + a3 = get_ans_se(a3, k1, k4 + 1); + a4 = get_ans_se( 0, k2, k3); + a4 = get_ans_se(a4, k2, k4); + a4 = get_ans_se(a4, k3, k4); + a4 = get_ans_se(a4, k0 / 2, k1 / 2); + return a1 + a2 + a3 + a4; +} |
