| /* 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 ] ); |
| } |