summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/arm/pr46788.c
blob: 2236769461aa0fa396b0401a3430db46f9bf2b50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* { dg-options "-mthumb -O2" }  */
/* { dg-require-effective-target arm_thumb2_ok } */
/* { dg-final { scan-assembler-not "-32768" } } */

typedef union
{
  unsigned long int u_32_value;
  struct 
  {
    unsigned short int u_16_value_0;
    unsigned short int u_16_value_1;
  } u_16_values;
} my_union;


unsigned long int Test(const unsigned short int wXe)
{
  my_union dwCalcVal;
  
  dwCalcVal.u_16_values.u_16_value_0=wXe;
  dwCalcVal.u_16_values.u_16_value_1=0x8000u;

  dwCalcVal.u_32_value /=3;
  
  return (dwCalcVal.u_32_value);
}