Land the long talked about "type system rewrite" patch. This
[llvm/stm8.git] / test / ExecutionEngine / test-cast.ll
blobf41448cc60aa62b5ed9a50704b271b924a53a59f
1 ; RUN: lli %s > /dev/null
3 define i32 @foo() {
4         ret i32 0
7 define i32 @main() {
8         icmp ne i1 true, false          ; <i1>:1 [#uses=0]
9         zext i1 true to i8              ; <i8>:2 [#uses=0]
10         zext i1 true to i8              ; <i8>:3 [#uses=0]
11         zext i1 true to i16             ; <i16>:4 [#uses=0]
12         zext i1 true to i16             ; <i16>:5 [#uses=0]
13         zext i1 true to i32             ; <i32>:6 [#uses=0]
14         zext i1 true to i32             ; <i32>:7 [#uses=0]
15         zext i1 true to i64             ; <i64>:8 [#uses=0]
16         zext i1 true to i64             ; <i64>:9 [#uses=0]
17         uitofp i1 true to float         ; <float>:10 [#uses=0]
18         uitofp i1 true to double                ; <double>:11 [#uses=0]
19         icmp ne i8 0, 0         ; <i1>:12 [#uses=0]
20         icmp ne i8 1, 0         ; <i1>:13 [#uses=0]
21         bitcast i8 0 to i8              ; <i8>:14 [#uses=0]
22         bitcast i8 -1 to i8             ; <i8>:15 [#uses=0]
23         sext i8 4 to i16                ; <i16>:16 [#uses=0]
24         sext i8 4 to i16                ; <i16>:17 [#uses=0]
25         sext i8 4 to i64                ; <i64>:18 [#uses=0]
26         sext i8 4 to i64                ; <i64>:19 [#uses=0]
27         sitofp i8 4 to float            ; <float>:20 [#uses=0]
28         sitofp i8 4 to double           ; <double>:21 [#uses=0]
29         icmp ne i8 0, 0         ; <i1>:22 [#uses=0]
30         icmp ne i8 1, 0         ; <i1>:23 [#uses=0]
31         bitcast i8 0 to i8              ; <i8>:24 [#uses=0]
32         bitcast i8 1 to i8              ; <i8>:25 [#uses=0]
33         zext i8 4 to i16                ; <i16>:26 [#uses=0]
34         zext i8 4 to i16                ; <i16>:27 [#uses=0]
35         zext i8 4 to i64                ; <i64>:28 [#uses=0]
36         zext i8 4 to i64                ; <i64>:29 [#uses=0]
37         uitofp i8 0 to float            ; <float>:30 [#uses=0]
38         uitofp i8 0 to double           ; <double>:31 [#uses=0]
39         icmp ne i16 1, 0                ; <i1>:32 [#uses=0]
40         trunc i16 -1 to i8              ; <i8>:33 [#uses=0]
41         trunc i16 255 to i8             ; <i8>:34 [#uses=0]
42         bitcast i16 0 to i16            ; <i16>:35 [#uses=0]
43         bitcast i16 0 to i16            ; <i16>:36 [#uses=0]
44         sext i16 0 to i64               ; <i64>:37 [#uses=0]
45         sext i16 0 to i64               ; <i64>:38 [#uses=0]
46         sitofp i16 0 to float           ; <float>:39 [#uses=0]
47         sitofp i16 0 to double          ; <double>:40 [#uses=0]
48         icmp ne i16 1, 0                ; <i1>:41 [#uses=0]
49         trunc i16 1 to i8               ; <i8>:42 [#uses=0]
50         trunc i16 255 to i8             ; <i8>:43 [#uses=0]
51         bitcast i16 0 to i16            ; <i16>:44 [#uses=0]
52         bitcast i16 0 to i16            ; <i16>:45 [#uses=0]
53         zext i16 0 to i64               ; <i64>:46 [#uses=0]
54         zext i16 0 to i64               ; <i64>:47 [#uses=0]
55         uitofp i16 0 to float           ; <float>:48 [#uses=0]
56         uitofp i16 0 to double          ; <double>:49 [#uses=0]
57         icmp ne i32 6, 0                ; <i1>:50 [#uses=0]
58         trunc i32 -6 to i8              ; <i8>:51 [#uses=0]
59         trunc i32 6 to i8               ; <i8>:52 [#uses=0]
60         trunc i32 6 to i16              ; <i16>:53 [#uses=0]
61         bitcast i32 0 to i32            ; <i32>:54 [#uses=0]
62         sext i32 0 to i64               ; <i64>:55 [#uses=0]
63         sext i32 0 to i64               ; <i64>:56 [#uses=0]
64         sitofp i32 0 to float           ; <float>:57 [#uses=0]
65         sitofp i32 0 to double          ; <double>:58 [#uses=0]
66         icmp ne i32 6, 0                ; <i1>:59 [#uses=0]
67         trunc i32 7 to i8               ; <i8>:60 [#uses=0]
68         trunc i32 8 to i8               ; <i8>:61 [#uses=0]
69         trunc i32 9 to i16              ; <i16>:62 [#uses=0]
70         bitcast i32 10 to i32           ; <i32>:63 [#uses=0]
71         zext i32 0 to i64               ; <i64>:64 [#uses=0]
72         zext i32 0 to i64               ; <i64>:65 [#uses=0]
73         uitofp i32 0 to float           ; <float>:66 [#uses=0]
74         uitofp i32 0 to double          ; <double>:67 [#uses=0]
75         icmp ne i64 0, 0                ; <i1>:68 [#uses=0]
76         trunc i64 0 to i8               ; <i8>:69 [#uses=0]
77         trunc i64 0 to i8               ; <i8>:70 [#uses=0]
78         trunc i64 0 to i16              ; <i16>:71 [#uses=0]
79         trunc i64 0 to i16              ; <i16>:72 [#uses=0]
80         trunc i64 0 to i32              ; <i32>:73 [#uses=0]
81         trunc i64 0 to i32              ; <i32>:74 [#uses=0]
82         bitcast i64 0 to i64            ; <i64>:75 [#uses=0]
83         bitcast i64 0 to i64            ; <i64>:76 [#uses=0]
84         sitofp i64 0 to float           ; <float>:77 [#uses=0]
85         sitofp i64 0 to double          ; <double>:78 [#uses=0]
86         icmp ne i64 1, 0                ; <i1>:79 [#uses=0]
87         trunc i64 1 to i8               ; <i8>:80 [#uses=0]
88         trunc i64 1 to i8               ; <i8>:81 [#uses=0]
89         trunc i64 1 to i16              ; <i16>:82 [#uses=0]
90         trunc i64 1 to i16              ; <i16>:83 [#uses=0]
91         trunc i64 1 to i32              ; <i32>:84 [#uses=0]
92         trunc i64 1 to i32              ; <i32>:85 [#uses=0]
93         bitcast i64 1 to i64            ; <i64>:86 [#uses=0]
94         bitcast i64 1 to i64            ; <i64>:87 [#uses=0]
95         uitofp i64 1 to float           ; <float>:88 [#uses=0]
96         uitofp i64 0 to double          ; <double>:89 [#uses=0]
97         bitcast float 0.000000e+00 to float             ; <float>:90 [#uses=0]
98         fpext float 0.000000e+00 to double              ; <double>:91 [#uses=0]
99         fptosi double 0.000000e+00 to i8                ; <i8>:92 [#uses=0]
100         fptoui double 0.000000e+00 to i8                ; <i8>:93 [#uses=0]
101         fptosi double 0.000000e+00 to i16               ; <i16>:94 [#uses=0]
102         fptoui double 0.000000e+00 to i16               ; <i16>:95 [#uses=0]
103         fptosi double 0.000000e+00 to i32               ; <i32>:96 [#uses=0]
104         fptoui double 0.000000e+00 to i32               ; <i32>:97 [#uses=0]
105         fptosi double 0.000000e+00 to i64               ; <i64>:98 [#uses=0]
106         fptrunc double 0.000000e+00 to float            ; <float>:99 [#uses=0]
107         bitcast double 0.000000e+00 to double           ; <double>:100 [#uses=0]
108         ret i32 0