[llvm-dev] specify dag pattern for an instructions
Rail Shafigulin via llvm-dev
llvm-dev at lists.llvm.org
Thu May 12 16:05:30 PDT 2016
I'd like to apologize in advance if the question seems dumb, but I've never
specified a DAG pattern for an instruction a don't know how it looks in
LLVM.
My target has an instruction which is similar to X86 horizontal add. The
instruction, let's call is sumreduce, sums up all the elements in a vector
and stores a result in GPR. What I'm trying to do is to replace a specific
DAG pattern (it is given below) with this instruction (DAG node).
Here is the pattern I need to replace:
r0 r1
\ /
add r2
\ /
add r3
\ /
add
|
r4
with
r4 = sumreduce r0 r1 r2 r3
For now assume that the vector has 4 elements in it and all of them are i32.
I would appreciate any pointers on how to do it. If someone could point me
to an example code that converts a DAG pattern to a DAG node I would
greatly appreciate it.
--
Rail Shafigulin
Software Engineer
Esencia Technologies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160512/affdc137/attachment-0001.html>
More information about the llvm-dev
mailing list