[llvm-dev] Using single register class in Pat conversion in XXXInstrInfo.td

Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Mon May 15 06:38:31 PDT 2017


On 5/15/2017 4:58 AM, vivek pandya via llvm-dev wrote:
> 
> GR32 is single register class used for i32/f32
> and what I want is if the comparison is between f32 values then generate 
> FCMP , $T and $F can be i32/f32 but if I use above pattern table gen 
> fails with "Could not infer all types in pattern"
> 
> How to write such pattern matching rule ?

You can't. Type inference for instruction selection requires that the 
final types in a pattern are exact (i.e. that it infers a single type 
for each node in the pattern), regardless of the output pattern. Since 
GR32 allows multiple types, you need to specify the two input patterns 
separately.

-Krzysztof

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation


More information about the llvm-dev mailing list