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