llvm-6502/lib
Chris Lattner 72dd9bdcc5 Lower v8i16 multiply into this code:
li r5, lo16(LCPI1_0)
        lis r6, ha16(LCPI1_0)
        lvx v4, r6, r5
        vmulouh v5, v3, v2
        vmuleuh v2, v3, v2
        vperm v2, v2, v5, v4

where v4 is:
LCPI1_0:                                        ;  <16 x ubyte>
        .byte   2
        .byte   3
        .byte   18
        .byte   19
        .byte   6
        .byte   7
        .byte   22
        .byte   23
        .byte   10
        .byte   11
        .byte   26
        .byte   27
        .byte   14
        .byte   15
        .byte   30
        .byte   31

This is 5.07x faster on the G5 (measured) than lowering to scalar code +
loads/stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27789 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 03:43:48 +00:00
..
Analysis Implement value #'ing for vector operations, implementing 2006-04-14 05:10:20 +00:00
Archive more C++ daintiness 2005-12-26 14:31:26 +00:00
AsmParser Make sure CVS versions of yacc and lex files get distributed. 2006-04-12 20:57:05 +00:00
Bytecode use isValidOperands instead of duplicating checks 2006-04-08 04:09:19 +00:00
CodeGen Fix handling of calls in functions that use vectors. This fixes a crash on 2006-04-17 22:10:08 +00:00
Debugger Add the README files to the distribution. 2006-04-13 06:39:24 +00:00
ExecutionEngine Get JIT/Interpreter working on Windows again. 2006-03-24 02:53:49 +00:00
Linker Add shufflevector support 2006-04-08 01:19:47 +00:00
Support Qualify dwarf namespace inside llvm namespace. 2006-02-27 22:37:23 +00:00
System Add checks for __OpenBSD__. 2006-04-17 17:55:41 +00:00
Target Lower v8i16 multiply into this code: 2006-04-18 03:43:48 +00:00
Transforms Turn x86 unaligned load/store intrinsics into aligned load/store instructions 2006-04-17 22:26:56 +00:00
VMCore Move these ctors out of line 2006-04-14 22:20:32 +00:00
Makefile