[llvm-dev] floating point vector instructions
    Rail Shafigulin via llvm-dev 
    llvm-dev at lists.llvm.org
       
    Sat Apr  2 14:18:24 PDT 2016
    
    
  
I've added floating point vector instructions to my target. However when I
run a simple test I don't them being generated. What I see is a jump to the
library. Does anyone know why llvm is doing it and how I can force it to
use a my floating point vector instructions?
Any help is appreciated.
Here are the details of what I'm talking about:
Command Line:
clang --target=esencia -S -O3 test.c -o test.s
Instruction definition:
// Floating point instructions
class InstFRR<bits<8> op, dag outs, dag ins, string asmstr, list<dag>
pattern>
  : InstEsencia<outs, ins, asmstr, pattern> {
  let optype = 0b11;
  let opcode = 0b0010;
  let Inst{7-0} = op;
}
class VALU<bits<8> subOp, string asmstr, SDNode OpNode>
  : InstFRR<subOp, (outs VR:$rD), (ins VR:$rA, VR:$rB),
           !strconcat(asmstr, "\t$rD, $rA, $rB"),
           [(set VR:$rD, (OpNode VR:$rA, VR:$rB))]> {
  bits<5> rD;
  bits<5> rA;
  bits<5> rB;
  let Inst{25-21} = rD;
  let Inst{20-16} = rA;
  let Inst{15-11} = rB;
}
let Itinerary = v_fadd in
  def VFADD : VALU<0x1a, "v.fadd", fadd>;
Test file:
#define N 32
void foo (float *a, float *b, float *c) {
  for (int i = 0; i < N; ++i)
       c[i] = a[i] + b[i];
}
Jump instruction that I see:
l.jal __addsf3
It should use:
v.fadd v0, v1, v2
-- 
Rail Shafigulin
Software Engineer
Esencia Technologies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160402/f499ff4d/attachment.html>
    
    
More information about the llvm-dev
mailing list