13883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// RUN: %clang_cc1 -emit-llvm %s -o /dev/null 23883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 33883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 43883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct DWstruct { 53883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher char high, low; 63883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher}; 73883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 83883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophertypedef union { 93883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher struct DWstruct s; 103883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher short ll; 113883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} DWunion; 123883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 133883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophershort __udivmodhi4 (char n1, char bm) { 143883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher DWunion rr; 153883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 163883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher if (bm == 0) 173883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher { 183883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher rr.s.high = n1; 193883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher } 203883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher else 213883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher { 223883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher rr.s.high = bm; 233883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher } 243883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 253883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher return rr.ll; 263883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} 27