Did you know you can write AltiVec (AKA Velocity Engine, kind of like MMX or SSE2 but for G4 and G5 processors) code from within OpenMCL?
(defppclapfunction load-array ((n arg_z))
  (check-nargs 1)
  (with-altivec-registers (vr1 vr2 vr3 vr27) ; Clobbers imm0
    (li imm0 arch::misc-data-offset)
    (lvx vr1 arg_z imm0) ; load MSQ
    (lvsl vr27 arg_z imm0) ; set the permute vector
    (addi imm0 imm0 16) ; address of LSQ
    (lvx vr2 arg_z imm0) ; load LSQ
    (vperm vr3 vr1 vr2 vr27) ; aligned result appears in VR3
    (dbg t)) ; Look at result in some debugger
  (blr))
I wish there were some cool examples.
Posted by jjwiseman at September 14, 2004 06:26 PM