mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
add a note
llvm-svn: 28787
This commit is contained in:
parent
cf6b3bb376
commit
20c3c42c02
@ -664,3 +664,32 @@ e.g. SSE select using and, andnot, or. Various SSE compare translations.
|
|||||||
//===---------------------------------------------------------------------===//
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
||||||
Add hooks to commute some CMPP operations.
|
Add hooks to commute some CMPP operations.
|
||||||
|
|
||||||
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
Implement some missing insert/extract element operations without going through
|
||||||
|
the stack. Testcase here:
|
||||||
|
CodeGen/X86/vec_ins_extract.ll
|
||||||
|
corresponds to this C code:
|
||||||
|
|
||||||
|
typedef float vectorfloat __attribute__((vector_size(16)));
|
||||||
|
void test(vectorfloat *F, float f) {
|
||||||
|
vectorfloat G = *F + *F;
|
||||||
|
*((float*)&G) = f;
|
||||||
|
*F = G + G;
|
||||||
|
}
|
||||||
|
void test2(vectorfloat *F, float f) {
|
||||||
|
vectorfloat G = *F + *F;
|
||||||
|
((float*)&G)[2] = f;
|
||||||
|
*F = G + G;
|
||||||
|
}
|
||||||
|
void test3(vectorfloat *F, float *f) {
|
||||||
|
vectorfloat G = *F + *F;
|
||||||
|
*f = ((float*)&G)[2];
|
||||||
|
}
|
||||||
|
void test4(vectorfloat *F, float *f) {
|
||||||
|
vectorfloat G = *F + *F;
|
||||||
|
*f = *((float*)&G);
|
||||||
|
}
|
||||||
|
|
||||||
|
//===---------------------------------------------------------------------===//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user