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