Evict local live ranges if they can be reassigned.
[oota-llvm.git] / test / TableGen / pr8330.td
1 // RUN: llvm-tblgen %s | FileCheck %s
2
3 class Or4<bits<8> Val> {
4   bits<8> V = {Val{7}, Val{6}, Val{5}, Val{4}, Val{3}, 1, Val{1}, Val{0} };
5 }
6
7 class Whatev<bits<8> x>;
8
9 class Whatever<bits<8> x> {
10   bits<8> W = {x{0}, x{1}, x{2}, x{3}, x{4}, x{5}, x{6}, x{7} };
11 }
12
13 multiclass X<bits<8> BaseOpc> {
14  def bar : Whatev<Or4<BaseOpc>.V >;
15 }
16
17 multiclass Y<bits<8> BaseOpc> {
18  def foo : Whatever<Or4<BaseOpc>.V >;
19 }
20
21 defm a : X<4>;
22
23 // CHECK: def abar
24
25 defm b : Y<8>;
26
27 // CHECK: def bfoo
28 // CHECK-NEXT: bits<8> W = { 0, 0, 1, 1, 0, 0, 0, 0 };