[LLVMdev] Haswell New Instructions

Nicolas Capens nicolas.capens at gmail.com
Mon Jun 13 04:41:25 PDT 2011


Hi all,

 

Intel has just revealed its AVX2 instruction set, to be supported by the
2013 Haswell architecture, and it's looking quite revolutionary:
http://software.intel.com/en-us/forums/showthread.php?t=83399
<http://software.intel.com/en-us/forums/showthread.php?t=83399&o=a&s=lr>
&o=a&s=lr

 

It includes powerful 'gather' instructions, which allow reading multiple
vector elements from non-contiguous memory locations. It also extends all
integer vector instructions to 256-bit, and can shift vector elements by
independent counts. This offers tremendous opportunity for auto-vectorizing
loops, since practically every scalar operation will have a direct vector
equivalent. It also facilitates implementing throughput computing languages
like OpenCL.

 

So I was wondering whether in LLVM a gather operation is best represented
with a 'load' instruction taking vector operands, or whether it's better to
define it as a separate 'gather' instruction. What would be the pros and
cons of each approach, and what do you think should be the long-term goals
for the LLVM instruction set?

 

Cheers,

Nicolas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110613/68fa5f7e/attachment.html>


More information about the llvm-dev mailing list