annotate test/CodeGen/X86/rot16.ll @ 134:3a76565eade5 LLVM5.0.1

update 5.0.1
author mir3636
date Sat, 17 Feb 2018 09:57:20 +0900
parents 803732b1fca8
children c2174574ed3a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
2 ; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefix=X32
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
3 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefix=X64
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
5 define i16 @foo(i16 %x, i16 %y, i16 %z) nounwind {
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
6 ; X32-LABEL: foo:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
7 ; X32: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
8 ; X32-NEXT: movb {{[0-9]+}}(%esp), %cl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
9 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
10 ; X32-NEXT: rolw %cl, %ax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
11 ; X32-NEXT: retl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
12 ;
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
13 ; X64-LABEL: foo:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
14 ; X64: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
15 ; X64-NEXT: movl %edx, %ecx
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
16 ; X64-NEXT: shldw %cl, %di, %di
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
17 ; X64-NEXT: movl %edi, %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
18 ; X64-NEXT: retq
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
19 %t0 = shl i16 %x, %z
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
20 %t1 = sub i16 16, %z
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
21 %t2 = lshr i16 %x, %t1
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
22 %t3 = or i16 %t2, %t0
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
23 ret i16 %t3
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
26 define i16 @bar(i16 %x, i16 %y, i16 %z) nounwind {
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
27 ; X32-LABEL: bar:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
28 ; X32: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
29 ; X32-NEXT: movb {{[0-9]+}}(%esp), %cl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
30 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %edx
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
31 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
32 ; X32-NEXT: shldw %cl, %dx, %ax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
33 ; X32-NEXT: retl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
34 ;
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
35 ; X64-LABEL: bar:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
36 ; X64: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
37 ; X64-NEXT: movl %edx, %ecx
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
38 ; X64-NEXT: shldw %cl, %di, %si
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
39 ; X64-NEXT: movl %esi, %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
40 ; X64-NEXT: retq
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
41 %t0 = shl i16 %y, %z
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
42 %t1 = sub i16 16, %z
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
43 %t2 = lshr i16 %x, %t1
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
44 %t3 = or i16 %t2, %t0
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
45 ret i16 %t3
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
48 define i16 @un(i16 %x, i16 %y, i16 %z) nounwind {
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
49 ; X32-LABEL: un:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
50 ; X32: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
51 ; X32-NEXT: movb {{[0-9]+}}(%esp), %cl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
52 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
53 ; X32-NEXT: rorw %cl, %ax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
54 ; X32-NEXT: retl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
55 ;
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
56 ; X64-LABEL: un:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
57 ; X64: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
58 ; X64-NEXT: movl %edx, %ecx
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
59 ; X64-NEXT: shrdw %cl, %di, %di
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
60 ; X64-NEXT: movl %edi, %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
61 ; X64-NEXT: retq
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
62 %t0 = lshr i16 %x, %z
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
63 %t1 = sub i16 16, %z
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
64 %t2 = shl i16 %x, %t1
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
65 %t3 = or i16 %t2, %t0
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
66 ret i16 %t3
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
69 define i16 @bu(i16 %x, i16 %y, i16 %z) nounwind {
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
70 ; X32-LABEL: bu:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
71 ; X32: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
72 ; X32-NEXT: movb {{[0-9]+}}(%esp), %cl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
73 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %edx
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
74 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
75 ; X32-NEXT: shrdw %cl, %dx, %ax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
76 ; X32-NEXT: retl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
77 ;
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
78 ; X64-LABEL: bu:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
79 ; X64: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
80 ; X64-NEXT: movl %edx, %ecx
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
81 ; X64-NEXT: shrdw %cl, %di, %si
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
82 ; X64-NEXT: movl %esi, %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
83 ; X64-NEXT: retq
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
84 %t0 = lshr i16 %y, %z
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
85 %t1 = sub i16 16, %z
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
86 %t2 = shl i16 %x, %t1
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
87 %t3 = or i16 %t2, %t0
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
88 ret i16 %t3
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
91 define i16 @xfoo(i16 %x, i16 %y, i16 %z) nounwind {
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
92 ; X32-LABEL: xfoo:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
93 ; X32: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
94 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
95 ; X32-NEXT: rolw $5, %ax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
96 ; X32-NEXT: retl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
97 ;
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
98 ; X64-LABEL: xfoo:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
99 ; X64: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
100 ; X64-NEXT: rolw $5, %di
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
101 ; X64-NEXT: movl %edi, %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
102 ; X64-NEXT: retq
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
103 %t0 = lshr i16 %x, 11
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
104 %t1 = shl i16 %x, 5
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
105 %t2 = or i16 %t0, %t1
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
106 ret i16 %t2
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
109 define i16 @xbar(i16 %x, i16 %y, i16 %z) nounwind {
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
110 ; X32-LABEL: xbar:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
111 ; X32: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
112 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
113 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
114 ; X32-NEXT: shldw $5, %cx, %ax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
115 ; X32-NEXT: retl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
116 ;
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
117 ; X64-LABEL: xbar:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
118 ; X64: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
119 ; X64-NEXT: shldw $5, %di, %si
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
120 ; X64-NEXT: movl %esi, %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
121 ; X64-NEXT: retq
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
122 %t0 = shl i16 %y, 5
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
123 %t1 = lshr i16 %x, 11
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
124 %t2 = or i16 %t0, %t1
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
125 ret i16 %t2
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
128 define i16 @xun(i16 %x, i16 %y, i16 %z) nounwind {
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
129 ; X32-LABEL: xun:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
130 ; X32: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
131 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
132 ; X32-NEXT: rolw $11, %ax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
133 ; X32-NEXT: retl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
134 ;
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
135 ; X64-LABEL: xun:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
136 ; X64: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
137 ; X64-NEXT: rolw $11, %di
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
138 ; X64-NEXT: movl %edi, %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
139 ; X64-NEXT: retq
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
140 %t0 = lshr i16 %x, 5
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
141 %t1 = shl i16 %x, 11
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
142 %t2 = or i16 %t0, %t1
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
143 ret i16 %t2
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 }
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
146 define i16 @xbu(i16 %x, i16 %y, i16 %z) nounwind {
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
147 ; X32-LABEL: xbu:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
148 ; X32: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
149 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %ecx
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
150 ; X32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
151 ; X32-NEXT: shldw $11, %cx, %ax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
152 ; X32-NEXT: retl
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
153 ;
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
154 ; X64-LABEL: xbu:
134
3a76565eade5 update 5.0.1
mir3636
parents: 121
diff changeset
155 ; X64: # %bb.0:
121
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
156 ; X64-NEXT: shldw $11, %si, %di
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
157 ; X64-NEXT: movl %edi, %eax
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
158 ; X64-NEXT: retq
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
159 %t0 = lshr i16 %y, 5
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
160 %t1 = shl i16 %x, 11
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
161 %t2 = or i16 %t0, %t1
803732b1fca8 LLVM 5.0
kono
parents: 33
diff changeset
162 ret i16 %t2
0
95c75e76d11b LLVM 3.4
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 }