<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi list,<br>
<br>
I'm trying to match a particular pattern into the SDag which looks
like this:<br>
<br>
// non-commutative multiplication<br>
<font face="Courier New, Courier, monospace">def ncmul :
SDNode<"ISD::MUL" , SDTIntBinOp,<br>
[SDNPAssociative]>;<br>
<br>
def mula_pat : PatFrag<(ops node:$a, node:$b),<br>
(add<br>
(ncmul<br>
(sext (i16 (extractelt node:$a,
(i32 0)))),<br>
(sext (i16 (extractelt node:$b,
(i32 1))))<br>
),<br>
(ncmul<br>
(sext (i16 (extractelt node:$a,
(i32 1)))),<br>
(sext (i16 (extractelt node:$b,
(i32 0))))<br>
)<br>
)<br>
>;<br>
<br>
def ADDMULv : InstSP< (outs IntRegs:$dst), (ins IntRegs:$a,
IntRegs:$b),<br>
"muladd $a, $b, $dst",<br>
[(set (i32 IntRegs:$dst), (mula_pat (v2i16
IntRegs:$a), (v2i16 IntRegs:$b)))]>;</font><br>
<br>
IntRegs is class with a type list of [i32, v2i16]<br>
<br>
But I get the following error when llvm building system try to
generate the ISelector<br>
<br>
<font face="Courier New, Courier, monospace">llvm[3]: Building
Sparc.td DAG instruction selector implementation with tblgen<br>
vtInt: (vt:Other)<<P:Predicate_vtInt>><br>
Type constraint application shouldn't fail!0 llvm-tblgen
0x081d6de7<br>
1 llvm-tblgen 0x081d6b74<br>
2 0x4001d400 __kernel_sigreturn + 0<br>
3 libc.so.6 0x401b8a82 abort + 386<br>
4 llvm-tblgen 0x0810a4ab<br>
5 llvm-tblgen 0x0810a38f<br>
6 llvm-tblgen 0x0810dd72<br>
7 llvm-tblgen 0x080f8d98<br>
8 llvm-tblgen 0x08176f49<br>
9 llvm-tblgen 0x08184519<br>
10 llvm-tblgen 0x081760e5<br>
11 libc.so.6 0x401a1bd6 __libc_start_main + 230<br>
12 llvm-tblgen 0x0804cb51</font><br>
<br>
Any clue where it may come from ?<br>
<br>
<br>
Ivan<br>
</body>
</html>