[LLVMdev] IntrNoMem causing
Villmow, Micah
Micah.Villmow at amd.com
Thu Mar 31 16:51:41 PDT 2011
So I have debugged into my problem w/ VerifySDNode more to try to figure out why this is occuring and I ran across another peculiarity.
I have a intrinsic that reads from a special register a vec4 i32 value.
The intrinsic is specified as:
def int_AMDIL_get_global_id : GCCBuiltin<"__amdil_get_global_id_int">,
Intrinsic<[llvm_v4i32_ty], [], []>;
My pattern for the intrinsic is:
def GET_GLOBAL_ID : ILFormat<IL_OP_MOV, (outs GPRV4I32:$dst),
(ins), !strconcat(IL_OP_MOV.Text, " $dst, r1021.xyz0"),
[(set GPRV4I32:$dst, (int_AMDIL_get_global_id))]>;
There is no problem here and works fine.
However if I do this:
def int_AMDIL_get_global_id : GCCBuiltin<"__amdil_get_global_id_int">,
Intrinsic<[llvm_v4i32_ty], [], [IntrNoMem]>;
Then my pattern fails and my intrinsic has two extra arguments(Entry Token and some constant value which I am guessing is the intrinsic opcode).
Does anyone have an idea of what would cause IntroNoMem to stop my pattern from being matched? It isn't just this intrinsic, any intrinsic I add it to no longer matches. If I remove the field, it matches correctly.
Thanks,
Micah
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110331/6798da99/attachment.html>
More information about the llvm-dev
mailing list