mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 06:33:24 +00:00
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28787 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ca0173bc0a
commit
4b5a352f25
@ -664,3 +664,32 @@ e.g. SSE select using and, andnot, or. Various SSE compare translations.
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
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