// RUN: %llvmgcc %s -S -o - | grep bitcast | count 14 | |
typedef float vFloat __attribute__ ((__vector_size__ (16))); | |
typedef unsigned int vUInt32 __attribute__ ((__vector_size__ (16))); | |
void foo(vFloat *X) { | |
vFloat NoSignBit = (vFloat) ~ (vUInt32) (vFloat) { -0.f, -0.f, -0.f, -0.f }; | |
vFloat ExtremeValue = *X & NoSignBit; | |
*X = ExtremeValue; | |
} | |
void bar(vFloat *X) { | |
vFloat NoSignBit = (vFloat) ~ (vUInt32) (vFloat) { -0.f, -0.f, -0.f, -0.f }; | |
vFloat ExtremeValue = *X & ~NoSignBit; | |
*X = ExtremeValue; | |
} |