5813921.c   [plain text]


/* APPLE LOCAL file 5813921 */
/* { dg-do compile { target powerpc-*-* i?86-*-* x86_64-*-* } } */
/* { dg-options { -Os } } */
/* { dg-final { scan-assembler "cntlzw" { target powerpc-*-* } } } */
/* { dg-final { scan-assembler "bsr" { target i?86-*-* x86_64-*-* } } } */
typedef long unsigned int __darwin_size_t;
typedef __darwin_size_t size_t;
typedef enum RoundingMode {
  kRoundTowardNearestEven = 1,  kRoundTowardZero = 2,  kRoundTowardInf = 4,
  kRoundTowardMinusInf = 8,
  kRoundAll = kRoundTowardNearestEven | kRoundTowardZero | kRoundTowardInf
  | kRoundTowardMinusInf } RoundingMode;
extern const int roundingModes[4];
void SetRoundingMode( RoundingMode mode ) {
  long m = mode;
  size_t r = (8*sizeof(long)-1) - __builtin_clzl( m );
  fesetround( roundingModes[ r ] );
}