[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / PowerPC / 2010-04-01-MachineCSEBug.ll
blob41c0062324a325528aa5fc234e22a665ecd0e4e3
1 ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu
2 ; rdar://7819990
4 %0 = type { i32 }
5 %1 = type { i64 }
6 %struct.Buffer = type { [1024 x i8], i64, i64, i64 }
7 %struct.InStream = type { %struct.Buffer, %0, %1, i32*, %struct.InStreamMethods* }
8 %struct.InStreamMethods = type { void (%struct.InStream*, i8*, i32)*, void (%struct.InStream*, i64)*, i64 (%struct.InStream*)*, void (%struct.InStream*)* }
10 define i64 @t(%struct.InStream* %is) nounwind optsize ssp {
11 entry:
12   br i1 undef, label %is_read_byte.exit, label %bb.i
14 bb.i:                                             ; preds = %entry
15   br label %is_read_byte.exit
17 is_read_byte.exit:                                ; preds = %bb.i, %entry
18   br i1 undef, label %is_read_byte.exit22, label %bb.i21
20 bb.i21:                                           ; preds = %is_read_byte.exit
21   unreachable
23 is_read_byte.exit22:                              ; preds = %is_read_byte.exit
24   br i1 undef, label %is_read_byte.exit19, label %bb.i18
26 bb.i18:                                           ; preds = %is_read_byte.exit22
27   br label %is_read_byte.exit19
29 is_read_byte.exit19:                              ; preds = %bb.i18, %is_read_byte.exit22
30   br i1 undef, label %is_read_byte.exit16, label %bb.i15
32 bb.i15:                                           ; preds = %is_read_byte.exit19
33   unreachable
35 is_read_byte.exit16:                              ; preds = %is_read_byte.exit19
36   %0 = shl i64 undef, 32                          ; <i64> [#uses=1]
37   br i1 undef, label %is_read_byte.exit13, label %bb.i12
39 bb.i12:                                           ; preds = %is_read_byte.exit16
40   unreachable
42 is_read_byte.exit13:                              ; preds = %is_read_byte.exit16
43   %1 = shl i64 undef, 24                          ; <i64> [#uses=1]
44   br i1 undef, label %is_read_byte.exit10, label %bb.i9
46 bb.i9:                                            ; preds = %is_read_byte.exit13
47   unreachable
49 is_read_byte.exit10:                              ; preds = %is_read_byte.exit13
50   %2 = shl i64 undef, 16                          ; <i64> [#uses=1]
51   br i1 undef, label %is_read_byte.exit7, label %bb.i6
53 bb.i6:                                            ; preds = %is_read_byte.exit10
54   br label %is_read_byte.exit7
56 is_read_byte.exit7:                               ; preds = %bb.i6, %is_read_byte.exit10
57   %3 = shl i64 undef, 8                           ; <i64> [#uses=1]
58   br i1 undef, label %is_read_byte.exit4, label %bb.i3
60 bb.i3:                                            ; preds = %is_read_byte.exit7
61   unreachable
63 is_read_byte.exit4:                               ; preds = %is_read_byte.exit7
64   %4 = or i64 0, %0                               ; <i64> [#uses=1]
65   %5 = or i64 %4, %1                              ; <i64> [#uses=1]
66   %6 = or i64 %5, %2                              ; <i64> [#uses=1]
67   %7 = or i64 %6, %3                              ; <i64> [#uses=1]
68   %8 = or i64 %7, 0                               ; <i64> [#uses=1]
69   ret i64 %8