[llvm-dev] Help lowering byte wise compare instruction

Hal Finkel via llvm-dev llvm-dev at lists.llvm.org
Wed Feb 15 10:06:19 PST 2017


On 02/15/2017 08:49 AM, vivek pandya via llvm-dev wrote:
>
> Hello LLVM Devs,
>
>
> Hope you are doing well.
> I am implementing LLVM back-end for an architecture which has 
> instruction that performs byte by byte comparison and stores result 
> for each byte.
>
> pcmpbf rD, rA, rB --> bytewise comparison returning position of first 
> match in rd
>
> So with this regard I wanted to find similar instruction lowering for 
> nay other architecture which have similar instruction.
> I found some thing similar on PPC. If I am wrong kindly suggest some 
> example.
>
> I am trying to understand following statement from PPCInstrInfo.td file:
>   def CMPRB  : X_BF3_L1_RS5_RS5<31, 192, (outs crbitrc:$BF),
>                                 (ins u1imm:$L, g8rc:$rA, g8rc:$rB),
>                                 "cmprb $BF, $L, $rA, $rB", 
> IIC_IntCompare, []>,
>                Requires<[IsISA3_0]>;
> Here I am not able to understand against which DAG pattern this gets 
> matched ? By doing grep I don't get any code which provide me the 
> required info.

I don't think we have a pattern for that instruction currently. We have 
a CMPB instruction, which we can automatically generate, and sounds 
similar to your desired semantics, see PPCDAGToDAGISel::combineToCMPB in 
PPCISelDAGToDAG.cpp.

  -Hal

>
> Basically I want to know which LLVM IR instruction or intrinsic has 
> similar semantics and then how I can lower it correctly.
>
> Sincerely,
> Vivek
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170215/75751ab0/attachment.html>


More information about the llvm-dev mailing list