Evan Cheng | 3d8cd9e | 2008-09-24 00:50:16 +0000 | [diff] [blame^] | 1 | // RUN: %llvmgcc %s -S -o - | grep bitcast | count 14 |
Evan Cheng | bc09afa | 2008-09-22 22:19:34 +0000 | [diff] [blame] | 2 | |
| 3 | typedef float vFloat __attribute__ ((__vector_size__ (16))); |
| 4 | typedef unsigned int vUInt32 __attribute__ ((__vector_size__ (16))); |
| 5 | void foo(vFloat *X) { |
| 6 | vFloat NoSignBit = (vFloat) ~ (vUInt32) (vFloat) { -0.f, -0.f, -0.f, -0.f }; |
| 7 | vFloat ExtremeValue = *X & NoSignBit; |
| 8 | *X = ExtremeValue; |
| 9 | } |
Evan Cheng | 3d8cd9e | 2008-09-24 00:50:16 +0000 | [diff] [blame^] | 10 | |
| 11 | void bar(vFloat *X) { |
| 12 | vFloat NoSignBit = (vFloat) ~ (vUInt32) (vFloat) { -0.f, -0.f, -0.f, -0.f }; |
| 13 | vFloat ExtremeValue = *X & ~NoSignBit; |
| 14 | *X = ExtremeValue; |
| 15 | } |