1f08c3bdfSopenharmony_ciint ufoo(unsigned int a) 2f08c3bdfSopenharmony_ci{ 3f08c3bdfSopenharmony_ci struct u { 4f08c3bdfSopenharmony_ci unsigned int :2; 5f08c3bdfSopenharmony_ci unsigned int a:3; 6f08c3bdfSopenharmony_ci } bf; 7f08c3bdfSopenharmony_ci 8f08c3bdfSopenharmony_ci bf.a = a; 9f08c3bdfSopenharmony_ci return bf.a; 10f08c3bdfSopenharmony_ci} 11f08c3bdfSopenharmony_ci 12f08c3bdfSopenharmony_ciint sfoo(int a) 13f08c3bdfSopenharmony_ci{ 14f08c3bdfSopenharmony_ci struct s { 15f08c3bdfSopenharmony_ci signed int :2; 16f08c3bdfSopenharmony_ci signed int a:3; 17f08c3bdfSopenharmony_ci } bf; 18f08c3bdfSopenharmony_ci 19f08c3bdfSopenharmony_ci bf.a = a; 20f08c3bdfSopenharmony_ci return bf.a; 21f08c3bdfSopenharmony_ci} 22f08c3bdfSopenharmony_ci 23f08c3bdfSopenharmony_ci/* 24f08c3bdfSopenharmony_ci * check-name: optim store/load bitfields 25f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file 26f08c3bdfSopenharmony_ci * 27f08c3bdfSopenharmony_ci * check-output-start 28f08c3bdfSopenharmony_ciufoo: 29f08c3bdfSopenharmony_ci.L0: 30f08c3bdfSopenharmony_ci <entry-point> 31f08c3bdfSopenharmony_ci and.32 %r11 <- %arg1, $7 32f08c3bdfSopenharmony_ci ret.32 %r11 33f08c3bdfSopenharmony_ci 34f08c3bdfSopenharmony_ci 35f08c3bdfSopenharmony_cisfoo: 36f08c3bdfSopenharmony_ci.L2: 37f08c3bdfSopenharmony_ci <entry-point> 38f08c3bdfSopenharmony_ci trunc.3 %r16 <- (32) %arg1 39f08c3bdfSopenharmony_ci sext.32 %r23 <- (3) %r16 40f08c3bdfSopenharmony_ci ret.32 %r23 41f08c3bdfSopenharmony_ci 42f08c3bdfSopenharmony_ci 43f08c3bdfSopenharmony_ci * check-output-end 44f08c3bdfSopenharmony_ci */ 45