[llvm-dev] LLVM ERROR: Cannot select: t29: v32f64 = X86ISD::VBROADCAST t9
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Mon Oct 23 12:21:22 PDT 2017
On 10/21/2017 3:07 PM, hameeza ahmed via llvm-dev wrote:
> Hello,
>
> i am getting following error;
>
> LLVM ERROR: Cannot select: t29: v32f64 = X86ISD::VBROADCAST t9
> t9: f64,ch = load<LD8[%10](tbaa=<0x38692f8>)> t0, t6, undef:i64
> t6: i64 = add FrameIndex:i64<1>, t5
> t1: i64 = FrameIndex<1>
> t5: i64 = shl t3, Constant:i8<3>
> t3: i64,ch = CopyFromReg t0, Register:i64 %vreg2
> t2: i64 = Register %vreg2
> t28: i8 = Constant<3>
> t8: i64 = undef
> In function: main
>
> although i have defined broadcast for v32f64 as follows:
>
> def P_256B_FBROADCASTD : I<0x66, MRMSrcMem, (outs VRP_2048:$dst), (ins
> i2048mem:$src),
> "P_256B_FBROADCASTD\t{$src, $dst|$dst, $src}",
> [(set VRP_2048:$dst, (v32f64 (X86VBroadcast
> (loadf64 addr:$src))))],
> IIC_MOV_MEM>;
>
> what is the reason for this?
> Please help.
>
In general, the output of "-debug-only=isel" is helpful for figuring out
why a pattern isn't matching. It outputs every step of the instruction
selection state machine; the numbers correspond to the comments in
lib/Target/X86/X86GenDAGISel.inc (a generated file in your build directory).
It's hard to say why your pattern in particular isn't working the way
you want it to without more information.
-Eli
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
More information about the llvm-dev
mailing list