mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-01 00:12:50 +01:00
fe5b207577
Given the pattern below as an example: list<dag> Pattern = [(set RC:$dst, (v4f32 (shufp:src3 RC:$src1, (mem_frag addr:$src2))))]; The right reference resolving should lead to: list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp:src3 VR128:$src1, (mem_frag addr:$src2))))]; But was yielding: list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp VR128:$src1, (mem_frag addr:$src2))))]; Fix this by passing the right name when creating a new DagInit node. llvm-svn: 106670
25 lines
396 B
TableGen
25 lines
396 B
TableGen
// RUN: tblgen %s | FileCheck %s
|
|
// XFAIL: vg_leak
|
|
|
|
class Instr<list<dag> pat> {
|
|
list<dag> Pattern = pat;
|
|
}
|
|
|
|
class Reg {
|
|
int a = 3;
|
|
}
|
|
|
|
def VR128 : Reg;
|
|
def mem_frag;
|
|
def set;
|
|
def addr;
|
|
def shufp : Reg;
|
|
|
|
multiclass shuffle<Reg RC> {
|
|
def rri : Instr<[(set RC:$dst, (shufp:$src3
|
|
RC:$src1, RC:$src2))]>;
|
|
}
|
|
|
|
// CHECK: shufp:src3
|
|
defm ADD : shuffle<VR128>;
|