blob: 60404f6702261f2830735f67f003c80db59ea06f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// 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;
}
|