RegisterCoalescer: Fix valuesIdentical() in some subrange merge cases.
[oota-llvm.git] / test / CodeGen / R600 / subreg-coalescer-crash.ll
1 ; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs -o - %s
2 ; ModuleID = 'bugpoint-reduced-simplified.bc'
3 target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-p24:64:64-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64"
4 target triple = "r600--"
5
6 ; SI: s_endpgm
7 ; Function Attrs: nounwind
8 define void @row_filter_C1_D0() #0 {
9 entry:
10   br i1 undef, label %for.inc.1, label %do.body.preheader
11
12 do.body.preheader:                                ; preds = %entry
13   %0 = insertelement <4 x i32> zeroinitializer, i32 undef, i32 1
14   br i1 undef, label %do.body56.1, label %do.body90
15
16 do.body90:                                        ; preds = %do.body56.2, %do.body56.1, %do.body.preheader
17   %1 = phi <4 x i32> [ %6, %do.body56.2 ], [ %5, %do.body56.1 ], [ %0, %do.body.preheader ]
18   %2 = insertelement <4 x i32> %1, i32 undef, i32 2
19   %3 = insertelement <4 x i32> %2, i32 undef, i32 3
20   br i1 undef, label %do.body124.1, label %do.body.1562.preheader
21
22 do.body.1562.preheader:                           ; preds = %do.body124.1, %do.body90
23   %storemerge = phi <4 x i32> [ %3, %do.body90 ], [ %7, %do.body124.1 ]
24   %4 = insertelement <4 x i32> undef, i32 undef, i32 1
25   br label %for.inc.1
26
27 do.body56.1:                                      ; preds = %do.body.preheader
28   %5 = insertelement <4 x i32> %0, i32 undef, i32 1
29   %or.cond472.1 = or i1 undef, undef
30   br i1 %or.cond472.1, label %do.body56.2, label %do.body90
31
32 do.body56.2:                                      ; preds = %do.body56.1
33   %6 = insertelement <4 x i32> %5, i32 undef, i32 1
34   br label %do.body90
35
36 do.body124.1:                                     ; preds = %do.body90
37   %7 = insertelement <4 x i32> %3, i32 undef, i32 3
38   br label %do.body.1562.preheader
39
40 for.inc.1:                                        ; preds = %do.body.1562.preheader, %entry
41   %storemerge591 = phi <4 x i32> [ zeroinitializer, %entry ], [ %storemerge, %do.body.1562.preheader ]
42   %add.i495 = add <4 x i32> %storemerge591, undef
43   unreachable
44 }
45