This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / X86 / 2010-04-29-CoalescerCrash.ll
bloba22f38ae3baaa8bab11612ed46559d185745a0ce
1 ; RUN: llc < %s -relocation-model=pic -disable-fp-elim -verify-machineinstrs
2 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
3 target triple = "x86_64-unknown-linux-gnu"
5 define void @_ZN12_GLOBAL__N_113SPUAsmPrinter15EmitInstructionEPKN4llvm12MachineInstrE(i8* %this, i8* %MI) nounwind inlinehint align 2 {
6 entry:
7   br i1 undef, label %"3.i", label %"4.i"
9 "3.i":                                            ; preds = %entry
10   unreachable
12 "4.i":                                            ; preds = %entry
13   switch i32 undef, label %_ZN12_GLOBAL__N_113SPUAsmPrinter16printInstructionEPKN4llvm12MachineInstrERNS1_11raw_ostreamE.exit [
14     i32 1, label %"5.i"
15     i32 2, label %"6.i"
16     i32 3, label %"7.i"
17     i32 4, label %"8.i"
18     i32 5, label %"9.i"
19   ]
21 "5.i":                                            ; preds = %"4.i"
22   unreachable
24 "6.i":                                            ; preds = %"4.i"
25   switch i32 undef, label %"11.i" [
26     i32 1, label %"12.i"
27     i32 2, label %"13.i"
28     i32 3, label %_ZN12_GLOBAL__N_113SPUAsmPrinter16printInstructionEPKN4llvm12MachineInstrERNS1_11raw_ostreamE.exit
29     i32 4, label %"14.i"
30   ]
32 "7.i":                                            ; preds = %"4.i"
33   unreachable
35 "8.i":                                            ; preds = %"4.i"
36   unreachable
38 "9.i":                                            ; preds = %"4.i"
39   unreachable
41 "11.i":                                           ; preds = %"6.i"
42   switch i32 undef, label %"15.i" [
43     i32 1, label %"16.i"
44     i32 2, label %"17.i"
45     i32 3, label %"18.i"
46     i32 4, label %"19.i"
47     i32 5, label %"20.i"
48     i32 6, label %"21.i"
49     i32 7, label %"24.i"
50     i32 8, label %"27.i"
51     i32 9, label %"28.i"
52     i32 10, label %"29.i"
53     i32 11, label %"30.i"
54     i32 12, label %"31.i"
55     i32 13, label %"32.i"
56     i32 14, label %"39.i"
57   ]
59 "12.i":                                           ; preds = %"6.i"
60   unreachable
62 "13.i":                                           ; preds = %"6.i"
63   unreachable
65 "14.i":                                           ; preds = %"6.i"
66   unreachable
68 "15.i":                                           ; preds = %"11.i"
69   unreachable
71 "16.i":                                           ; preds = %"11.i"
72   unreachable
74 "17.i":                                           ; preds = %"11.i"
75   unreachable
77 "18.i":                                           ; preds = %"11.i"
78   unreachable
80 "19.i":                                           ; preds = %"11.i"
81   unreachable
83 "20.i":                                           ; preds = %"11.i"
84   unreachable
86 "21.i":                                           ; preds = %"11.i"
87   br i1 undef, label %"22.i", label %"23.i"
89 "22.i":                                           ; preds = %"21.i"
90   unreachable
92 "23.i":                                           ; preds = %"21.i"
93   unreachable
95 "24.i":                                           ; preds = %"11.i"
96   unreachable
98 "27.i":                                           ; preds = %"11.i"
99   unreachable
101 "28.i":                                           ; preds = %"11.i"
102   unreachable
104 "29.i":                                           ; preds = %"11.i"
105   unreachable
107 "30.i":                                           ; preds = %"11.i"
108   unreachable
110 "31.i":                                           ; preds = %"11.i"
111   unreachable
113 "32.i":                                           ; preds = %"11.i"
114   unreachable
116 "39.i":                                           ; preds = %"11.i"
117   br i1 undef, label %"41.i", label %"40.i"
119 "40.i":                                           ; preds = %"39.i"
120   unreachable
122 "41.i":                                           ; preds = %"39.i"
123   %0 = call i64 @_ZNK4llvm14MachineOperand6getImmEv(i8 undef) nounwind inlinehint ; <i64> [#uses=1]
124   %1 = trunc i64 %0 to i16                        ; <i16> [#uses=1]
125   br i1 undef, label %"42.i", label %"43.i"
127 "42.i":                                           ; preds = %"41.i"
128   unreachable
130 "43.i":                                           ; preds = %"41.i"
131   %2 = and i16 %1, -16                            ; <i16> [#uses=1]
132   %3 = sext i16 %2 to i64                         ; <i64> [#uses=1]
133   %4 = call i8 @_ZN4llvm11raw_ostreamlsEl(i8 undef, i64 %3) nounwind ; <i8> [#uses=0]
134   unreachable
136 _ZN12_GLOBAL__N_113SPUAsmPrinter16printInstructionEPKN4llvm12MachineInstrERNS1_11raw_ostreamE.exit: ; preds = %"6.i", %"4.i"
137   ret void
140 declare i64 @_ZNK4llvm14MachineOperand6getImmEv(i8) nounwind inlinehint align 2
142 declare i8 @_ZN4llvm11raw_ostreamlsEl(i8, i64)