1f08c3bdfSopenharmony_ciextern int g;
2f08c3bdfSopenharmony_ci
3f08c3bdfSopenharmony_civoid fo0(int *p) { asm volatile ("op %0" :: "p" (&g)); }
4f08c3bdfSopenharmony_civoid fo1(int *p) { asm volatile ("op %0" :: "m" (g)); }
5f08c3bdfSopenharmony_ci
6f08c3bdfSopenharmony_civoid fo2(int *p) { asm volatile ("op %0" :: "p" (p)); }
7f08c3bdfSopenharmony_civoid fo3(int *p) { asm volatile ("op %0" :: "m" (*p)); }
8f08c3bdfSopenharmony_ci
9f08c3bdfSopenharmony_ci/*
10f08c3bdfSopenharmony_ci * check-name: eval-asm-memop
11f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file
12f08c3bdfSopenharmony_ci *
13f08c3bdfSopenharmony_ci * check-output-start
14f08c3bdfSopenharmony_cifo0:
15f08c3bdfSopenharmony_ci.L0:
16f08c3bdfSopenharmony_ci	<entry-point>
17f08c3bdfSopenharmony_ci	asm         "op %0"
18f08c3bdfSopenharmony_ci		in: "p" (g)
19f08c3bdfSopenharmony_ci	ret
20f08c3bdfSopenharmony_ci
21f08c3bdfSopenharmony_ci
22f08c3bdfSopenharmony_cifo1:
23f08c3bdfSopenharmony_ci.L2:
24f08c3bdfSopenharmony_ci	<entry-point>
25f08c3bdfSopenharmony_ci	asm         "op %0"
26f08c3bdfSopenharmony_ci		in: "m" (g)
27f08c3bdfSopenharmony_ci	ret
28f08c3bdfSopenharmony_ci
29f08c3bdfSopenharmony_ci
30f08c3bdfSopenharmony_cifo2:
31f08c3bdfSopenharmony_ci.L4:
32f08c3bdfSopenharmony_ci	<entry-point>
33f08c3bdfSopenharmony_ci	asm         "op %0"
34f08c3bdfSopenharmony_ci		in: "p" (%arg1)
35f08c3bdfSopenharmony_ci	ret
36f08c3bdfSopenharmony_ci
37f08c3bdfSopenharmony_ci
38f08c3bdfSopenharmony_cifo3:
39f08c3bdfSopenharmony_ci.L6:
40f08c3bdfSopenharmony_ci	<entry-point>
41f08c3bdfSopenharmony_ci	asm         "op %0"
42f08c3bdfSopenharmony_ci		in: "m" (%arg1)
43f08c3bdfSopenharmony_ci	ret
44f08c3bdfSopenharmony_ci
45f08c3bdfSopenharmony_ci
46f08c3bdfSopenharmony_ci * check-output-end
47f08c3bdfSopenharmony_ci */
48