1f08c3bdfSopenharmony_cistruct s { 2f08c3bdfSopenharmony_ci int:16; 3f08c3bdfSopenharmony_ci short f:6; 4f08c3bdfSopenharmony_ci}; 5f08c3bdfSopenharmony_ci 6f08c3bdfSopenharmony_cistatic short local(struct s s) 7f08c3bdfSopenharmony_ci{ 8f08c3bdfSopenharmony_ci return s.f; 9f08c3bdfSopenharmony_ci} 10f08c3bdfSopenharmony_ci 11f08c3bdfSopenharmony_cistatic void foo(struct s s) 12f08c3bdfSopenharmony_ci{ 13f08c3bdfSopenharmony_ci while (s.f) ; 14f08c3bdfSopenharmony_ci} 15f08c3bdfSopenharmony_ci 16f08c3bdfSopenharmony_ci/* 17f08c3bdfSopenharmony_ci * check-name: not-same-memop0 18f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl -fdump-ir=mem2reg $file 19f08c3bdfSopenharmony_ci * 20f08c3bdfSopenharmony_ci * check-output-start 21f08c3bdfSopenharmony_cilocal: 22f08c3bdfSopenharmony_ci.L0: 23f08c3bdfSopenharmony_ci <entry-point> 24f08c3bdfSopenharmony_ci store.32 %arg1 -> 0[s] 25f08c3bdfSopenharmony_ci load.16 %r1 <- 2[s] 26f08c3bdfSopenharmony_ci trunc.6 %r2 <- (16) %r1 27f08c3bdfSopenharmony_ci sext.16 %r3 <- (6) %r2 28f08c3bdfSopenharmony_ci ret.16 %r3 29f08c3bdfSopenharmony_ci 30f08c3bdfSopenharmony_ci 31f08c3bdfSopenharmony_cifoo: 32f08c3bdfSopenharmony_ci.L2: 33f08c3bdfSopenharmony_ci <entry-point> 34f08c3bdfSopenharmony_ci store.32 %arg1 -> 0[s] 35f08c3bdfSopenharmony_ci br .L6 36f08c3bdfSopenharmony_ci 37f08c3bdfSopenharmony_ci.L6: 38f08c3bdfSopenharmony_ci load.16 %r5 <- 2[s] 39f08c3bdfSopenharmony_ci trunc.6 %r6 <- (16) %r5 40f08c3bdfSopenharmony_ci setne.1 %r7 <- %r6, $0 41f08c3bdfSopenharmony_ci cbr %r7, .L6, .L5 42f08c3bdfSopenharmony_ci 43f08c3bdfSopenharmony_ci.L5: 44f08c3bdfSopenharmony_ci ret 45f08c3bdfSopenharmony_ci 46f08c3bdfSopenharmony_ci 47f08c3bdfSopenharmony_ci * check-output-end 48f08c3bdfSopenharmony_ci */ 49