1f08c3bdfSopenharmony_civoid def(void);
2f08c3bdfSopenharmony_civoid r0(void);
3f08c3bdfSopenharmony_civoid r1(void);
4f08c3bdfSopenharmony_ci
5f08c3bdfSopenharmony_civoid sw_long(long long a)
6f08c3bdfSopenharmony_ci{
7f08c3bdfSopenharmony_ci	switch (a) {
8f08c3bdfSopenharmony_ci	case 0: return r0();
9f08c3bdfSopenharmony_ci	case 1LL << 00: return r1();
10f08c3bdfSopenharmony_ci	case 1LL << 32: return r1();
11f08c3bdfSopenharmony_ci	}
12f08c3bdfSopenharmony_ci
13f08c3bdfSopenharmony_ci	return def();
14f08c3bdfSopenharmony_ci}
15f08c3bdfSopenharmony_ci
16f08c3bdfSopenharmony_ci/*
17f08c3bdfSopenharmony_ci * check-name: switch-long
18f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file
19f08c3bdfSopenharmony_ci *
20f08c3bdfSopenharmony_ci * check-output-start
21f08c3bdfSopenharmony_cisw_long:
22f08c3bdfSopenharmony_ci.L0:
23f08c3bdfSopenharmony_ci	<entry-point>
24f08c3bdfSopenharmony_ci	switch.64   %arg1, 0 -> .L2, 1 -> .L3, 4294967296 -> .L4, default -> .L1
25f08c3bdfSopenharmony_ci
26f08c3bdfSopenharmony_ci.L2:
27f08c3bdfSopenharmony_ci	call        r0
28f08c3bdfSopenharmony_ci	br          .L5
29f08c3bdfSopenharmony_ci
30f08c3bdfSopenharmony_ci.L3:
31f08c3bdfSopenharmony_ci	call        r1
32f08c3bdfSopenharmony_ci	br          .L5
33f08c3bdfSopenharmony_ci
34f08c3bdfSopenharmony_ci.L4:
35f08c3bdfSopenharmony_ci	call        r1
36f08c3bdfSopenharmony_ci	br          .L5
37f08c3bdfSopenharmony_ci
38f08c3bdfSopenharmony_ci.L1:
39f08c3bdfSopenharmony_ci	call        def
40f08c3bdfSopenharmony_ci	br          .L5
41f08c3bdfSopenharmony_ci
42f08c3bdfSopenharmony_ci.L5:
43f08c3bdfSopenharmony_ci	ret
44f08c3bdfSopenharmony_ci
45f08c3bdfSopenharmony_ci
46f08c3bdfSopenharmony_ci * check-output-end
47f08c3bdfSopenharmony_ci */
48