<div dir="ltr">Hello LLVMDevs,<div><br></div><div>I have following two patterns :</div><div><div>def : Pat<(selectcc (f32 GR32:$L), (f32 GR32:$R),</div><div>                    (i32 GR32:$T), (i32 GR32:$F), SETOLT),</div><div>          (Select_CC GR32:$T, GR32:$F, (FCMP_LT GR32:$L, GR32:$R), 1)>;</div><div>def : Pat<(selectcc (f32 GR32:$L), (f32 GR32:$R),</div><div>                    (f32 GR32:$T), (f32 GR32:$F), SETOLT),</div><div>          (Select_CC GR32:$T, GR32:$F, (FCMP_LT GR32:$L, GR32:$R), 1)>;</div></div><div><br></div><div>but I want to write it to single pattern like </div><div><br></div><div><div>Pat<(selectcc (f32 GR32:$L), (f32 GR32:$R),</div><div>                    GR32:$T, GR32:$F, SETOLT),</div><div>          (Select_CC GR32:$T, GR32:$F, (FCMP_LT GR32:$L, GR32:$R), 1)>;</div></div><div><br></div><div>GR32 is single register class used for i32/f32</div><div>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"</div><div><br></div><div>How to write such pattern matching rule ?</div><div><br></div><div>Sincerely,</div><div>VIvek</div></div>