mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-01 15:40:46 +00:00
3d8cd9ec10
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56534 91177308-0d34-0410-b5e6-96231b3b80d8
16 lines
515 B
C
16 lines
515 B
C
// 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;
|
|
}
|