• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 | FileCheck %s --check-prefix=CHECK --check-prefix=GENERIC
3; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=atom | FileCheck %s --check-prefix=CHECK --check-prefix=ATOM
4; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=slm | FileCheck %s --check-prefix=CHECK --check-prefix=SLM
5; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=sandybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY
6; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=ivybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY
7; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=haswell | FileCheck %s --check-prefix=CHECK --check-prefix=HASWELL
8; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=broadwell | FileCheck %s --check-prefix=CHECK --check-prefix=BROADWELL
9; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skylake | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE
10; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skx | FileCheck %s --check-prefix=CHECK --check-prefix=SKX
11; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=btver2 | FileCheck %s --check-prefix=CHECK --check-prefix=BTVER2
12; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=znver1 | FileCheck %s --check-prefix=CHECK --check-prefix=ZNVER1
13
14define void @test_cmov_16(i16 %a0, i16 %a1, i16 *%a2) optsize {
15; GENERIC-LABEL: test_cmov_16:
16; GENERIC:       # %bb.0:
17; GENERIC-NEXT:    #APP
18; GENERIC-NEXT:    cmovow %si, %di # sched: [2:0.67]
19; GENERIC-NEXT:    cmovnow %si, %di # sched: [2:0.67]
20; GENERIC-NEXT:    cmovbw %si, %di # sched: [2:0.67]
21; GENERIC-NEXT:    cmovbw %si, %di # sched: [2:0.67]
22; GENERIC-NEXT:    cmovbw %si, %di # sched: [2:0.67]
23; GENERIC-NEXT:    cmovaew %si, %di # sched: [2:0.67]
24; GENERIC-NEXT:    cmovaew %si, %di # sched: [2:0.67]
25; GENERIC-NEXT:    cmovaew %si, %di # sched: [2:0.67]
26; GENERIC-NEXT:    cmovew %si, %di # sched: [2:0.67]
27; GENERIC-NEXT:    cmovew %si, %di # sched: [2:0.67]
28; GENERIC-NEXT:    cmovnew %si, %di # sched: [2:0.67]
29; GENERIC-NEXT:    cmovnew %si, %di # sched: [2:0.67]
30; GENERIC-NEXT:    cmovbew %si, %di # sched: [3:1.00]
31; GENERIC-NEXT:    cmovbew %si, %di # sched: [3:1.00]
32; GENERIC-NEXT:    cmovaw %si, %di # sched: [3:1.00]
33; GENERIC-NEXT:    cmovaw %si, %di # sched: [3:1.00]
34; GENERIC-NEXT:    cmovsw %si, %di # sched: [2:0.67]
35; GENERIC-NEXT:    cmovnsw %si, %di # sched: [2:0.67]
36; GENERIC-NEXT:    cmovpw %si, %di # sched: [2:0.67]
37; GENERIC-NEXT:    cmovpw %si, %di # sched: [2:0.67]
38; GENERIC-NEXT:    cmovnpw %si, %di # sched: [2:0.67]
39; GENERIC-NEXT:    cmovnpw %si, %di # sched: [2:0.67]
40; GENERIC-NEXT:    cmovlw %si, %di # sched: [2:0.67]
41; GENERIC-NEXT:    cmovlw %si, %di # sched: [2:0.67]
42; GENERIC-NEXT:    cmovgew %si, %di # sched: [2:0.67]
43; GENERIC-NEXT:    cmovgew %si, %di # sched: [2:0.67]
44; GENERIC-NEXT:    cmovlew %si, %di # sched: [2:0.67]
45; GENERIC-NEXT:    cmovlew %si, %di # sched: [2:0.67]
46; GENERIC-NEXT:    cmovgw %si, %di # sched: [2:0.67]
47; GENERIC-NEXT:    cmovgw %si, %di # sched: [2:0.67]
48; GENERIC-NEXT:    cmovow (%rdx), %di # sched: [7:0.67]
49; GENERIC-NEXT:    cmovnow (%rdx), %di # sched: [7:0.67]
50; GENERIC-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
51; GENERIC-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
52; GENERIC-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
53; GENERIC-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
54; GENERIC-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
55; GENERIC-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
56; GENERIC-NEXT:    cmovew (%rdx), %di # sched: [7:0.67]
57; GENERIC-NEXT:    cmovew (%rdx), %di # sched: [7:0.67]
58; GENERIC-NEXT:    cmovnew (%rdx), %di # sched: [7:0.67]
59; GENERIC-NEXT:    cmovnew (%rdx), %di # sched: [7:0.67]
60; GENERIC-NEXT:    cmovbew (%rdx), %di # sched: [8:1.00]
61; GENERIC-NEXT:    cmovbew (%rdx), %di # sched: [8:1.00]
62; GENERIC-NEXT:    cmovaw (%rdx), %di # sched: [8:1.00]
63; GENERIC-NEXT:    cmovaw (%rdx), %di # sched: [8:1.00]
64; GENERIC-NEXT:    cmovsw (%rdx), %di # sched: [7:0.67]
65; GENERIC-NEXT:    cmovnsw (%rdx), %di # sched: [7:0.67]
66; GENERIC-NEXT:    cmovpw (%rdx), %di # sched: [7:0.67]
67; GENERIC-NEXT:    cmovpw (%rdx), %di # sched: [7:0.67]
68; GENERIC-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.67]
69; GENERIC-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.67]
70; GENERIC-NEXT:    cmovlw (%rdx), %di # sched: [7:0.67]
71; GENERIC-NEXT:    cmovlw (%rdx), %di # sched: [7:0.67]
72; GENERIC-NEXT:    cmovgew (%rdx), %di # sched: [7:0.67]
73; GENERIC-NEXT:    cmovgew (%rdx), %di # sched: [7:0.67]
74; GENERIC-NEXT:    cmovlew (%rdx), %di # sched: [7:0.67]
75; GENERIC-NEXT:    cmovlew (%rdx), %di # sched: [7:0.67]
76; GENERIC-NEXT:    cmovgw (%rdx), %di # sched: [7:0.67]
77; GENERIC-NEXT:    cmovgw (%rdx), %di # sched: [7:0.67]
78; GENERIC-NEXT:    #NO_APP
79; GENERIC-NEXT:    retq # sched: [1:1.00]
80;
81; ATOM-LABEL: test_cmov_16:
82; ATOM:       # %bb.0:
83; ATOM-NEXT:    #APP
84; ATOM-NEXT:    cmovow %si, %di # sched: [1:0.50]
85; ATOM-NEXT:    cmovnow %si, %di # sched: [1:0.50]
86; ATOM-NEXT:    cmovbw %si, %di # sched: [1:0.50]
87; ATOM-NEXT:    cmovbw %si, %di # sched: [1:0.50]
88; ATOM-NEXT:    cmovbw %si, %di # sched: [1:0.50]
89; ATOM-NEXT:    cmovaew %si, %di # sched: [1:0.50]
90; ATOM-NEXT:    cmovaew %si, %di # sched: [1:0.50]
91; ATOM-NEXT:    cmovaew %si, %di # sched: [1:0.50]
92; ATOM-NEXT:    cmovew %si, %di # sched: [1:0.50]
93; ATOM-NEXT:    cmovew %si, %di # sched: [1:0.50]
94; ATOM-NEXT:    cmovnew %si, %di # sched: [1:0.50]
95; ATOM-NEXT:    cmovnew %si, %di # sched: [1:0.50]
96; ATOM-NEXT:    cmovbew %si, %di # sched: [1:0.50]
97; ATOM-NEXT:    cmovbew %si, %di # sched: [1:0.50]
98; ATOM-NEXT:    cmovaw %si, %di # sched: [1:0.50]
99; ATOM-NEXT:    cmovaw %si, %di # sched: [1:0.50]
100; ATOM-NEXT:    cmovsw %si, %di # sched: [1:0.50]
101; ATOM-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
102; ATOM-NEXT:    cmovpw %si, %di # sched: [1:0.50]
103; ATOM-NEXT:    cmovpw %si, %di # sched: [1:0.50]
104; ATOM-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
105; ATOM-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
106; ATOM-NEXT:    cmovlw %si, %di # sched: [1:0.50]
107; ATOM-NEXT:    cmovlw %si, %di # sched: [1:0.50]
108; ATOM-NEXT:    cmovgew %si, %di # sched: [1:0.50]
109; ATOM-NEXT:    cmovgew %si, %di # sched: [1:0.50]
110; ATOM-NEXT:    cmovlew %si, %di # sched: [1:0.50]
111; ATOM-NEXT:    cmovlew %si, %di # sched: [1:0.50]
112; ATOM-NEXT:    cmovgw %si, %di # sched: [1:0.50]
113; ATOM-NEXT:    cmovgw %si, %di # sched: [1:0.50]
114; ATOM-NEXT:    cmovow (%rdx), %di # sched: [1:1.00]
115; ATOM-NEXT:    cmovnow (%rdx), %di # sched: [1:1.00]
116; ATOM-NEXT:    cmovbw (%rdx), %di # sched: [1:1.00]
117; ATOM-NEXT:    cmovbw (%rdx), %di # sched: [1:1.00]
118; ATOM-NEXT:    cmovbw (%rdx), %di # sched: [1:1.00]
119; ATOM-NEXT:    cmovaew (%rdx), %di # sched: [1:1.00]
120; ATOM-NEXT:    cmovaew (%rdx), %di # sched: [1:1.00]
121; ATOM-NEXT:    cmovaew (%rdx), %di # sched: [1:1.00]
122; ATOM-NEXT:    cmovew (%rdx), %di # sched: [1:1.00]
123; ATOM-NEXT:    cmovew (%rdx), %di # sched: [1:1.00]
124; ATOM-NEXT:    cmovnew (%rdx), %di # sched: [1:1.00]
125; ATOM-NEXT:    cmovnew (%rdx), %di # sched: [1:1.00]
126; ATOM-NEXT:    cmovbew (%rdx), %di # sched: [1:1.00]
127; ATOM-NEXT:    cmovbew (%rdx), %di # sched: [1:1.00]
128; ATOM-NEXT:    cmovaw (%rdx), %di # sched: [1:1.00]
129; ATOM-NEXT:    cmovaw (%rdx), %di # sched: [1:1.00]
130; ATOM-NEXT:    cmovsw (%rdx), %di # sched: [1:1.00]
131; ATOM-NEXT:    cmovnsw (%rdx), %di # sched: [1:1.00]
132; ATOM-NEXT:    cmovpw (%rdx), %di # sched: [1:1.00]
133; ATOM-NEXT:    cmovpw (%rdx), %di # sched: [1:1.00]
134; ATOM-NEXT:    cmovnpw (%rdx), %di # sched: [1:1.00]
135; ATOM-NEXT:    cmovnpw (%rdx), %di # sched: [1:1.00]
136; ATOM-NEXT:    cmovlw (%rdx), %di # sched: [1:1.00]
137; ATOM-NEXT:    cmovlw (%rdx), %di # sched: [1:1.00]
138; ATOM-NEXT:    cmovgew (%rdx), %di # sched: [1:1.00]
139; ATOM-NEXT:    cmovgew (%rdx), %di # sched: [1:1.00]
140; ATOM-NEXT:    cmovlew (%rdx), %di # sched: [1:1.00]
141; ATOM-NEXT:    cmovlew (%rdx), %di # sched: [1:1.00]
142; ATOM-NEXT:    cmovgw (%rdx), %di # sched: [1:1.00]
143; ATOM-NEXT:    cmovgw (%rdx), %di # sched: [1:1.00]
144; ATOM-NEXT:    #NO_APP
145; ATOM-NEXT:    retq # sched: [79:39.50]
146;
147; SLM-LABEL: test_cmov_16:
148; SLM:       # %bb.0:
149; SLM-NEXT:    #APP
150; SLM-NEXT:    cmovow %si, %di # sched: [2:1.00]
151; SLM-NEXT:    cmovnow %si, %di # sched: [2:1.00]
152; SLM-NEXT:    cmovbw %si, %di # sched: [2:1.00]
153; SLM-NEXT:    cmovbw %si, %di # sched: [2:1.00]
154; SLM-NEXT:    cmovbw %si, %di # sched: [2:1.00]
155; SLM-NEXT:    cmovaew %si, %di # sched: [2:1.00]
156; SLM-NEXT:    cmovaew %si, %di # sched: [2:1.00]
157; SLM-NEXT:    cmovaew %si, %di # sched: [2:1.00]
158; SLM-NEXT:    cmovew %si, %di # sched: [2:1.00]
159; SLM-NEXT:    cmovew %si, %di # sched: [2:1.00]
160; SLM-NEXT:    cmovnew %si, %di # sched: [2:1.00]
161; SLM-NEXT:    cmovnew %si, %di # sched: [2:1.00]
162; SLM-NEXT:    cmovbew %si, %di # sched: [2:1.00]
163; SLM-NEXT:    cmovbew %si, %di # sched: [2:1.00]
164; SLM-NEXT:    cmovaw %si, %di # sched: [2:1.00]
165; SLM-NEXT:    cmovaw %si, %di # sched: [2:1.00]
166; SLM-NEXT:    cmovsw %si, %di # sched: [2:1.00]
167; SLM-NEXT:    cmovnsw %si, %di # sched: [2:1.00]
168; SLM-NEXT:    cmovpw %si, %di # sched: [2:1.00]
169; SLM-NEXT:    cmovpw %si, %di # sched: [2:1.00]
170; SLM-NEXT:    cmovnpw %si, %di # sched: [2:1.00]
171; SLM-NEXT:    cmovnpw %si, %di # sched: [2:1.00]
172; SLM-NEXT:    cmovlw %si, %di # sched: [2:1.00]
173; SLM-NEXT:    cmovlw %si, %di # sched: [2:1.00]
174; SLM-NEXT:    cmovgew %si, %di # sched: [2:1.00]
175; SLM-NEXT:    cmovgew %si, %di # sched: [2:1.00]
176; SLM-NEXT:    cmovlew %si, %di # sched: [2:1.00]
177; SLM-NEXT:    cmovlew %si, %di # sched: [2:1.00]
178; SLM-NEXT:    cmovgw %si, %di # sched: [2:1.00]
179; SLM-NEXT:    cmovgw %si, %di # sched: [2:1.00]
180; SLM-NEXT:    cmovow (%rdx), %di # sched: [5:1.00]
181; SLM-NEXT:    cmovnow (%rdx), %di # sched: [5:1.00]
182; SLM-NEXT:    cmovbw (%rdx), %di # sched: [5:1.00]
183; SLM-NEXT:    cmovbw (%rdx), %di # sched: [5:1.00]
184; SLM-NEXT:    cmovbw (%rdx), %di # sched: [5:1.00]
185; SLM-NEXT:    cmovaew (%rdx), %di # sched: [5:1.00]
186; SLM-NEXT:    cmovaew (%rdx), %di # sched: [5:1.00]
187; SLM-NEXT:    cmovaew (%rdx), %di # sched: [5:1.00]
188; SLM-NEXT:    cmovew (%rdx), %di # sched: [5:1.00]
189; SLM-NEXT:    cmovew (%rdx), %di # sched: [5:1.00]
190; SLM-NEXT:    cmovnew (%rdx), %di # sched: [5:1.00]
191; SLM-NEXT:    cmovnew (%rdx), %di # sched: [5:1.00]
192; SLM-NEXT:    cmovbew (%rdx), %di # sched: [5:1.00]
193; SLM-NEXT:    cmovbew (%rdx), %di # sched: [5:1.00]
194; SLM-NEXT:    cmovaw (%rdx), %di # sched: [5:1.00]
195; SLM-NEXT:    cmovaw (%rdx), %di # sched: [5:1.00]
196; SLM-NEXT:    cmovsw (%rdx), %di # sched: [5:1.00]
197; SLM-NEXT:    cmovnsw (%rdx), %di # sched: [5:1.00]
198; SLM-NEXT:    cmovpw (%rdx), %di # sched: [5:1.00]
199; SLM-NEXT:    cmovpw (%rdx), %di # sched: [5:1.00]
200; SLM-NEXT:    cmovnpw (%rdx), %di # sched: [5:1.00]
201; SLM-NEXT:    cmovnpw (%rdx), %di # sched: [5:1.00]
202; SLM-NEXT:    cmovlw (%rdx), %di # sched: [5:1.00]
203; SLM-NEXT:    cmovlw (%rdx), %di # sched: [5:1.00]
204; SLM-NEXT:    cmovgew (%rdx), %di # sched: [5:1.00]
205; SLM-NEXT:    cmovgew (%rdx), %di # sched: [5:1.00]
206; SLM-NEXT:    cmovlew (%rdx), %di # sched: [5:1.00]
207; SLM-NEXT:    cmovlew (%rdx), %di # sched: [5:1.00]
208; SLM-NEXT:    cmovgw (%rdx), %di # sched: [5:1.00]
209; SLM-NEXT:    cmovgw (%rdx), %di # sched: [5:1.00]
210; SLM-NEXT:    #NO_APP
211; SLM-NEXT:    retq # sched: [4:1.00]
212;
213; SANDY-LABEL: test_cmov_16:
214; SANDY:       # %bb.0:
215; SANDY-NEXT:    #APP
216; SANDY-NEXT:    cmovow %si, %di # sched: [2:0.67]
217; SANDY-NEXT:    cmovnow %si, %di # sched: [2:0.67]
218; SANDY-NEXT:    cmovbw %si, %di # sched: [2:0.67]
219; SANDY-NEXT:    cmovbw %si, %di # sched: [2:0.67]
220; SANDY-NEXT:    cmovbw %si, %di # sched: [2:0.67]
221; SANDY-NEXT:    cmovaew %si, %di # sched: [2:0.67]
222; SANDY-NEXT:    cmovaew %si, %di # sched: [2:0.67]
223; SANDY-NEXT:    cmovaew %si, %di # sched: [2:0.67]
224; SANDY-NEXT:    cmovew %si, %di # sched: [2:0.67]
225; SANDY-NEXT:    cmovew %si, %di # sched: [2:0.67]
226; SANDY-NEXT:    cmovnew %si, %di # sched: [2:0.67]
227; SANDY-NEXT:    cmovnew %si, %di # sched: [2:0.67]
228; SANDY-NEXT:    cmovbew %si, %di # sched: [3:1.00]
229; SANDY-NEXT:    cmovbew %si, %di # sched: [3:1.00]
230; SANDY-NEXT:    cmovaw %si, %di # sched: [3:1.00]
231; SANDY-NEXT:    cmovaw %si, %di # sched: [3:1.00]
232; SANDY-NEXT:    cmovsw %si, %di # sched: [2:0.67]
233; SANDY-NEXT:    cmovnsw %si, %di # sched: [2:0.67]
234; SANDY-NEXT:    cmovpw %si, %di # sched: [2:0.67]
235; SANDY-NEXT:    cmovpw %si, %di # sched: [2:0.67]
236; SANDY-NEXT:    cmovnpw %si, %di # sched: [2:0.67]
237; SANDY-NEXT:    cmovnpw %si, %di # sched: [2:0.67]
238; SANDY-NEXT:    cmovlw %si, %di # sched: [2:0.67]
239; SANDY-NEXT:    cmovlw %si, %di # sched: [2:0.67]
240; SANDY-NEXT:    cmovgew %si, %di # sched: [2:0.67]
241; SANDY-NEXT:    cmovgew %si, %di # sched: [2:0.67]
242; SANDY-NEXT:    cmovlew %si, %di # sched: [2:0.67]
243; SANDY-NEXT:    cmovlew %si, %di # sched: [2:0.67]
244; SANDY-NEXT:    cmovgw %si, %di # sched: [2:0.67]
245; SANDY-NEXT:    cmovgw %si, %di # sched: [2:0.67]
246; SANDY-NEXT:    cmovow (%rdx), %di # sched: [7:0.67]
247; SANDY-NEXT:    cmovnow (%rdx), %di # sched: [7:0.67]
248; SANDY-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
249; SANDY-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
250; SANDY-NEXT:    cmovbw (%rdx), %di # sched: [7:0.67]
251; SANDY-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
252; SANDY-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
253; SANDY-NEXT:    cmovaew (%rdx), %di # sched: [7:0.67]
254; SANDY-NEXT:    cmovew (%rdx), %di # sched: [7:0.67]
255; SANDY-NEXT:    cmovew (%rdx), %di # sched: [7:0.67]
256; SANDY-NEXT:    cmovnew (%rdx), %di # sched: [7:0.67]
257; SANDY-NEXT:    cmovnew (%rdx), %di # sched: [7:0.67]
258; SANDY-NEXT:    cmovbew (%rdx), %di # sched: [8:1.00]
259; SANDY-NEXT:    cmovbew (%rdx), %di # sched: [8:1.00]
260; SANDY-NEXT:    cmovaw (%rdx), %di # sched: [8:1.00]
261; SANDY-NEXT:    cmovaw (%rdx), %di # sched: [8:1.00]
262; SANDY-NEXT:    cmovsw (%rdx), %di # sched: [7:0.67]
263; SANDY-NEXT:    cmovnsw (%rdx), %di # sched: [7:0.67]
264; SANDY-NEXT:    cmovpw (%rdx), %di # sched: [7:0.67]
265; SANDY-NEXT:    cmovpw (%rdx), %di # sched: [7:0.67]
266; SANDY-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.67]
267; SANDY-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.67]
268; SANDY-NEXT:    cmovlw (%rdx), %di # sched: [7:0.67]
269; SANDY-NEXT:    cmovlw (%rdx), %di # sched: [7:0.67]
270; SANDY-NEXT:    cmovgew (%rdx), %di # sched: [7:0.67]
271; SANDY-NEXT:    cmovgew (%rdx), %di # sched: [7:0.67]
272; SANDY-NEXT:    cmovlew (%rdx), %di # sched: [7:0.67]
273; SANDY-NEXT:    cmovlew (%rdx), %di # sched: [7:0.67]
274; SANDY-NEXT:    cmovgw (%rdx), %di # sched: [7:0.67]
275; SANDY-NEXT:    cmovgw (%rdx), %di # sched: [7:0.67]
276; SANDY-NEXT:    #NO_APP
277; SANDY-NEXT:    retq # sched: [1:1.00]
278;
279; HASWELL-LABEL: test_cmov_16:
280; HASWELL:       # %bb.0:
281; HASWELL-NEXT:    #APP
282; HASWELL-NEXT:    cmovow %si, %di # sched: [2:0.50]
283; HASWELL-NEXT:    cmovnow %si, %di # sched: [2:0.50]
284; HASWELL-NEXT:    cmovbw %si, %di # sched: [2:0.50]
285; HASWELL-NEXT:    cmovbw %si, %di # sched: [2:0.50]
286; HASWELL-NEXT:    cmovbw %si, %di # sched: [2:0.50]
287; HASWELL-NEXT:    cmovaew %si, %di # sched: [2:0.50]
288; HASWELL-NEXT:    cmovaew %si, %di # sched: [2:0.50]
289; HASWELL-NEXT:    cmovaew %si, %di # sched: [2:0.50]
290; HASWELL-NEXT:    cmovew %si, %di # sched: [2:0.50]
291; HASWELL-NEXT:    cmovew %si, %di # sched: [2:0.50]
292; HASWELL-NEXT:    cmovnew %si, %di # sched: [2:0.50]
293; HASWELL-NEXT:    cmovnew %si, %di # sched: [2:0.50]
294; HASWELL-NEXT:    cmovbew %si, %di # sched: [3:0.75]
295; HASWELL-NEXT:    cmovbew %si, %di # sched: [3:0.75]
296; HASWELL-NEXT:    cmovaw %si, %di # sched: [3:0.75]
297; HASWELL-NEXT:    cmovaw %si, %di # sched: [3:0.75]
298; HASWELL-NEXT:    cmovsw %si, %di # sched: [2:0.50]
299; HASWELL-NEXT:    cmovnsw %si, %di # sched: [2:0.50]
300; HASWELL-NEXT:    cmovpw %si, %di # sched: [2:0.50]
301; HASWELL-NEXT:    cmovpw %si, %di # sched: [2:0.50]
302; HASWELL-NEXT:    cmovnpw %si, %di # sched: [2:0.50]
303; HASWELL-NEXT:    cmovnpw %si, %di # sched: [2:0.50]
304; HASWELL-NEXT:    cmovlw %si, %di # sched: [2:0.50]
305; HASWELL-NEXT:    cmovlw %si, %di # sched: [2:0.50]
306; HASWELL-NEXT:    cmovgew %si, %di # sched: [2:0.50]
307; HASWELL-NEXT:    cmovgew %si, %di # sched: [2:0.50]
308; HASWELL-NEXT:    cmovlew %si, %di # sched: [2:0.50]
309; HASWELL-NEXT:    cmovlew %si, %di # sched: [2:0.50]
310; HASWELL-NEXT:    cmovgw %si, %di # sched: [2:0.50]
311; HASWELL-NEXT:    cmovgw %si, %di # sched: [2:0.50]
312; HASWELL-NEXT:    cmovow (%rdx), %di # sched: [7:0.50]
313; HASWELL-NEXT:    cmovnow (%rdx), %di # sched: [7:0.50]
314; HASWELL-NEXT:    cmovbw (%rdx), %di # sched: [7:0.50]
315; HASWELL-NEXT:    cmovbw (%rdx), %di # sched: [7:0.50]
316; HASWELL-NEXT:    cmovbw (%rdx), %di # sched: [7:0.50]
317; HASWELL-NEXT:    cmovaew (%rdx), %di # sched: [7:0.50]
318; HASWELL-NEXT:    cmovaew (%rdx), %di # sched: [7:0.50]
319; HASWELL-NEXT:    cmovaew (%rdx), %di # sched: [7:0.50]
320; HASWELL-NEXT:    cmovew (%rdx), %di # sched: [7:0.50]
321; HASWELL-NEXT:    cmovew (%rdx), %di # sched: [7:0.50]
322; HASWELL-NEXT:    cmovnew (%rdx), %di # sched: [7:0.50]
323; HASWELL-NEXT:    cmovnew (%rdx), %di # sched: [7:0.50]
324; HASWELL-NEXT:    cmovbew (%rdx), %di # sched: [8:0.75]
325; HASWELL-NEXT:    cmovbew (%rdx), %di # sched: [8:0.75]
326; HASWELL-NEXT:    cmovaw (%rdx), %di # sched: [8:0.75]
327; HASWELL-NEXT:    cmovaw (%rdx), %di # sched: [8:0.75]
328; HASWELL-NEXT:    cmovsw (%rdx), %di # sched: [7:0.50]
329; HASWELL-NEXT:    cmovnsw (%rdx), %di # sched: [7:0.50]
330; HASWELL-NEXT:    cmovpw (%rdx), %di # sched: [7:0.50]
331; HASWELL-NEXT:    cmovpw (%rdx), %di # sched: [7:0.50]
332; HASWELL-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.50]
333; HASWELL-NEXT:    cmovnpw (%rdx), %di # sched: [7:0.50]
334; HASWELL-NEXT:    cmovlw (%rdx), %di # sched: [7:0.50]
335; HASWELL-NEXT:    cmovlw (%rdx), %di # sched: [7:0.50]
336; HASWELL-NEXT:    cmovgew (%rdx), %di # sched: [7:0.50]
337; HASWELL-NEXT:    cmovgew (%rdx), %di # sched: [7:0.50]
338; HASWELL-NEXT:    cmovlew (%rdx), %di # sched: [7:0.50]
339; HASWELL-NEXT:    cmovlew (%rdx), %di # sched: [7:0.50]
340; HASWELL-NEXT:    cmovgw (%rdx), %di # sched: [7:0.50]
341; HASWELL-NEXT:    cmovgw (%rdx), %di # sched: [7:0.50]
342; HASWELL-NEXT:    #NO_APP
343; HASWELL-NEXT:    retq # sched: [7:1.00]
344;
345; BROADWELL-LABEL: test_cmov_16:
346; BROADWELL:       # %bb.0:
347; BROADWELL-NEXT:    #APP
348; BROADWELL-NEXT:    cmovow %si, %di # sched: [1:0.50]
349; BROADWELL-NEXT:    cmovnow %si, %di # sched: [1:0.50]
350; BROADWELL-NEXT:    cmovbw %si, %di # sched: [1:0.50]
351; BROADWELL-NEXT:    cmovbw %si, %di # sched: [1:0.50]
352; BROADWELL-NEXT:    cmovbw %si, %di # sched: [1:0.50]
353; BROADWELL-NEXT:    cmovaew %si, %di # sched: [1:0.50]
354; BROADWELL-NEXT:    cmovaew %si, %di # sched: [1:0.50]
355; BROADWELL-NEXT:    cmovaew %si, %di # sched: [1:0.50]
356; BROADWELL-NEXT:    cmovew %si, %di # sched: [1:0.50]
357; BROADWELL-NEXT:    cmovew %si, %di # sched: [1:0.50]
358; BROADWELL-NEXT:    cmovnew %si, %di # sched: [1:0.50]
359; BROADWELL-NEXT:    cmovnew %si, %di # sched: [1:0.50]
360; BROADWELL-NEXT:    cmovbew %si, %di # sched: [2:0.50]
361; BROADWELL-NEXT:    cmovbew %si, %di # sched: [2:0.50]
362; BROADWELL-NEXT:    cmovaw %si, %di # sched: [2:0.50]
363; BROADWELL-NEXT:    cmovaw %si, %di # sched: [2:0.50]
364; BROADWELL-NEXT:    cmovsw %si, %di # sched: [1:0.50]
365; BROADWELL-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
366; BROADWELL-NEXT:    cmovpw %si, %di # sched: [1:0.50]
367; BROADWELL-NEXT:    cmovpw %si, %di # sched: [1:0.50]
368; BROADWELL-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
369; BROADWELL-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
370; BROADWELL-NEXT:    cmovlw %si, %di # sched: [1:0.50]
371; BROADWELL-NEXT:    cmovlw %si, %di # sched: [1:0.50]
372; BROADWELL-NEXT:    cmovgew %si, %di # sched: [1:0.50]
373; BROADWELL-NEXT:    cmovgew %si, %di # sched: [1:0.50]
374; BROADWELL-NEXT:    cmovlew %si, %di # sched: [1:0.50]
375; BROADWELL-NEXT:    cmovlew %si, %di # sched: [1:0.50]
376; BROADWELL-NEXT:    cmovgw %si, %di # sched: [1:0.50]
377; BROADWELL-NEXT:    cmovgw %si, %di # sched: [1:0.50]
378; BROADWELL-NEXT:    cmovow (%rdx), %di # sched: [6:0.50]
379; BROADWELL-NEXT:    cmovnow (%rdx), %di # sched: [6:0.50]
380; BROADWELL-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
381; BROADWELL-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
382; BROADWELL-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
383; BROADWELL-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
384; BROADWELL-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
385; BROADWELL-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
386; BROADWELL-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
387; BROADWELL-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
388; BROADWELL-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
389; BROADWELL-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
390; BROADWELL-NEXT:    cmovbew (%rdx), %di # sched: [7:0.50]
391; BROADWELL-NEXT:    cmovbew (%rdx), %di # sched: [7:0.50]
392; BROADWELL-NEXT:    cmovaw (%rdx), %di # sched: [7:0.50]
393; BROADWELL-NEXT:    cmovaw (%rdx), %di # sched: [7:0.50]
394; BROADWELL-NEXT:    cmovsw (%rdx), %di # sched: [6:0.50]
395; BROADWELL-NEXT:    cmovnsw (%rdx), %di # sched: [6:0.50]
396; BROADWELL-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
397; BROADWELL-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
398; BROADWELL-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
399; BROADWELL-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
400; BROADWELL-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
401; BROADWELL-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
402; BROADWELL-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
403; BROADWELL-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
404; BROADWELL-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
405; BROADWELL-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
406; BROADWELL-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
407; BROADWELL-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
408; BROADWELL-NEXT:    #NO_APP
409; BROADWELL-NEXT:    retq # sched: [7:1.00]
410;
411; SKYLAKE-LABEL: test_cmov_16:
412; SKYLAKE:       # %bb.0:
413; SKYLAKE-NEXT:    #APP
414; SKYLAKE-NEXT:    cmovow %si, %di # sched: [1:0.50]
415; SKYLAKE-NEXT:    cmovnow %si, %di # sched: [1:0.50]
416; SKYLAKE-NEXT:    cmovbw %si, %di # sched: [1:0.50]
417; SKYLAKE-NEXT:    cmovbw %si, %di # sched: [1:0.50]
418; SKYLAKE-NEXT:    cmovbw %si, %di # sched: [1:0.50]
419; SKYLAKE-NEXT:    cmovaew %si, %di # sched: [1:0.50]
420; SKYLAKE-NEXT:    cmovaew %si, %di # sched: [1:0.50]
421; SKYLAKE-NEXT:    cmovaew %si, %di # sched: [1:0.50]
422; SKYLAKE-NEXT:    cmovew %si, %di # sched: [1:0.50]
423; SKYLAKE-NEXT:    cmovew %si, %di # sched: [1:0.50]
424; SKYLAKE-NEXT:    cmovnew %si, %di # sched: [1:0.50]
425; SKYLAKE-NEXT:    cmovnew %si, %di # sched: [1:0.50]
426; SKYLAKE-NEXT:    cmovbew %si, %di # sched: [2:1.00]
427; SKYLAKE-NEXT:    cmovbew %si, %di # sched: [2:1.00]
428; SKYLAKE-NEXT:    cmovaw %si, %di # sched: [2:1.00]
429; SKYLAKE-NEXT:    cmovaw %si, %di # sched: [2:1.00]
430; SKYLAKE-NEXT:    cmovsw %si, %di # sched: [1:0.50]
431; SKYLAKE-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
432; SKYLAKE-NEXT:    cmovpw %si, %di # sched: [1:0.50]
433; SKYLAKE-NEXT:    cmovpw %si, %di # sched: [1:0.50]
434; SKYLAKE-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
435; SKYLAKE-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
436; SKYLAKE-NEXT:    cmovlw %si, %di # sched: [1:0.50]
437; SKYLAKE-NEXT:    cmovlw %si, %di # sched: [1:0.50]
438; SKYLAKE-NEXT:    cmovgew %si, %di # sched: [1:0.50]
439; SKYLAKE-NEXT:    cmovgew %si, %di # sched: [1:0.50]
440; SKYLAKE-NEXT:    cmovlew %si, %di # sched: [1:0.50]
441; SKYLAKE-NEXT:    cmovlew %si, %di # sched: [1:0.50]
442; SKYLAKE-NEXT:    cmovgw %si, %di # sched: [1:0.50]
443; SKYLAKE-NEXT:    cmovgw %si, %di # sched: [1:0.50]
444; SKYLAKE-NEXT:    cmovow (%rdx), %di # sched: [6:0.50]
445; SKYLAKE-NEXT:    cmovnow (%rdx), %di # sched: [6:0.50]
446; SKYLAKE-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
447; SKYLAKE-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
448; SKYLAKE-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
449; SKYLAKE-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
450; SKYLAKE-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
451; SKYLAKE-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
452; SKYLAKE-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
453; SKYLAKE-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
454; SKYLAKE-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
455; SKYLAKE-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
456; SKYLAKE-NEXT:    cmovbew (%rdx), %di # sched: [7:1.00]
457; SKYLAKE-NEXT:    cmovbew (%rdx), %di # sched: [7:1.00]
458; SKYLAKE-NEXT:    cmovaw (%rdx), %di # sched: [7:1.00]
459; SKYLAKE-NEXT:    cmovaw (%rdx), %di # sched: [7:1.00]
460; SKYLAKE-NEXT:    cmovsw (%rdx), %di # sched: [6:0.50]
461; SKYLAKE-NEXT:    cmovnsw (%rdx), %di # sched: [6:0.50]
462; SKYLAKE-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
463; SKYLAKE-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
464; SKYLAKE-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
465; SKYLAKE-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
466; SKYLAKE-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
467; SKYLAKE-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
468; SKYLAKE-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
469; SKYLAKE-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
470; SKYLAKE-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
471; SKYLAKE-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
472; SKYLAKE-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
473; SKYLAKE-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
474; SKYLAKE-NEXT:    #NO_APP
475; SKYLAKE-NEXT:    retq # sched: [7:1.00]
476;
477; SKX-LABEL: test_cmov_16:
478; SKX:       # %bb.0:
479; SKX-NEXT:    #APP
480; SKX-NEXT:    cmovow %si, %di # sched: [1:0.50]
481; SKX-NEXT:    cmovnow %si, %di # sched: [1:0.50]
482; SKX-NEXT:    cmovbw %si, %di # sched: [1:0.50]
483; SKX-NEXT:    cmovbw %si, %di # sched: [1:0.50]
484; SKX-NEXT:    cmovbw %si, %di # sched: [1:0.50]
485; SKX-NEXT:    cmovaew %si, %di # sched: [1:0.50]
486; SKX-NEXT:    cmovaew %si, %di # sched: [1:0.50]
487; SKX-NEXT:    cmovaew %si, %di # sched: [1:0.50]
488; SKX-NEXT:    cmovew %si, %di # sched: [1:0.50]
489; SKX-NEXT:    cmovew %si, %di # sched: [1:0.50]
490; SKX-NEXT:    cmovnew %si, %di # sched: [1:0.50]
491; SKX-NEXT:    cmovnew %si, %di # sched: [1:0.50]
492; SKX-NEXT:    cmovbew %si, %di # sched: [2:1.00]
493; SKX-NEXT:    cmovbew %si, %di # sched: [2:1.00]
494; SKX-NEXT:    cmovaw %si, %di # sched: [2:1.00]
495; SKX-NEXT:    cmovaw %si, %di # sched: [2:1.00]
496; SKX-NEXT:    cmovsw %si, %di # sched: [1:0.50]
497; SKX-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
498; SKX-NEXT:    cmovpw %si, %di # sched: [1:0.50]
499; SKX-NEXT:    cmovpw %si, %di # sched: [1:0.50]
500; SKX-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
501; SKX-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
502; SKX-NEXT:    cmovlw %si, %di # sched: [1:0.50]
503; SKX-NEXT:    cmovlw %si, %di # sched: [1:0.50]
504; SKX-NEXT:    cmovgew %si, %di # sched: [1:0.50]
505; SKX-NEXT:    cmovgew %si, %di # sched: [1:0.50]
506; SKX-NEXT:    cmovlew %si, %di # sched: [1:0.50]
507; SKX-NEXT:    cmovlew %si, %di # sched: [1:0.50]
508; SKX-NEXT:    cmovgw %si, %di # sched: [1:0.50]
509; SKX-NEXT:    cmovgw %si, %di # sched: [1:0.50]
510; SKX-NEXT:    cmovow (%rdx), %di # sched: [6:0.50]
511; SKX-NEXT:    cmovnow (%rdx), %di # sched: [6:0.50]
512; SKX-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
513; SKX-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
514; SKX-NEXT:    cmovbw (%rdx), %di # sched: [6:0.50]
515; SKX-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
516; SKX-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
517; SKX-NEXT:    cmovaew (%rdx), %di # sched: [6:0.50]
518; SKX-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
519; SKX-NEXT:    cmovew (%rdx), %di # sched: [6:0.50]
520; SKX-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
521; SKX-NEXT:    cmovnew (%rdx), %di # sched: [6:0.50]
522; SKX-NEXT:    cmovbew (%rdx), %di # sched: [7:1.00]
523; SKX-NEXT:    cmovbew (%rdx), %di # sched: [7:1.00]
524; SKX-NEXT:    cmovaw (%rdx), %di # sched: [7:1.00]
525; SKX-NEXT:    cmovaw (%rdx), %di # sched: [7:1.00]
526; SKX-NEXT:    cmovsw (%rdx), %di # sched: [6:0.50]
527; SKX-NEXT:    cmovnsw (%rdx), %di # sched: [6:0.50]
528; SKX-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
529; SKX-NEXT:    cmovpw (%rdx), %di # sched: [6:0.50]
530; SKX-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
531; SKX-NEXT:    cmovnpw (%rdx), %di # sched: [6:0.50]
532; SKX-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
533; SKX-NEXT:    cmovlw (%rdx), %di # sched: [6:0.50]
534; SKX-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
535; SKX-NEXT:    cmovgew (%rdx), %di # sched: [6:0.50]
536; SKX-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
537; SKX-NEXT:    cmovlew (%rdx), %di # sched: [6:0.50]
538; SKX-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
539; SKX-NEXT:    cmovgw (%rdx), %di # sched: [6:0.50]
540; SKX-NEXT:    #NO_APP
541; SKX-NEXT:    retq # sched: [7:1.00]
542;
543; BTVER2-LABEL: test_cmov_16:
544; BTVER2:       # %bb.0:
545; BTVER2-NEXT:    #APP
546; BTVER2-NEXT:    cmovow %si, %di # sched: [1:0.50]
547; BTVER2-NEXT:    cmovnow %si, %di # sched: [1:0.50]
548; BTVER2-NEXT:    cmovbw %si, %di # sched: [1:0.50]
549; BTVER2-NEXT:    cmovbw %si, %di # sched: [1:0.50]
550; BTVER2-NEXT:    cmovbw %si, %di # sched: [1:0.50]
551; BTVER2-NEXT:    cmovaew %si, %di # sched: [1:0.50]
552; BTVER2-NEXT:    cmovaew %si, %di # sched: [1:0.50]
553; BTVER2-NEXT:    cmovaew %si, %di # sched: [1:0.50]
554; BTVER2-NEXT:    cmovew %si, %di # sched: [1:0.50]
555; BTVER2-NEXT:    cmovew %si, %di # sched: [1:0.50]
556; BTVER2-NEXT:    cmovnew %si, %di # sched: [1:0.50]
557; BTVER2-NEXT:    cmovnew %si, %di # sched: [1:0.50]
558; BTVER2-NEXT:    cmovbew %si, %di # sched: [1:0.50]
559; BTVER2-NEXT:    cmovbew %si, %di # sched: [1:0.50]
560; BTVER2-NEXT:    cmovaw %si, %di # sched: [1:0.50]
561; BTVER2-NEXT:    cmovaw %si, %di # sched: [1:0.50]
562; BTVER2-NEXT:    cmovsw %si, %di # sched: [1:0.50]
563; BTVER2-NEXT:    cmovnsw %si, %di # sched: [1:0.50]
564; BTVER2-NEXT:    cmovpw %si, %di # sched: [1:0.50]
565; BTVER2-NEXT:    cmovpw %si, %di # sched: [1:0.50]
566; BTVER2-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
567; BTVER2-NEXT:    cmovnpw %si, %di # sched: [1:0.50]
568; BTVER2-NEXT:    cmovlw %si, %di # sched: [1:0.50]
569; BTVER2-NEXT:    cmovlw %si, %di # sched: [1:0.50]
570; BTVER2-NEXT:    cmovgew %si, %di # sched: [1:0.50]
571; BTVER2-NEXT:    cmovgew %si, %di # sched: [1:0.50]
572; BTVER2-NEXT:    cmovlew %si, %di # sched: [1:0.50]
573; BTVER2-NEXT:    cmovlew %si, %di # sched: [1:0.50]
574; BTVER2-NEXT:    cmovgw %si, %di # sched: [1:0.50]
575; BTVER2-NEXT:    cmovgw %si, %di # sched: [1:0.50]
576; BTVER2-NEXT:    cmovow (%rdx), %di # sched: [4:1.00]
577; BTVER2-NEXT:    cmovnow (%rdx), %di # sched: [4:1.00]
578; BTVER2-NEXT:    cmovbw (%rdx), %di # sched: [4:1.00]
579; BTVER2-NEXT:    cmovbw (%rdx), %di # sched: [4:1.00]
580; BTVER2-NEXT:    cmovbw (%rdx), %di # sched: [4:1.00]
581; BTVER2-NEXT:    cmovaew (%rdx), %di # sched: [4:1.00]
582; BTVER2-NEXT:    cmovaew (%rdx), %di # sched: [4:1.00]
583; BTVER2-NEXT:    cmovaew (%rdx), %di # sched: [4:1.00]
584; BTVER2-NEXT:    cmovew (%rdx), %di # sched: [4:1.00]
585; BTVER2-NEXT:    cmovew (%rdx), %di # sched: [4:1.00]
586; BTVER2-NEXT:    cmovnew (%rdx), %di # sched: [4:1.00]
587; BTVER2-NEXT:    cmovnew (%rdx), %di # sched: [4:1.00]
588; BTVER2-NEXT:    cmovbew (%rdx), %di # sched: [4:1.00]
589; BTVER2-NEXT:    cmovbew (%rdx), %di # sched: [4:1.00]
590; BTVER2-NEXT:    cmovaw (%rdx), %di # sched: [4:1.00]
591; BTVER2-NEXT:    cmovaw (%rdx), %di # sched: [4:1.00]
592; BTVER2-NEXT:    cmovsw (%rdx), %di # sched: [4:1.00]
593; BTVER2-NEXT:    cmovnsw (%rdx), %di # sched: [4:1.00]
594; BTVER2-NEXT:    cmovpw (%rdx), %di # sched: [4:1.00]
595; BTVER2-NEXT:    cmovpw (%rdx), %di # sched: [4:1.00]
596; BTVER2-NEXT:    cmovnpw (%rdx), %di # sched: [4:1.00]
597; BTVER2-NEXT:    cmovnpw (%rdx), %di # sched: [4:1.00]
598; BTVER2-NEXT:    cmovlw (%rdx), %di # sched: [4:1.00]
599; BTVER2-NEXT:    cmovlw (%rdx), %di # sched: [4:1.00]
600; BTVER2-NEXT:    cmovgew (%rdx), %di # sched: [4:1.00]
601; BTVER2-NEXT:    cmovgew (%rdx), %di # sched: [4:1.00]
602; BTVER2-NEXT:    cmovlew (%rdx), %di # sched: [4:1.00]
603; BTVER2-NEXT:    cmovlew (%rdx), %di # sched: [4:1.00]
604; BTVER2-NEXT:    cmovgw (%rdx), %di # sched: [4:1.00]
605; BTVER2-NEXT:    cmovgw (%rdx), %di # sched: [4:1.00]
606; BTVER2-NEXT:    #NO_APP
607; BTVER2-NEXT:    retq # sched: [4:1.00]
608;
609; ZNVER1-LABEL: test_cmov_16:
610; ZNVER1:       # %bb.0:
611; ZNVER1-NEXT:    #APP
612; ZNVER1-NEXT:    cmovow %si, %di # sched: [1:0.25]
613; ZNVER1-NEXT:    cmovnow %si, %di # sched: [1:0.25]
614; ZNVER1-NEXT:    cmovbw %si, %di # sched: [1:0.25]
615; ZNVER1-NEXT:    cmovbw %si, %di # sched: [1:0.25]
616; ZNVER1-NEXT:    cmovbw %si, %di # sched: [1:0.25]
617; ZNVER1-NEXT:    cmovaew %si, %di # sched: [1:0.25]
618; ZNVER1-NEXT:    cmovaew %si, %di # sched: [1:0.25]
619; ZNVER1-NEXT:    cmovaew %si, %di # sched: [1:0.25]
620; ZNVER1-NEXT:    cmovew %si, %di # sched: [1:0.25]
621; ZNVER1-NEXT:    cmovew %si, %di # sched: [1:0.25]
622; ZNVER1-NEXT:    cmovnew %si, %di # sched: [1:0.25]
623; ZNVER1-NEXT:    cmovnew %si, %di # sched: [1:0.25]
624; ZNVER1-NEXT:    cmovbew %si, %di # sched: [1:0.25]
625; ZNVER1-NEXT:    cmovbew %si, %di # sched: [1:0.25]
626; ZNVER1-NEXT:    cmovaw %si, %di # sched: [1:0.25]
627; ZNVER1-NEXT:    cmovaw %si, %di # sched: [1:0.25]
628; ZNVER1-NEXT:    cmovsw %si, %di # sched: [1:0.25]
629; ZNVER1-NEXT:    cmovnsw %si, %di # sched: [1:0.25]
630; ZNVER1-NEXT:    cmovpw %si, %di # sched: [1:0.25]
631; ZNVER1-NEXT:    cmovpw %si, %di # sched: [1:0.25]
632; ZNVER1-NEXT:    cmovnpw %si, %di # sched: [1:0.25]
633; ZNVER1-NEXT:    cmovnpw %si, %di # sched: [1:0.25]
634; ZNVER1-NEXT:    cmovlw %si, %di # sched: [1:0.25]
635; ZNVER1-NEXT:    cmovlw %si, %di # sched: [1:0.25]
636; ZNVER1-NEXT:    cmovgew %si, %di # sched: [1:0.25]
637; ZNVER1-NEXT:    cmovgew %si, %di # sched: [1:0.25]
638; ZNVER1-NEXT:    cmovlew %si, %di # sched: [1:0.25]
639; ZNVER1-NEXT:    cmovlew %si, %di # sched: [1:0.25]
640; ZNVER1-NEXT:    cmovgw %si, %di # sched: [1:0.25]
641; ZNVER1-NEXT:    cmovgw %si, %di # sched: [1:0.25]
642; ZNVER1-NEXT:    cmovow (%rdx), %di # sched: [5:0.50]
643; ZNVER1-NEXT:    cmovnow (%rdx), %di # sched: [5:0.50]
644; ZNVER1-NEXT:    cmovbw (%rdx), %di # sched: [5:0.50]
645; ZNVER1-NEXT:    cmovbw (%rdx), %di # sched: [5:0.50]
646; ZNVER1-NEXT:    cmovbw (%rdx), %di # sched: [5:0.50]
647; ZNVER1-NEXT:    cmovaew (%rdx), %di # sched: [5:0.50]
648; ZNVER1-NEXT:    cmovaew (%rdx), %di # sched: [5:0.50]
649; ZNVER1-NEXT:    cmovaew (%rdx), %di # sched: [5:0.50]
650; ZNVER1-NEXT:    cmovew (%rdx), %di # sched: [5:0.50]
651; ZNVER1-NEXT:    cmovew (%rdx), %di # sched: [5:0.50]
652; ZNVER1-NEXT:    cmovnew (%rdx), %di # sched: [5:0.50]
653; ZNVER1-NEXT:    cmovnew (%rdx), %di # sched: [5:0.50]
654; ZNVER1-NEXT:    cmovbew (%rdx), %di # sched: [5:0.50]
655; ZNVER1-NEXT:    cmovbew (%rdx), %di # sched: [5:0.50]
656; ZNVER1-NEXT:    cmovaw (%rdx), %di # sched: [5:0.50]
657; ZNVER1-NEXT:    cmovaw (%rdx), %di # sched: [5:0.50]
658; ZNVER1-NEXT:    cmovsw (%rdx), %di # sched: [5:0.50]
659; ZNVER1-NEXT:    cmovnsw (%rdx), %di # sched: [5:0.50]
660; ZNVER1-NEXT:    cmovpw (%rdx), %di # sched: [5:0.50]
661; ZNVER1-NEXT:    cmovpw (%rdx), %di # sched: [5:0.50]
662; ZNVER1-NEXT:    cmovnpw (%rdx), %di # sched: [5:0.50]
663; ZNVER1-NEXT:    cmovnpw (%rdx), %di # sched: [5:0.50]
664; ZNVER1-NEXT:    cmovlw (%rdx), %di # sched: [5:0.50]
665; ZNVER1-NEXT:    cmovlw (%rdx), %di # sched: [5:0.50]
666; ZNVER1-NEXT:    cmovgew (%rdx), %di # sched: [5:0.50]
667; ZNVER1-NEXT:    cmovgew (%rdx), %di # sched: [5:0.50]
668; ZNVER1-NEXT:    cmovlew (%rdx), %di # sched: [5:0.50]
669; ZNVER1-NEXT:    cmovlew (%rdx), %di # sched: [5:0.50]
670; ZNVER1-NEXT:    cmovgw (%rdx), %di # sched: [5:0.50]
671; ZNVER1-NEXT:    cmovgw (%rdx), %di # sched: [5:0.50]
672; ZNVER1-NEXT:    #NO_APP
673; ZNVER1-NEXT:    retq # sched: [1:0.50]
674  call void asm sideeffect "cmovow $1, $0 \0A\09 cmovnow $1, $0 \0A\09 cmovbw $1, $0 \0A\09 cmovcw $1, $0 \0A\09 cmovnaew $1, $0 \0A\09 cmovnbw $1, $0 \0A\09 cmovncw $1, $0 \0A\09 cmovaew $1, $0 \0A\09 cmovzw $1, $0 \0A\09 cmovew $1, $0 \0A\09 cmovnzw $1, $0 \0A\09 cmovnew $1, $0 \0A\09 cmovbew $1, $0 \0A\09 cmovnaw $1, $0 \0A\09 cmovnbew $1, $0 \0A\09 cmovaw $1, $0 \0A\09 cmovsw $1, $0 \0A\09 cmovnsw $1, $0 \0A\09 cmovpw $1, $0 \0A\09 cmovpew $1, $0 \0A\09 cmovnpw $1, $0 \0A\09 cmovpow $1, $0 \0A\09 cmovlw $1, $0 \0A\09 cmovngew $1, $0 \0A\09 cmovnlw $1, $0 \0A\09 cmovgew $1, $0 \0A\09 cmovlew $1, $0 \0A\09 cmovngw $1, $0 \0A\09 cmovnlew $1, $0 \0A\09 cmovgw $1, $0 \0A\09 cmovow $2, $0 \0A\09 cmovnow $2, $0 \0A\09 cmovbw $2, $0 \0A\09 cmovcw $2, $0 \0A\09 cmovnaew $2, $0 \0A\09 cmovnbw $2, $0 \0A\09 cmovncw $2, $0 \0A\09 cmovaew $2, $0 \0A\09 cmovzw $2, $0 \0A\09 cmovew $2, $0 \0A\09 cmovnzw $2, $0 \0A\09 cmovnew $2, $0 \0A\09 cmovbew $2, $0 \0A\09 cmovnaw $2, $0 \0A\09 cmovnbew $2, $0 \0A\09 cmovaw $2, $0 \0A\09 cmovsw $2, $0 \0A\09 cmovnsw $2, $0 \0A\09 cmovpw $2, $0 \0A\09 cmovpew $2, $0 \0A\09 cmovnpw $2, $0 \0A\09 cmovpow $2, $0 \0A\09 cmovlw $2, $0 \0A\09 cmovngew $2, $0 \0A\09 cmovnlw $2, $0 \0A\09 cmovgew $2, $0 \0A\09 cmovlew $2, $0 \0A\09 cmovngw $2, $0 \0A\09 cmovnlew $2, $0 \0A\09 cmovgw $2, $0", "r,r,*m"(i16 %a0, i16 %a1, i16 *%a2)
675  ret void
676}
677
678define void @test_cmov_32(i32 %a0, i32 %a1, i32 *%a2) optsize {
679; GENERIC-LABEL: test_cmov_32:
680; GENERIC:       # %bb.0:
681; GENERIC-NEXT:    #APP
682; GENERIC-NEXT:    cmovol %esi, %edi # sched: [2:0.67]
683; GENERIC-NEXT:    cmovnol %esi, %edi # sched: [2:0.67]
684; GENERIC-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
685; GENERIC-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
686; GENERIC-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
687; GENERIC-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
688; GENERIC-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
689; GENERIC-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
690; GENERIC-NEXT:    cmovel %esi, %edi # sched: [2:0.67]
691; GENERIC-NEXT:    cmovel %esi, %edi # sched: [2:0.67]
692; GENERIC-NEXT:    cmovnel %esi, %edi # sched: [2:0.67]
693; GENERIC-NEXT:    cmovnel %esi, %edi # sched: [2:0.67]
694; GENERIC-NEXT:    cmovbel %esi, %edi # sched: [3:1.00]
695; GENERIC-NEXT:    cmovbel %esi, %edi # sched: [3:1.00]
696; GENERIC-NEXT:    cmoval %esi, %edi # sched: [3:1.00]
697; GENERIC-NEXT:    cmoval %esi, %edi # sched: [3:1.00]
698; GENERIC-NEXT:    cmovsl %esi, %edi # sched: [2:0.67]
699; GENERIC-NEXT:    cmovnsl %esi, %edi # sched: [2:0.67]
700; GENERIC-NEXT:    cmovpl %esi, %edi # sched: [2:0.67]
701; GENERIC-NEXT:    cmovpl %esi, %edi # sched: [2:0.67]
702; GENERIC-NEXT:    cmovnpl %esi, %edi # sched: [2:0.67]
703; GENERIC-NEXT:    cmovnpl %esi, %edi # sched: [2:0.67]
704; GENERIC-NEXT:    cmovll %esi, %edi # sched: [2:0.67]
705; GENERIC-NEXT:    cmovll %esi, %edi # sched: [2:0.67]
706; GENERIC-NEXT:    cmovgel %esi, %edi # sched: [2:0.67]
707; GENERIC-NEXT:    cmovgel %esi, %edi # sched: [2:0.67]
708; GENERIC-NEXT:    cmovlel %esi, %edi # sched: [2:0.67]
709; GENERIC-NEXT:    cmovlel %esi, %edi # sched: [2:0.67]
710; GENERIC-NEXT:    cmovgl %esi, %edi # sched: [2:0.67]
711; GENERIC-NEXT:    cmovgl %esi, %edi # sched: [2:0.67]
712; GENERIC-NEXT:    cmovol (%rdx), %edi # sched: [7:0.67]
713; GENERIC-NEXT:    cmovnol (%rdx), %edi # sched: [7:0.67]
714; GENERIC-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
715; GENERIC-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
716; GENERIC-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
717; GENERIC-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
718; GENERIC-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
719; GENERIC-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
720; GENERIC-NEXT:    cmovel (%rdx), %edi # sched: [7:0.67]
721; GENERIC-NEXT:    cmovel (%rdx), %edi # sched: [7:0.67]
722; GENERIC-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.67]
723; GENERIC-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.67]
724; GENERIC-NEXT:    cmovbel (%rdx), %edi # sched: [8:1.00]
725; GENERIC-NEXT:    cmovbel (%rdx), %edi # sched: [8:1.00]
726; GENERIC-NEXT:    cmoval (%rdx), %edi # sched: [8:1.00]
727; GENERIC-NEXT:    cmoval (%rdx), %edi # sched: [8:1.00]
728; GENERIC-NEXT:    cmovsl (%rdx), %edi # sched: [7:0.67]
729; GENERIC-NEXT:    cmovnsl (%rdx), %edi # sched: [7:0.67]
730; GENERIC-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.67]
731; GENERIC-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.67]
732; GENERIC-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.67]
733; GENERIC-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.67]
734; GENERIC-NEXT:    cmovll (%rdx), %edi # sched: [7:0.67]
735; GENERIC-NEXT:    cmovll (%rdx), %edi # sched: [7:0.67]
736; GENERIC-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.67]
737; GENERIC-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.67]
738; GENERIC-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.67]
739; GENERIC-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.67]
740; GENERIC-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.67]
741; GENERIC-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.67]
742; GENERIC-NEXT:    #NO_APP
743; GENERIC-NEXT:    retq # sched: [1:1.00]
744;
745; ATOM-LABEL: test_cmov_32:
746; ATOM:       # %bb.0:
747; ATOM-NEXT:    #APP
748; ATOM-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
749; ATOM-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
750; ATOM-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
751; ATOM-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
752; ATOM-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
753; ATOM-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
754; ATOM-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
755; ATOM-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
756; ATOM-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
757; ATOM-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
758; ATOM-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
759; ATOM-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
760; ATOM-NEXT:    cmovbel %esi, %edi # sched: [1:0.50]
761; ATOM-NEXT:    cmovbel %esi, %edi # sched: [1:0.50]
762; ATOM-NEXT:    cmoval %esi, %edi # sched: [1:0.50]
763; ATOM-NEXT:    cmoval %esi, %edi # sched: [1:0.50]
764; ATOM-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
765; ATOM-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
766; ATOM-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
767; ATOM-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
768; ATOM-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
769; ATOM-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
770; ATOM-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
771; ATOM-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
772; ATOM-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
773; ATOM-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
774; ATOM-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
775; ATOM-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
776; ATOM-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
777; ATOM-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
778; ATOM-NEXT:    cmovol (%rdx), %edi # sched: [1:1.00]
779; ATOM-NEXT:    cmovnol (%rdx), %edi # sched: [1:1.00]
780; ATOM-NEXT:    cmovbl (%rdx), %edi # sched: [1:1.00]
781; ATOM-NEXT:    cmovbl (%rdx), %edi # sched: [1:1.00]
782; ATOM-NEXT:    cmovbl (%rdx), %edi # sched: [1:1.00]
783; ATOM-NEXT:    cmovael (%rdx), %edi # sched: [1:1.00]
784; ATOM-NEXT:    cmovael (%rdx), %edi # sched: [1:1.00]
785; ATOM-NEXT:    cmovael (%rdx), %edi # sched: [1:1.00]
786; ATOM-NEXT:    cmovel (%rdx), %edi # sched: [1:1.00]
787; ATOM-NEXT:    cmovel (%rdx), %edi # sched: [1:1.00]
788; ATOM-NEXT:    cmovnel (%rdx), %edi # sched: [1:1.00]
789; ATOM-NEXT:    cmovnel (%rdx), %edi # sched: [1:1.00]
790; ATOM-NEXT:    cmovbel (%rdx), %edi # sched: [1:1.00]
791; ATOM-NEXT:    cmovbel (%rdx), %edi # sched: [1:1.00]
792; ATOM-NEXT:    cmoval (%rdx), %edi # sched: [1:1.00]
793; ATOM-NEXT:    cmoval (%rdx), %edi # sched: [1:1.00]
794; ATOM-NEXT:    cmovsl (%rdx), %edi # sched: [1:1.00]
795; ATOM-NEXT:    cmovnsl (%rdx), %edi # sched: [1:1.00]
796; ATOM-NEXT:    cmovpl (%rdx), %edi # sched: [1:1.00]
797; ATOM-NEXT:    cmovpl (%rdx), %edi # sched: [1:1.00]
798; ATOM-NEXT:    cmovnpl (%rdx), %edi # sched: [1:1.00]
799; ATOM-NEXT:    cmovnpl (%rdx), %edi # sched: [1:1.00]
800; ATOM-NEXT:    cmovll (%rdx), %edi # sched: [1:1.00]
801; ATOM-NEXT:    cmovll (%rdx), %edi # sched: [1:1.00]
802; ATOM-NEXT:    cmovgel (%rdx), %edi # sched: [1:1.00]
803; ATOM-NEXT:    cmovgel (%rdx), %edi # sched: [1:1.00]
804; ATOM-NEXT:    cmovlel (%rdx), %edi # sched: [1:1.00]
805; ATOM-NEXT:    cmovlel (%rdx), %edi # sched: [1:1.00]
806; ATOM-NEXT:    cmovgl (%rdx), %edi # sched: [1:1.00]
807; ATOM-NEXT:    cmovgl (%rdx), %edi # sched: [1:1.00]
808; ATOM-NEXT:    #NO_APP
809; ATOM-NEXT:    retq # sched: [79:39.50]
810;
811; SLM-LABEL: test_cmov_32:
812; SLM:       # %bb.0:
813; SLM-NEXT:    #APP
814; SLM-NEXT:    cmovol %esi, %edi # sched: [2:1.00]
815; SLM-NEXT:    cmovnol %esi, %edi # sched: [2:1.00]
816; SLM-NEXT:    cmovbl %esi, %edi # sched: [2:1.00]
817; SLM-NEXT:    cmovbl %esi, %edi # sched: [2:1.00]
818; SLM-NEXT:    cmovbl %esi, %edi # sched: [2:1.00]
819; SLM-NEXT:    cmovael %esi, %edi # sched: [2:1.00]
820; SLM-NEXT:    cmovael %esi, %edi # sched: [2:1.00]
821; SLM-NEXT:    cmovael %esi, %edi # sched: [2:1.00]
822; SLM-NEXT:    cmovel %esi, %edi # sched: [2:1.00]
823; SLM-NEXT:    cmovel %esi, %edi # sched: [2:1.00]
824; SLM-NEXT:    cmovnel %esi, %edi # sched: [2:1.00]
825; SLM-NEXT:    cmovnel %esi, %edi # sched: [2:1.00]
826; SLM-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
827; SLM-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
828; SLM-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
829; SLM-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
830; SLM-NEXT:    cmovsl %esi, %edi # sched: [2:1.00]
831; SLM-NEXT:    cmovnsl %esi, %edi # sched: [2:1.00]
832; SLM-NEXT:    cmovpl %esi, %edi # sched: [2:1.00]
833; SLM-NEXT:    cmovpl %esi, %edi # sched: [2:1.00]
834; SLM-NEXT:    cmovnpl %esi, %edi # sched: [2:1.00]
835; SLM-NEXT:    cmovnpl %esi, %edi # sched: [2:1.00]
836; SLM-NEXT:    cmovll %esi, %edi # sched: [2:1.00]
837; SLM-NEXT:    cmovll %esi, %edi # sched: [2:1.00]
838; SLM-NEXT:    cmovgel %esi, %edi # sched: [2:1.00]
839; SLM-NEXT:    cmovgel %esi, %edi # sched: [2:1.00]
840; SLM-NEXT:    cmovlel %esi, %edi # sched: [2:1.00]
841; SLM-NEXT:    cmovlel %esi, %edi # sched: [2:1.00]
842; SLM-NEXT:    cmovgl %esi, %edi # sched: [2:1.00]
843; SLM-NEXT:    cmovgl %esi, %edi # sched: [2:1.00]
844; SLM-NEXT:    cmovol (%rdx), %edi # sched: [5:1.00]
845; SLM-NEXT:    cmovnol (%rdx), %edi # sched: [5:1.00]
846; SLM-NEXT:    cmovbl (%rdx), %edi # sched: [5:1.00]
847; SLM-NEXT:    cmovbl (%rdx), %edi # sched: [5:1.00]
848; SLM-NEXT:    cmovbl (%rdx), %edi # sched: [5:1.00]
849; SLM-NEXT:    cmovael (%rdx), %edi # sched: [5:1.00]
850; SLM-NEXT:    cmovael (%rdx), %edi # sched: [5:1.00]
851; SLM-NEXT:    cmovael (%rdx), %edi # sched: [5:1.00]
852; SLM-NEXT:    cmovel (%rdx), %edi # sched: [5:1.00]
853; SLM-NEXT:    cmovel (%rdx), %edi # sched: [5:1.00]
854; SLM-NEXT:    cmovnel (%rdx), %edi # sched: [5:1.00]
855; SLM-NEXT:    cmovnel (%rdx), %edi # sched: [5:1.00]
856; SLM-NEXT:    cmovbel (%rdx), %edi # sched: [5:1.00]
857; SLM-NEXT:    cmovbel (%rdx), %edi # sched: [5:1.00]
858; SLM-NEXT:    cmoval (%rdx), %edi # sched: [5:1.00]
859; SLM-NEXT:    cmoval (%rdx), %edi # sched: [5:1.00]
860; SLM-NEXT:    cmovsl (%rdx), %edi # sched: [5:1.00]
861; SLM-NEXT:    cmovnsl (%rdx), %edi # sched: [5:1.00]
862; SLM-NEXT:    cmovpl (%rdx), %edi # sched: [5:1.00]
863; SLM-NEXT:    cmovpl (%rdx), %edi # sched: [5:1.00]
864; SLM-NEXT:    cmovnpl (%rdx), %edi # sched: [5:1.00]
865; SLM-NEXT:    cmovnpl (%rdx), %edi # sched: [5:1.00]
866; SLM-NEXT:    cmovll (%rdx), %edi # sched: [5:1.00]
867; SLM-NEXT:    cmovll (%rdx), %edi # sched: [5:1.00]
868; SLM-NEXT:    cmovgel (%rdx), %edi # sched: [5:1.00]
869; SLM-NEXT:    cmovgel (%rdx), %edi # sched: [5:1.00]
870; SLM-NEXT:    cmovlel (%rdx), %edi # sched: [5:1.00]
871; SLM-NEXT:    cmovlel (%rdx), %edi # sched: [5:1.00]
872; SLM-NEXT:    cmovgl (%rdx), %edi # sched: [5:1.00]
873; SLM-NEXT:    cmovgl (%rdx), %edi # sched: [5:1.00]
874; SLM-NEXT:    #NO_APP
875; SLM-NEXT:    retq # sched: [4:1.00]
876;
877; SANDY-LABEL: test_cmov_32:
878; SANDY:       # %bb.0:
879; SANDY-NEXT:    #APP
880; SANDY-NEXT:    cmovol %esi, %edi # sched: [2:0.67]
881; SANDY-NEXT:    cmovnol %esi, %edi # sched: [2:0.67]
882; SANDY-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
883; SANDY-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
884; SANDY-NEXT:    cmovbl %esi, %edi # sched: [2:0.67]
885; SANDY-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
886; SANDY-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
887; SANDY-NEXT:    cmovael %esi, %edi # sched: [2:0.67]
888; SANDY-NEXT:    cmovel %esi, %edi # sched: [2:0.67]
889; SANDY-NEXT:    cmovel %esi, %edi # sched: [2:0.67]
890; SANDY-NEXT:    cmovnel %esi, %edi # sched: [2:0.67]
891; SANDY-NEXT:    cmovnel %esi, %edi # sched: [2:0.67]
892; SANDY-NEXT:    cmovbel %esi, %edi # sched: [3:1.00]
893; SANDY-NEXT:    cmovbel %esi, %edi # sched: [3:1.00]
894; SANDY-NEXT:    cmoval %esi, %edi # sched: [3:1.00]
895; SANDY-NEXT:    cmoval %esi, %edi # sched: [3:1.00]
896; SANDY-NEXT:    cmovsl %esi, %edi # sched: [2:0.67]
897; SANDY-NEXT:    cmovnsl %esi, %edi # sched: [2:0.67]
898; SANDY-NEXT:    cmovpl %esi, %edi # sched: [2:0.67]
899; SANDY-NEXT:    cmovpl %esi, %edi # sched: [2:0.67]
900; SANDY-NEXT:    cmovnpl %esi, %edi # sched: [2:0.67]
901; SANDY-NEXT:    cmovnpl %esi, %edi # sched: [2:0.67]
902; SANDY-NEXT:    cmovll %esi, %edi # sched: [2:0.67]
903; SANDY-NEXT:    cmovll %esi, %edi # sched: [2:0.67]
904; SANDY-NEXT:    cmovgel %esi, %edi # sched: [2:0.67]
905; SANDY-NEXT:    cmovgel %esi, %edi # sched: [2:0.67]
906; SANDY-NEXT:    cmovlel %esi, %edi # sched: [2:0.67]
907; SANDY-NEXT:    cmovlel %esi, %edi # sched: [2:0.67]
908; SANDY-NEXT:    cmovgl %esi, %edi # sched: [2:0.67]
909; SANDY-NEXT:    cmovgl %esi, %edi # sched: [2:0.67]
910; SANDY-NEXT:    cmovol (%rdx), %edi # sched: [7:0.67]
911; SANDY-NEXT:    cmovnol (%rdx), %edi # sched: [7:0.67]
912; SANDY-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
913; SANDY-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
914; SANDY-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.67]
915; SANDY-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
916; SANDY-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
917; SANDY-NEXT:    cmovael (%rdx), %edi # sched: [7:0.67]
918; SANDY-NEXT:    cmovel (%rdx), %edi # sched: [7:0.67]
919; SANDY-NEXT:    cmovel (%rdx), %edi # sched: [7:0.67]
920; SANDY-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.67]
921; SANDY-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.67]
922; SANDY-NEXT:    cmovbel (%rdx), %edi # sched: [8:1.00]
923; SANDY-NEXT:    cmovbel (%rdx), %edi # sched: [8:1.00]
924; SANDY-NEXT:    cmoval (%rdx), %edi # sched: [8:1.00]
925; SANDY-NEXT:    cmoval (%rdx), %edi # sched: [8:1.00]
926; SANDY-NEXT:    cmovsl (%rdx), %edi # sched: [7:0.67]
927; SANDY-NEXT:    cmovnsl (%rdx), %edi # sched: [7:0.67]
928; SANDY-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.67]
929; SANDY-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.67]
930; SANDY-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.67]
931; SANDY-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.67]
932; SANDY-NEXT:    cmovll (%rdx), %edi # sched: [7:0.67]
933; SANDY-NEXT:    cmovll (%rdx), %edi # sched: [7:0.67]
934; SANDY-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.67]
935; SANDY-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.67]
936; SANDY-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.67]
937; SANDY-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.67]
938; SANDY-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.67]
939; SANDY-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.67]
940; SANDY-NEXT:    #NO_APP
941; SANDY-NEXT:    retq # sched: [1:1.00]
942;
943; HASWELL-LABEL: test_cmov_32:
944; HASWELL:       # %bb.0:
945; HASWELL-NEXT:    #APP
946; HASWELL-NEXT:    cmovol %esi, %edi # sched: [2:0.50]
947; HASWELL-NEXT:    cmovnol %esi, %edi # sched: [2:0.50]
948; HASWELL-NEXT:    cmovbl %esi, %edi # sched: [2:0.50]
949; HASWELL-NEXT:    cmovbl %esi, %edi # sched: [2:0.50]
950; HASWELL-NEXT:    cmovbl %esi, %edi # sched: [2:0.50]
951; HASWELL-NEXT:    cmovael %esi, %edi # sched: [2:0.50]
952; HASWELL-NEXT:    cmovael %esi, %edi # sched: [2:0.50]
953; HASWELL-NEXT:    cmovael %esi, %edi # sched: [2:0.50]
954; HASWELL-NEXT:    cmovel %esi, %edi # sched: [2:0.50]
955; HASWELL-NEXT:    cmovel %esi, %edi # sched: [2:0.50]
956; HASWELL-NEXT:    cmovnel %esi, %edi # sched: [2:0.50]
957; HASWELL-NEXT:    cmovnel %esi, %edi # sched: [2:0.50]
958; HASWELL-NEXT:    cmovbel %esi, %edi # sched: [3:0.75]
959; HASWELL-NEXT:    cmovbel %esi, %edi # sched: [3:0.75]
960; HASWELL-NEXT:    cmoval %esi, %edi # sched: [3:0.75]
961; HASWELL-NEXT:    cmoval %esi, %edi # sched: [3:0.75]
962; HASWELL-NEXT:    cmovsl %esi, %edi # sched: [2:0.50]
963; HASWELL-NEXT:    cmovnsl %esi, %edi # sched: [2:0.50]
964; HASWELL-NEXT:    cmovpl %esi, %edi # sched: [2:0.50]
965; HASWELL-NEXT:    cmovpl %esi, %edi # sched: [2:0.50]
966; HASWELL-NEXT:    cmovnpl %esi, %edi # sched: [2:0.50]
967; HASWELL-NEXT:    cmovnpl %esi, %edi # sched: [2:0.50]
968; HASWELL-NEXT:    cmovll %esi, %edi # sched: [2:0.50]
969; HASWELL-NEXT:    cmovll %esi, %edi # sched: [2:0.50]
970; HASWELL-NEXT:    cmovgel %esi, %edi # sched: [2:0.50]
971; HASWELL-NEXT:    cmovgel %esi, %edi # sched: [2:0.50]
972; HASWELL-NEXT:    cmovlel %esi, %edi # sched: [2:0.50]
973; HASWELL-NEXT:    cmovlel %esi, %edi # sched: [2:0.50]
974; HASWELL-NEXT:    cmovgl %esi, %edi # sched: [2:0.50]
975; HASWELL-NEXT:    cmovgl %esi, %edi # sched: [2:0.50]
976; HASWELL-NEXT:    cmovol (%rdx), %edi # sched: [7:0.50]
977; HASWELL-NEXT:    cmovnol (%rdx), %edi # sched: [7:0.50]
978; HASWELL-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.50]
979; HASWELL-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.50]
980; HASWELL-NEXT:    cmovbl (%rdx), %edi # sched: [7:0.50]
981; HASWELL-NEXT:    cmovael (%rdx), %edi # sched: [7:0.50]
982; HASWELL-NEXT:    cmovael (%rdx), %edi # sched: [7:0.50]
983; HASWELL-NEXT:    cmovael (%rdx), %edi # sched: [7:0.50]
984; HASWELL-NEXT:    cmovel (%rdx), %edi # sched: [7:0.50]
985; HASWELL-NEXT:    cmovel (%rdx), %edi # sched: [7:0.50]
986; HASWELL-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.50]
987; HASWELL-NEXT:    cmovnel (%rdx), %edi # sched: [7:0.50]
988; HASWELL-NEXT:    cmovbel (%rdx), %edi # sched: [8:0.75]
989; HASWELL-NEXT:    cmovbel (%rdx), %edi # sched: [8:0.75]
990; HASWELL-NEXT:    cmoval (%rdx), %edi # sched: [8:0.75]
991; HASWELL-NEXT:    cmoval (%rdx), %edi # sched: [8:0.75]
992; HASWELL-NEXT:    cmovsl (%rdx), %edi # sched: [7:0.50]
993; HASWELL-NEXT:    cmovnsl (%rdx), %edi # sched: [7:0.50]
994; HASWELL-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.50]
995; HASWELL-NEXT:    cmovpl (%rdx), %edi # sched: [7:0.50]
996; HASWELL-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.50]
997; HASWELL-NEXT:    cmovnpl (%rdx), %edi # sched: [7:0.50]
998; HASWELL-NEXT:    cmovll (%rdx), %edi # sched: [7:0.50]
999; HASWELL-NEXT:    cmovll (%rdx), %edi # sched: [7:0.50]
1000; HASWELL-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.50]
1001; HASWELL-NEXT:    cmovgel (%rdx), %edi # sched: [7:0.50]
1002; HASWELL-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.50]
1003; HASWELL-NEXT:    cmovlel (%rdx), %edi # sched: [7:0.50]
1004; HASWELL-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.50]
1005; HASWELL-NEXT:    cmovgl (%rdx), %edi # sched: [7:0.50]
1006; HASWELL-NEXT:    #NO_APP
1007; HASWELL-NEXT:    retq # sched: [7:1.00]
1008;
1009; BROADWELL-LABEL: test_cmov_32:
1010; BROADWELL:       # %bb.0:
1011; BROADWELL-NEXT:    #APP
1012; BROADWELL-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
1013; BROADWELL-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
1014; BROADWELL-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1015; BROADWELL-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1016; BROADWELL-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1017; BROADWELL-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1018; BROADWELL-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1019; BROADWELL-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1020; BROADWELL-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
1021; BROADWELL-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
1022; BROADWELL-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
1023; BROADWELL-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
1024; BROADWELL-NEXT:    cmovbel %esi, %edi # sched: [2:0.50]
1025; BROADWELL-NEXT:    cmovbel %esi, %edi # sched: [2:0.50]
1026; BROADWELL-NEXT:    cmoval %esi, %edi # sched: [2:0.50]
1027; BROADWELL-NEXT:    cmoval %esi, %edi # sched: [2:0.50]
1028; BROADWELL-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
1029; BROADWELL-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
1030; BROADWELL-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
1031; BROADWELL-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
1032; BROADWELL-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
1033; BROADWELL-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
1034; BROADWELL-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
1035; BROADWELL-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
1036; BROADWELL-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
1037; BROADWELL-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
1038; BROADWELL-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
1039; BROADWELL-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
1040; BROADWELL-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
1041; BROADWELL-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
1042; BROADWELL-NEXT:    cmovol (%rdx), %edi # sched: [6:0.50]
1043; BROADWELL-NEXT:    cmovnol (%rdx), %edi # sched: [6:0.50]
1044; BROADWELL-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
1045; BROADWELL-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
1046; BROADWELL-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
1047; BROADWELL-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
1048; BROADWELL-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
1049; BROADWELL-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
1050; BROADWELL-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
1051; BROADWELL-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
1052; BROADWELL-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
1053; BROADWELL-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
1054; BROADWELL-NEXT:    cmovbel (%rdx), %edi # sched: [7:0.50]
1055; BROADWELL-NEXT:    cmovbel (%rdx), %edi # sched: [7:0.50]
1056; BROADWELL-NEXT:    cmoval (%rdx), %edi # sched: [7:0.50]
1057; BROADWELL-NEXT:    cmoval (%rdx), %edi # sched: [7:0.50]
1058; BROADWELL-NEXT:    cmovsl (%rdx), %edi # sched: [6:0.50]
1059; BROADWELL-NEXT:    cmovnsl (%rdx), %edi # sched: [6:0.50]
1060; BROADWELL-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
1061; BROADWELL-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
1062; BROADWELL-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
1063; BROADWELL-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
1064; BROADWELL-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
1065; BROADWELL-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
1066; BROADWELL-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
1067; BROADWELL-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
1068; BROADWELL-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
1069; BROADWELL-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
1070; BROADWELL-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
1071; BROADWELL-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
1072; BROADWELL-NEXT:    #NO_APP
1073; BROADWELL-NEXT:    retq # sched: [7:1.00]
1074;
1075; SKYLAKE-LABEL: test_cmov_32:
1076; SKYLAKE:       # %bb.0:
1077; SKYLAKE-NEXT:    #APP
1078; SKYLAKE-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
1079; SKYLAKE-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
1080; SKYLAKE-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1081; SKYLAKE-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1082; SKYLAKE-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1083; SKYLAKE-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1084; SKYLAKE-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1085; SKYLAKE-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1086; SKYLAKE-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
1087; SKYLAKE-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
1088; SKYLAKE-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
1089; SKYLAKE-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
1090; SKYLAKE-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
1091; SKYLAKE-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
1092; SKYLAKE-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
1093; SKYLAKE-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
1094; SKYLAKE-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
1095; SKYLAKE-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
1096; SKYLAKE-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
1097; SKYLAKE-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
1098; SKYLAKE-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
1099; SKYLAKE-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
1100; SKYLAKE-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
1101; SKYLAKE-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
1102; SKYLAKE-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
1103; SKYLAKE-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
1104; SKYLAKE-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
1105; SKYLAKE-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
1106; SKYLAKE-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
1107; SKYLAKE-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
1108; SKYLAKE-NEXT:    cmovol (%rdx), %edi # sched: [6:0.50]
1109; SKYLAKE-NEXT:    cmovnol (%rdx), %edi # sched: [6:0.50]
1110; SKYLAKE-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
1111; SKYLAKE-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
1112; SKYLAKE-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
1113; SKYLAKE-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
1114; SKYLAKE-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
1115; SKYLAKE-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
1116; SKYLAKE-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
1117; SKYLAKE-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
1118; SKYLAKE-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
1119; SKYLAKE-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
1120; SKYLAKE-NEXT:    cmovbel (%rdx), %edi # sched: [7:1.00]
1121; SKYLAKE-NEXT:    cmovbel (%rdx), %edi # sched: [7:1.00]
1122; SKYLAKE-NEXT:    cmoval (%rdx), %edi # sched: [7:1.00]
1123; SKYLAKE-NEXT:    cmoval (%rdx), %edi # sched: [7:1.00]
1124; SKYLAKE-NEXT:    cmovsl (%rdx), %edi # sched: [6:0.50]
1125; SKYLAKE-NEXT:    cmovnsl (%rdx), %edi # sched: [6:0.50]
1126; SKYLAKE-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
1127; SKYLAKE-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
1128; SKYLAKE-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
1129; SKYLAKE-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
1130; SKYLAKE-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
1131; SKYLAKE-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
1132; SKYLAKE-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
1133; SKYLAKE-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
1134; SKYLAKE-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
1135; SKYLAKE-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
1136; SKYLAKE-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
1137; SKYLAKE-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
1138; SKYLAKE-NEXT:    #NO_APP
1139; SKYLAKE-NEXT:    retq # sched: [7:1.00]
1140;
1141; SKX-LABEL: test_cmov_32:
1142; SKX:       # %bb.0:
1143; SKX-NEXT:    #APP
1144; SKX-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
1145; SKX-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
1146; SKX-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1147; SKX-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1148; SKX-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1149; SKX-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1150; SKX-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1151; SKX-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1152; SKX-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
1153; SKX-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
1154; SKX-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
1155; SKX-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
1156; SKX-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
1157; SKX-NEXT:    cmovbel %esi, %edi # sched: [2:1.00]
1158; SKX-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
1159; SKX-NEXT:    cmoval %esi, %edi # sched: [2:1.00]
1160; SKX-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
1161; SKX-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
1162; SKX-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
1163; SKX-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
1164; SKX-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
1165; SKX-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
1166; SKX-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
1167; SKX-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
1168; SKX-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
1169; SKX-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
1170; SKX-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
1171; SKX-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
1172; SKX-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
1173; SKX-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
1174; SKX-NEXT:    cmovol (%rdx), %edi # sched: [6:0.50]
1175; SKX-NEXT:    cmovnol (%rdx), %edi # sched: [6:0.50]
1176; SKX-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
1177; SKX-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
1178; SKX-NEXT:    cmovbl (%rdx), %edi # sched: [6:0.50]
1179; SKX-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
1180; SKX-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
1181; SKX-NEXT:    cmovael (%rdx), %edi # sched: [6:0.50]
1182; SKX-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
1183; SKX-NEXT:    cmovel (%rdx), %edi # sched: [6:0.50]
1184; SKX-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
1185; SKX-NEXT:    cmovnel (%rdx), %edi # sched: [6:0.50]
1186; SKX-NEXT:    cmovbel (%rdx), %edi # sched: [7:1.00]
1187; SKX-NEXT:    cmovbel (%rdx), %edi # sched: [7:1.00]
1188; SKX-NEXT:    cmoval (%rdx), %edi # sched: [7:1.00]
1189; SKX-NEXT:    cmoval (%rdx), %edi # sched: [7:1.00]
1190; SKX-NEXT:    cmovsl (%rdx), %edi # sched: [6:0.50]
1191; SKX-NEXT:    cmovnsl (%rdx), %edi # sched: [6:0.50]
1192; SKX-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
1193; SKX-NEXT:    cmovpl (%rdx), %edi # sched: [6:0.50]
1194; SKX-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
1195; SKX-NEXT:    cmovnpl (%rdx), %edi # sched: [6:0.50]
1196; SKX-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
1197; SKX-NEXT:    cmovll (%rdx), %edi # sched: [6:0.50]
1198; SKX-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
1199; SKX-NEXT:    cmovgel (%rdx), %edi # sched: [6:0.50]
1200; SKX-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
1201; SKX-NEXT:    cmovlel (%rdx), %edi # sched: [6:0.50]
1202; SKX-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
1203; SKX-NEXT:    cmovgl (%rdx), %edi # sched: [6:0.50]
1204; SKX-NEXT:    #NO_APP
1205; SKX-NEXT:    retq # sched: [7:1.00]
1206;
1207; BTVER2-LABEL: test_cmov_32:
1208; BTVER2:       # %bb.0:
1209; BTVER2-NEXT:    #APP
1210; BTVER2-NEXT:    cmovol %esi, %edi # sched: [1:0.50]
1211; BTVER2-NEXT:    cmovnol %esi, %edi # sched: [1:0.50]
1212; BTVER2-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1213; BTVER2-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1214; BTVER2-NEXT:    cmovbl %esi, %edi # sched: [1:0.50]
1215; BTVER2-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1216; BTVER2-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1217; BTVER2-NEXT:    cmovael %esi, %edi # sched: [1:0.50]
1218; BTVER2-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
1219; BTVER2-NEXT:    cmovel %esi, %edi # sched: [1:0.50]
1220; BTVER2-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
1221; BTVER2-NEXT:    cmovnel %esi, %edi # sched: [1:0.50]
1222; BTVER2-NEXT:    cmovbel %esi, %edi # sched: [1:0.50]
1223; BTVER2-NEXT:    cmovbel %esi, %edi # sched: [1:0.50]
1224; BTVER2-NEXT:    cmoval %esi, %edi # sched: [1:0.50]
1225; BTVER2-NEXT:    cmoval %esi, %edi # sched: [1:0.50]
1226; BTVER2-NEXT:    cmovsl %esi, %edi # sched: [1:0.50]
1227; BTVER2-NEXT:    cmovnsl %esi, %edi # sched: [1:0.50]
1228; BTVER2-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
1229; BTVER2-NEXT:    cmovpl %esi, %edi # sched: [1:0.50]
1230; BTVER2-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
1231; BTVER2-NEXT:    cmovnpl %esi, %edi # sched: [1:0.50]
1232; BTVER2-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
1233; BTVER2-NEXT:    cmovll %esi, %edi # sched: [1:0.50]
1234; BTVER2-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
1235; BTVER2-NEXT:    cmovgel %esi, %edi # sched: [1:0.50]
1236; BTVER2-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
1237; BTVER2-NEXT:    cmovlel %esi, %edi # sched: [1:0.50]
1238; BTVER2-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
1239; BTVER2-NEXT:    cmovgl %esi, %edi # sched: [1:0.50]
1240; BTVER2-NEXT:    cmovol (%rdx), %edi # sched: [4:1.00]
1241; BTVER2-NEXT:    cmovnol (%rdx), %edi # sched: [4:1.00]
1242; BTVER2-NEXT:    cmovbl (%rdx), %edi # sched: [4:1.00]
1243; BTVER2-NEXT:    cmovbl (%rdx), %edi # sched: [4:1.00]
1244; BTVER2-NEXT:    cmovbl (%rdx), %edi # sched: [4:1.00]
1245; BTVER2-NEXT:    cmovael (%rdx), %edi # sched: [4:1.00]
1246; BTVER2-NEXT:    cmovael (%rdx), %edi # sched: [4:1.00]
1247; BTVER2-NEXT:    cmovael (%rdx), %edi # sched: [4:1.00]
1248; BTVER2-NEXT:    cmovel (%rdx), %edi # sched: [4:1.00]
1249; BTVER2-NEXT:    cmovel (%rdx), %edi # sched: [4:1.00]
1250; BTVER2-NEXT:    cmovnel (%rdx), %edi # sched: [4:1.00]
1251; BTVER2-NEXT:    cmovnel (%rdx), %edi # sched: [4:1.00]
1252; BTVER2-NEXT:    cmovbel (%rdx), %edi # sched: [4:1.00]
1253; BTVER2-NEXT:    cmovbel (%rdx), %edi # sched: [4:1.00]
1254; BTVER2-NEXT:    cmoval (%rdx), %edi # sched: [4:1.00]
1255; BTVER2-NEXT:    cmoval (%rdx), %edi # sched: [4:1.00]
1256; BTVER2-NEXT:    cmovsl (%rdx), %edi # sched: [4:1.00]
1257; BTVER2-NEXT:    cmovnsl (%rdx), %edi # sched: [4:1.00]
1258; BTVER2-NEXT:    cmovpl (%rdx), %edi # sched: [4:1.00]
1259; BTVER2-NEXT:    cmovpl (%rdx), %edi # sched: [4:1.00]
1260; BTVER2-NEXT:    cmovnpl (%rdx), %edi # sched: [4:1.00]
1261; BTVER2-NEXT:    cmovnpl (%rdx), %edi # sched: [4:1.00]
1262; BTVER2-NEXT:    cmovll (%rdx), %edi # sched: [4:1.00]
1263; BTVER2-NEXT:    cmovll (%rdx), %edi # sched: [4:1.00]
1264; BTVER2-NEXT:    cmovgel (%rdx), %edi # sched: [4:1.00]
1265; BTVER2-NEXT:    cmovgel (%rdx), %edi # sched: [4:1.00]
1266; BTVER2-NEXT:    cmovlel (%rdx), %edi # sched: [4:1.00]
1267; BTVER2-NEXT:    cmovlel (%rdx), %edi # sched: [4:1.00]
1268; BTVER2-NEXT:    cmovgl (%rdx), %edi # sched: [4:1.00]
1269; BTVER2-NEXT:    cmovgl (%rdx), %edi # sched: [4:1.00]
1270; BTVER2-NEXT:    #NO_APP
1271; BTVER2-NEXT:    retq # sched: [4:1.00]
1272;
1273; ZNVER1-LABEL: test_cmov_32:
1274; ZNVER1:       # %bb.0:
1275; ZNVER1-NEXT:    #APP
1276; ZNVER1-NEXT:    cmovol %esi, %edi # sched: [1:0.25]
1277; ZNVER1-NEXT:    cmovnol %esi, %edi # sched: [1:0.25]
1278; ZNVER1-NEXT:    cmovbl %esi, %edi # sched: [1:0.25]
1279; ZNVER1-NEXT:    cmovbl %esi, %edi # sched: [1:0.25]
1280; ZNVER1-NEXT:    cmovbl %esi, %edi # sched: [1:0.25]
1281; ZNVER1-NEXT:    cmovael %esi, %edi # sched: [1:0.25]
1282; ZNVER1-NEXT:    cmovael %esi, %edi # sched: [1:0.25]
1283; ZNVER1-NEXT:    cmovael %esi, %edi # sched: [1:0.25]
1284; ZNVER1-NEXT:    cmovel %esi, %edi # sched: [1:0.25]
1285; ZNVER1-NEXT:    cmovel %esi, %edi # sched: [1:0.25]
1286; ZNVER1-NEXT:    cmovnel %esi, %edi # sched: [1:0.25]
1287; ZNVER1-NEXT:    cmovnel %esi, %edi # sched: [1:0.25]
1288; ZNVER1-NEXT:    cmovbel %esi, %edi # sched: [1:0.25]
1289; ZNVER1-NEXT:    cmovbel %esi, %edi # sched: [1:0.25]
1290; ZNVER1-NEXT:    cmoval %esi, %edi # sched: [1:0.25]
1291; ZNVER1-NEXT:    cmoval %esi, %edi # sched: [1:0.25]
1292; ZNVER1-NEXT:    cmovsl %esi, %edi # sched: [1:0.25]
1293; ZNVER1-NEXT:    cmovnsl %esi, %edi # sched: [1:0.25]
1294; ZNVER1-NEXT:    cmovpl %esi, %edi # sched: [1:0.25]
1295; ZNVER1-NEXT:    cmovpl %esi, %edi # sched: [1:0.25]
1296; ZNVER1-NEXT:    cmovnpl %esi, %edi # sched: [1:0.25]
1297; ZNVER1-NEXT:    cmovnpl %esi, %edi # sched: [1:0.25]
1298; ZNVER1-NEXT:    cmovll %esi, %edi # sched: [1:0.25]
1299; ZNVER1-NEXT:    cmovll %esi, %edi # sched: [1:0.25]
1300; ZNVER1-NEXT:    cmovgel %esi, %edi # sched: [1:0.25]
1301; ZNVER1-NEXT:    cmovgel %esi, %edi # sched: [1:0.25]
1302; ZNVER1-NEXT:    cmovlel %esi, %edi # sched: [1:0.25]
1303; ZNVER1-NEXT:    cmovlel %esi, %edi # sched: [1:0.25]
1304; ZNVER1-NEXT:    cmovgl %esi, %edi # sched: [1:0.25]
1305; ZNVER1-NEXT:    cmovgl %esi, %edi # sched: [1:0.25]
1306; ZNVER1-NEXT:    cmovol (%rdx), %edi # sched: [5:0.50]
1307; ZNVER1-NEXT:    cmovnol (%rdx), %edi # sched: [5:0.50]
1308; ZNVER1-NEXT:    cmovbl (%rdx), %edi # sched: [5:0.50]
1309; ZNVER1-NEXT:    cmovbl (%rdx), %edi # sched: [5:0.50]
1310; ZNVER1-NEXT:    cmovbl (%rdx), %edi # sched: [5:0.50]
1311; ZNVER1-NEXT:    cmovael (%rdx), %edi # sched: [5:0.50]
1312; ZNVER1-NEXT:    cmovael (%rdx), %edi # sched: [5:0.50]
1313; ZNVER1-NEXT:    cmovael (%rdx), %edi # sched: [5:0.50]
1314; ZNVER1-NEXT:    cmovel (%rdx), %edi # sched: [5:0.50]
1315; ZNVER1-NEXT:    cmovel (%rdx), %edi # sched: [5:0.50]
1316; ZNVER1-NEXT:    cmovnel (%rdx), %edi # sched: [5:0.50]
1317; ZNVER1-NEXT:    cmovnel (%rdx), %edi # sched: [5:0.50]
1318; ZNVER1-NEXT:    cmovbel (%rdx), %edi # sched: [5:0.50]
1319; ZNVER1-NEXT:    cmovbel (%rdx), %edi # sched: [5:0.50]
1320; ZNVER1-NEXT:    cmoval (%rdx), %edi # sched: [5:0.50]
1321; ZNVER1-NEXT:    cmoval (%rdx), %edi # sched: [5:0.50]
1322; ZNVER1-NEXT:    cmovsl (%rdx), %edi # sched: [5:0.50]
1323; ZNVER1-NEXT:    cmovnsl (%rdx), %edi # sched: [5:0.50]
1324; ZNVER1-NEXT:    cmovpl (%rdx), %edi # sched: [5:0.50]
1325; ZNVER1-NEXT:    cmovpl (%rdx), %edi # sched: [5:0.50]
1326; ZNVER1-NEXT:    cmovnpl (%rdx), %edi # sched: [5:0.50]
1327; ZNVER1-NEXT:    cmovnpl (%rdx), %edi # sched: [5:0.50]
1328; ZNVER1-NEXT:    cmovll (%rdx), %edi # sched: [5:0.50]
1329; ZNVER1-NEXT:    cmovll (%rdx), %edi # sched: [5:0.50]
1330; ZNVER1-NEXT:    cmovgel (%rdx), %edi # sched: [5:0.50]
1331; ZNVER1-NEXT:    cmovgel (%rdx), %edi # sched: [5:0.50]
1332; ZNVER1-NEXT:    cmovlel (%rdx), %edi # sched: [5:0.50]
1333; ZNVER1-NEXT:    cmovlel (%rdx), %edi # sched: [5:0.50]
1334; ZNVER1-NEXT:    cmovgl (%rdx), %edi # sched: [5:0.50]
1335; ZNVER1-NEXT:    cmovgl (%rdx), %edi # sched: [5:0.50]
1336; ZNVER1-NEXT:    #NO_APP
1337; ZNVER1-NEXT:    retq # sched: [1:0.50]
1338  call void asm sideeffect "cmovol $1, $0 \0A\09 cmovnol $1, $0 \0A\09 cmovbl $1, $0 \0A\09 cmovcl $1, $0 \0A\09 cmovnael $1, $0 \0A\09 cmovnbl $1, $0 \0A\09 cmovncl $1, $0 \0A\09 cmovael $1, $0 \0A\09 cmovzl $1, $0 \0A\09 cmovel $1, $0 \0A\09 cmovnzl $1, $0 \0A\09 cmovnel $1, $0 \0A\09 cmovbel $1, $0 \0A\09 cmovnal $1, $0 \0A\09 cmovnbel $1, $0 \0A\09 cmoval $1, $0 \0A\09 cmovsl $1, $0 \0A\09 cmovnsl $1, $0 \0A\09 cmovpl $1, $0 \0A\09 cmovpel $1, $0 \0A\09 cmovnpl $1, $0 \0A\09 cmovpol $1, $0 \0A\09 cmovll $1, $0 \0A\09 cmovngel $1, $0 \0A\09 cmovnll $1, $0 \0A\09 cmovgel $1, $0 \0A\09 cmovlel $1, $0 \0A\09 cmovngl $1, $0 \0A\09 cmovnlel $1, $0 \0A\09 cmovgl $1, $0 \0A\09 cmovol $2, $0 \0A\09 cmovnol $2, $0 \0A\09 cmovbl $2, $0 \0A\09 cmovcl $2, $0 \0A\09 cmovnael $2, $0 \0A\09 cmovnbl $2, $0 \0A\09 cmovncl $2, $0 \0A\09 cmovael $2, $0 \0A\09 cmovzl $2, $0 \0A\09 cmovel $2, $0 \0A\09 cmovnzl $2, $0 \0A\09 cmovnel $2, $0 \0A\09 cmovbel $2, $0 \0A\09 cmovnal $2, $0 \0A\09 cmovnbel $2, $0 \0A\09 cmoval $2, $0 \0A\09 cmovsl $2, $0 \0A\09 cmovnsl $2, $0 \0A\09 cmovpl $2, $0 \0A\09 cmovpel $2, $0 \0A\09 cmovnpl $2, $0 \0A\09 cmovpol $2, $0 \0A\09 cmovll $2, $0 \0A\09 cmovngel $2, $0 \0A\09 cmovnll $2, $0 \0A\09 cmovgel $2, $0 \0A\09 cmovlel $2, $0 \0A\09 cmovngl $2, $0 \0A\09 cmovnlel $2, $0 \0A\09 cmovgl $2, $0", "r,r,*m"(i32 %a0, i32 %a1, i32 *%a2)
1339  ret void
1340}
1341
1342define void @test_cmov_64(i64 %a0, i64 %a1, i64 *%a2) optsize {
1343; GENERIC-LABEL: test_cmov_64:
1344; GENERIC:       # %bb.0:
1345; GENERIC-NEXT:    #APP
1346; GENERIC-NEXT:    cmovoq %rsi, %rdi # sched: [2:0.67]
1347; GENERIC-NEXT:    cmovnoq %rsi, %rdi # sched: [2:0.67]
1348; GENERIC-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
1349; GENERIC-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
1350; GENERIC-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
1351; GENERIC-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
1352; GENERIC-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
1353; GENERIC-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
1354; GENERIC-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.67]
1355; GENERIC-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.67]
1356; GENERIC-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.67]
1357; GENERIC-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.67]
1358; GENERIC-NEXT:    cmovbeq %rsi, %rdi # sched: [3:1.00]
1359; GENERIC-NEXT:    cmovbeq %rsi, %rdi # sched: [3:1.00]
1360; GENERIC-NEXT:    cmovaq %rsi, %rdi # sched: [3:1.00]
1361; GENERIC-NEXT:    cmovaq %rsi, %rdi # sched: [3:1.00]
1362; GENERIC-NEXT:    cmovsq %rsi, %rdi # sched: [2:0.67]
1363; GENERIC-NEXT:    cmovnsq %rsi, %rdi # sched: [2:0.67]
1364; GENERIC-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.67]
1365; GENERIC-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.67]
1366; GENERIC-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.67]
1367; GENERIC-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.67]
1368; GENERIC-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.67]
1369; GENERIC-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.67]
1370; GENERIC-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.67]
1371; GENERIC-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.67]
1372; GENERIC-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.67]
1373; GENERIC-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.67]
1374; GENERIC-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.67]
1375; GENERIC-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.67]
1376; GENERIC-NEXT:    cmovoq (%rdx), %rdi # sched: [7:0.67]
1377; GENERIC-NEXT:    cmovnoq (%rdx), %rdi # sched: [7:0.67]
1378; GENERIC-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
1379; GENERIC-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
1380; GENERIC-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
1381; GENERIC-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
1382; GENERIC-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
1383; GENERIC-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
1384; GENERIC-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.67]
1385; GENERIC-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.67]
1386; GENERIC-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.67]
1387; GENERIC-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.67]
1388; GENERIC-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:1.00]
1389; GENERIC-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:1.00]
1390; GENERIC-NEXT:    cmovaq (%rdx), %rdi # sched: [8:1.00]
1391; GENERIC-NEXT:    cmovaq (%rdx), %rdi # sched: [8:1.00]
1392; GENERIC-NEXT:    cmovsq (%rdx), %rdi # sched: [7:0.67]
1393; GENERIC-NEXT:    cmovnsq (%rdx), %rdi # sched: [7:0.67]
1394; GENERIC-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.67]
1395; GENERIC-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.67]
1396; GENERIC-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.67]
1397; GENERIC-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.67]
1398; GENERIC-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.67]
1399; GENERIC-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.67]
1400; GENERIC-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.67]
1401; GENERIC-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.67]
1402; GENERIC-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.67]
1403; GENERIC-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.67]
1404; GENERIC-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.67]
1405; GENERIC-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.67]
1406; GENERIC-NEXT:    #NO_APP
1407; GENERIC-NEXT:    retq # sched: [1:1.00]
1408;
1409; ATOM-LABEL: test_cmov_64:
1410; ATOM:       # %bb.0:
1411; ATOM-NEXT:    #APP
1412; ATOM-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
1413; ATOM-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
1414; ATOM-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1415; ATOM-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1416; ATOM-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1417; ATOM-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1418; ATOM-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1419; ATOM-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1420; ATOM-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1421; ATOM-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1422; ATOM-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1423; ATOM-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1424; ATOM-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.50]
1425; ATOM-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.50]
1426; ATOM-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.50]
1427; ATOM-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.50]
1428; ATOM-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
1429; ATOM-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
1430; ATOM-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1431; ATOM-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1432; ATOM-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1433; ATOM-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1434; ATOM-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1435; ATOM-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1436; ATOM-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1437; ATOM-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1438; ATOM-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1439; ATOM-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1440; ATOM-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1441; ATOM-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1442; ATOM-NEXT:    cmovoq (%rdx), %rdi # sched: [1:1.00]
1443; ATOM-NEXT:    cmovnoq (%rdx), %rdi # sched: [1:1.00]
1444; ATOM-NEXT:    cmovbq (%rdx), %rdi # sched: [1:1.00]
1445; ATOM-NEXT:    cmovbq (%rdx), %rdi # sched: [1:1.00]
1446; ATOM-NEXT:    cmovbq (%rdx), %rdi # sched: [1:1.00]
1447; ATOM-NEXT:    cmovaeq (%rdx), %rdi # sched: [1:1.00]
1448; ATOM-NEXT:    cmovaeq (%rdx), %rdi # sched: [1:1.00]
1449; ATOM-NEXT:    cmovaeq (%rdx), %rdi # sched: [1:1.00]
1450; ATOM-NEXT:    cmoveq (%rdx), %rdi # sched: [1:1.00]
1451; ATOM-NEXT:    cmoveq (%rdx), %rdi # sched: [1:1.00]
1452; ATOM-NEXT:    cmovneq (%rdx), %rdi # sched: [1:1.00]
1453; ATOM-NEXT:    cmovneq (%rdx), %rdi # sched: [1:1.00]
1454; ATOM-NEXT:    cmovbeq (%rdx), %rdi # sched: [1:1.00]
1455; ATOM-NEXT:    cmovbeq (%rdx), %rdi # sched: [1:1.00]
1456; ATOM-NEXT:    cmovaq (%rdx), %rdi # sched: [1:1.00]
1457; ATOM-NEXT:    cmovaq (%rdx), %rdi # sched: [1:1.00]
1458; ATOM-NEXT:    cmovsq (%rdx), %rdi # sched: [1:1.00]
1459; ATOM-NEXT:    cmovnsq (%rdx), %rdi # sched: [1:1.00]
1460; ATOM-NEXT:    cmovpq (%rdx), %rdi # sched: [1:1.00]
1461; ATOM-NEXT:    cmovpq (%rdx), %rdi # sched: [1:1.00]
1462; ATOM-NEXT:    cmovnpq (%rdx), %rdi # sched: [1:1.00]
1463; ATOM-NEXT:    cmovnpq (%rdx), %rdi # sched: [1:1.00]
1464; ATOM-NEXT:    cmovlq (%rdx), %rdi # sched: [1:1.00]
1465; ATOM-NEXT:    cmovlq (%rdx), %rdi # sched: [1:1.00]
1466; ATOM-NEXT:    cmovgeq (%rdx), %rdi # sched: [1:1.00]
1467; ATOM-NEXT:    cmovgeq (%rdx), %rdi # sched: [1:1.00]
1468; ATOM-NEXT:    cmovleq (%rdx), %rdi # sched: [1:1.00]
1469; ATOM-NEXT:    cmovleq (%rdx), %rdi # sched: [1:1.00]
1470; ATOM-NEXT:    cmovgq (%rdx), %rdi # sched: [1:1.00]
1471; ATOM-NEXT:    cmovgq (%rdx), %rdi # sched: [1:1.00]
1472; ATOM-NEXT:    #NO_APP
1473; ATOM-NEXT:    retq # sched: [79:39.50]
1474;
1475; SLM-LABEL: test_cmov_64:
1476; SLM:       # %bb.0:
1477; SLM-NEXT:    #APP
1478; SLM-NEXT:    cmovoq %rsi, %rdi # sched: [2:1.00]
1479; SLM-NEXT:    cmovnoq %rsi, %rdi # sched: [2:1.00]
1480; SLM-NEXT:    cmovbq %rsi, %rdi # sched: [2:1.00]
1481; SLM-NEXT:    cmovbq %rsi, %rdi # sched: [2:1.00]
1482; SLM-NEXT:    cmovbq %rsi, %rdi # sched: [2:1.00]
1483; SLM-NEXT:    cmovaeq %rsi, %rdi # sched: [2:1.00]
1484; SLM-NEXT:    cmovaeq %rsi, %rdi # sched: [2:1.00]
1485; SLM-NEXT:    cmovaeq %rsi, %rdi # sched: [2:1.00]
1486; SLM-NEXT:    cmoveq %rsi, %rdi # sched: [2:1.00]
1487; SLM-NEXT:    cmoveq %rsi, %rdi # sched: [2:1.00]
1488; SLM-NEXT:    cmovneq %rsi, %rdi # sched: [2:1.00]
1489; SLM-NEXT:    cmovneq %rsi, %rdi # sched: [2:1.00]
1490; SLM-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
1491; SLM-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
1492; SLM-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
1493; SLM-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
1494; SLM-NEXT:    cmovsq %rsi, %rdi # sched: [2:1.00]
1495; SLM-NEXT:    cmovnsq %rsi, %rdi # sched: [2:1.00]
1496; SLM-NEXT:    cmovpq %rsi, %rdi # sched: [2:1.00]
1497; SLM-NEXT:    cmovpq %rsi, %rdi # sched: [2:1.00]
1498; SLM-NEXT:    cmovnpq %rsi, %rdi # sched: [2:1.00]
1499; SLM-NEXT:    cmovnpq %rsi, %rdi # sched: [2:1.00]
1500; SLM-NEXT:    cmovlq %rsi, %rdi # sched: [2:1.00]
1501; SLM-NEXT:    cmovlq %rsi, %rdi # sched: [2:1.00]
1502; SLM-NEXT:    cmovgeq %rsi, %rdi # sched: [2:1.00]
1503; SLM-NEXT:    cmovgeq %rsi, %rdi # sched: [2:1.00]
1504; SLM-NEXT:    cmovleq %rsi, %rdi # sched: [2:1.00]
1505; SLM-NEXT:    cmovleq %rsi, %rdi # sched: [2:1.00]
1506; SLM-NEXT:    cmovgq %rsi, %rdi # sched: [2:1.00]
1507; SLM-NEXT:    cmovgq %rsi, %rdi # sched: [2:1.00]
1508; SLM-NEXT:    cmovoq (%rdx), %rdi # sched: [5:1.00]
1509; SLM-NEXT:    cmovnoq (%rdx), %rdi # sched: [5:1.00]
1510; SLM-NEXT:    cmovbq (%rdx), %rdi # sched: [5:1.00]
1511; SLM-NEXT:    cmovbq (%rdx), %rdi # sched: [5:1.00]
1512; SLM-NEXT:    cmovbq (%rdx), %rdi # sched: [5:1.00]
1513; SLM-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:1.00]
1514; SLM-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:1.00]
1515; SLM-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:1.00]
1516; SLM-NEXT:    cmoveq (%rdx), %rdi # sched: [5:1.00]
1517; SLM-NEXT:    cmoveq (%rdx), %rdi # sched: [5:1.00]
1518; SLM-NEXT:    cmovneq (%rdx), %rdi # sched: [5:1.00]
1519; SLM-NEXT:    cmovneq (%rdx), %rdi # sched: [5:1.00]
1520; SLM-NEXT:    cmovbeq (%rdx), %rdi # sched: [5:1.00]
1521; SLM-NEXT:    cmovbeq (%rdx), %rdi # sched: [5:1.00]
1522; SLM-NEXT:    cmovaq (%rdx), %rdi # sched: [5:1.00]
1523; SLM-NEXT:    cmovaq (%rdx), %rdi # sched: [5:1.00]
1524; SLM-NEXT:    cmovsq (%rdx), %rdi # sched: [5:1.00]
1525; SLM-NEXT:    cmovnsq (%rdx), %rdi # sched: [5:1.00]
1526; SLM-NEXT:    cmovpq (%rdx), %rdi # sched: [5:1.00]
1527; SLM-NEXT:    cmovpq (%rdx), %rdi # sched: [5:1.00]
1528; SLM-NEXT:    cmovnpq (%rdx), %rdi # sched: [5:1.00]
1529; SLM-NEXT:    cmovnpq (%rdx), %rdi # sched: [5:1.00]
1530; SLM-NEXT:    cmovlq (%rdx), %rdi # sched: [5:1.00]
1531; SLM-NEXT:    cmovlq (%rdx), %rdi # sched: [5:1.00]
1532; SLM-NEXT:    cmovgeq (%rdx), %rdi # sched: [5:1.00]
1533; SLM-NEXT:    cmovgeq (%rdx), %rdi # sched: [5:1.00]
1534; SLM-NEXT:    cmovleq (%rdx), %rdi # sched: [5:1.00]
1535; SLM-NEXT:    cmovleq (%rdx), %rdi # sched: [5:1.00]
1536; SLM-NEXT:    cmovgq (%rdx), %rdi # sched: [5:1.00]
1537; SLM-NEXT:    cmovgq (%rdx), %rdi # sched: [5:1.00]
1538; SLM-NEXT:    #NO_APP
1539; SLM-NEXT:    retq # sched: [4:1.00]
1540;
1541; SANDY-LABEL: test_cmov_64:
1542; SANDY:       # %bb.0:
1543; SANDY-NEXT:    #APP
1544; SANDY-NEXT:    cmovoq %rsi, %rdi # sched: [2:0.67]
1545; SANDY-NEXT:    cmovnoq %rsi, %rdi # sched: [2:0.67]
1546; SANDY-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
1547; SANDY-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
1548; SANDY-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.67]
1549; SANDY-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
1550; SANDY-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
1551; SANDY-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.67]
1552; SANDY-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.67]
1553; SANDY-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.67]
1554; SANDY-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.67]
1555; SANDY-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.67]
1556; SANDY-NEXT:    cmovbeq %rsi, %rdi # sched: [3:1.00]
1557; SANDY-NEXT:    cmovbeq %rsi, %rdi # sched: [3:1.00]
1558; SANDY-NEXT:    cmovaq %rsi, %rdi # sched: [3:1.00]
1559; SANDY-NEXT:    cmovaq %rsi, %rdi # sched: [3:1.00]
1560; SANDY-NEXT:    cmovsq %rsi, %rdi # sched: [2:0.67]
1561; SANDY-NEXT:    cmovnsq %rsi, %rdi # sched: [2:0.67]
1562; SANDY-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.67]
1563; SANDY-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.67]
1564; SANDY-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.67]
1565; SANDY-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.67]
1566; SANDY-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.67]
1567; SANDY-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.67]
1568; SANDY-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.67]
1569; SANDY-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.67]
1570; SANDY-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.67]
1571; SANDY-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.67]
1572; SANDY-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.67]
1573; SANDY-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.67]
1574; SANDY-NEXT:    cmovoq (%rdx), %rdi # sched: [7:0.67]
1575; SANDY-NEXT:    cmovnoq (%rdx), %rdi # sched: [7:0.67]
1576; SANDY-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
1577; SANDY-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
1578; SANDY-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.67]
1579; SANDY-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
1580; SANDY-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
1581; SANDY-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.67]
1582; SANDY-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.67]
1583; SANDY-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.67]
1584; SANDY-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.67]
1585; SANDY-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.67]
1586; SANDY-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:1.00]
1587; SANDY-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:1.00]
1588; SANDY-NEXT:    cmovaq (%rdx), %rdi # sched: [8:1.00]
1589; SANDY-NEXT:    cmovaq (%rdx), %rdi # sched: [8:1.00]
1590; SANDY-NEXT:    cmovsq (%rdx), %rdi # sched: [7:0.67]
1591; SANDY-NEXT:    cmovnsq (%rdx), %rdi # sched: [7:0.67]
1592; SANDY-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.67]
1593; SANDY-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.67]
1594; SANDY-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.67]
1595; SANDY-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.67]
1596; SANDY-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.67]
1597; SANDY-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.67]
1598; SANDY-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.67]
1599; SANDY-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.67]
1600; SANDY-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.67]
1601; SANDY-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.67]
1602; SANDY-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.67]
1603; SANDY-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.67]
1604; SANDY-NEXT:    #NO_APP
1605; SANDY-NEXT:    retq # sched: [1:1.00]
1606;
1607; HASWELL-LABEL: test_cmov_64:
1608; HASWELL:       # %bb.0:
1609; HASWELL-NEXT:    #APP
1610; HASWELL-NEXT:    cmovoq %rsi, %rdi # sched: [2:0.50]
1611; HASWELL-NEXT:    cmovnoq %rsi, %rdi # sched: [2:0.50]
1612; HASWELL-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.50]
1613; HASWELL-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.50]
1614; HASWELL-NEXT:    cmovbq %rsi, %rdi # sched: [2:0.50]
1615; HASWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.50]
1616; HASWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.50]
1617; HASWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [2:0.50]
1618; HASWELL-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.50]
1619; HASWELL-NEXT:    cmoveq %rsi, %rdi # sched: [2:0.50]
1620; HASWELL-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.50]
1621; HASWELL-NEXT:    cmovneq %rsi, %rdi # sched: [2:0.50]
1622; HASWELL-NEXT:    cmovbeq %rsi, %rdi # sched: [3:0.75]
1623; HASWELL-NEXT:    cmovbeq %rsi, %rdi # sched: [3:0.75]
1624; HASWELL-NEXT:    cmovaq %rsi, %rdi # sched: [3:0.75]
1625; HASWELL-NEXT:    cmovaq %rsi, %rdi # sched: [3:0.75]
1626; HASWELL-NEXT:    cmovsq %rsi, %rdi # sched: [2:0.50]
1627; HASWELL-NEXT:    cmovnsq %rsi, %rdi # sched: [2:0.50]
1628; HASWELL-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.50]
1629; HASWELL-NEXT:    cmovpq %rsi, %rdi # sched: [2:0.50]
1630; HASWELL-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.50]
1631; HASWELL-NEXT:    cmovnpq %rsi, %rdi # sched: [2:0.50]
1632; HASWELL-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.50]
1633; HASWELL-NEXT:    cmovlq %rsi, %rdi # sched: [2:0.50]
1634; HASWELL-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.50]
1635; HASWELL-NEXT:    cmovgeq %rsi, %rdi # sched: [2:0.50]
1636; HASWELL-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.50]
1637; HASWELL-NEXT:    cmovleq %rsi, %rdi # sched: [2:0.50]
1638; HASWELL-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.50]
1639; HASWELL-NEXT:    cmovgq %rsi, %rdi # sched: [2:0.50]
1640; HASWELL-NEXT:    cmovoq (%rdx), %rdi # sched: [7:0.50]
1641; HASWELL-NEXT:    cmovnoq (%rdx), %rdi # sched: [7:0.50]
1642; HASWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.50]
1643; HASWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.50]
1644; HASWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [7:0.50]
1645; HASWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.50]
1646; HASWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.50]
1647; HASWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [7:0.50]
1648; HASWELL-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.50]
1649; HASWELL-NEXT:    cmoveq (%rdx), %rdi # sched: [7:0.50]
1650; HASWELL-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.50]
1651; HASWELL-NEXT:    cmovneq (%rdx), %rdi # sched: [7:0.50]
1652; HASWELL-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:0.75]
1653; HASWELL-NEXT:    cmovbeq (%rdx), %rdi # sched: [8:0.75]
1654; HASWELL-NEXT:    cmovaq (%rdx), %rdi # sched: [8:0.75]
1655; HASWELL-NEXT:    cmovaq (%rdx), %rdi # sched: [8:0.75]
1656; HASWELL-NEXT:    cmovsq (%rdx), %rdi # sched: [7:0.50]
1657; HASWELL-NEXT:    cmovnsq (%rdx), %rdi # sched: [7:0.50]
1658; HASWELL-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.50]
1659; HASWELL-NEXT:    cmovpq (%rdx), %rdi # sched: [7:0.50]
1660; HASWELL-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.50]
1661; HASWELL-NEXT:    cmovnpq (%rdx), %rdi # sched: [7:0.50]
1662; HASWELL-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.50]
1663; HASWELL-NEXT:    cmovlq (%rdx), %rdi # sched: [7:0.50]
1664; HASWELL-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.50]
1665; HASWELL-NEXT:    cmovgeq (%rdx), %rdi # sched: [7:0.50]
1666; HASWELL-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.50]
1667; HASWELL-NEXT:    cmovleq (%rdx), %rdi # sched: [7:0.50]
1668; HASWELL-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.50]
1669; HASWELL-NEXT:    cmovgq (%rdx), %rdi # sched: [7:0.50]
1670; HASWELL-NEXT:    #NO_APP
1671; HASWELL-NEXT:    retq # sched: [7:1.00]
1672;
1673; BROADWELL-LABEL: test_cmov_64:
1674; BROADWELL:       # %bb.0:
1675; BROADWELL-NEXT:    #APP
1676; BROADWELL-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
1677; BROADWELL-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
1678; BROADWELL-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1679; BROADWELL-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1680; BROADWELL-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1681; BROADWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1682; BROADWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1683; BROADWELL-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1684; BROADWELL-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1685; BROADWELL-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1686; BROADWELL-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1687; BROADWELL-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1688; BROADWELL-NEXT:    cmovbeq %rsi, %rdi # sched: [2:0.50]
1689; BROADWELL-NEXT:    cmovbeq %rsi, %rdi # sched: [2:0.50]
1690; BROADWELL-NEXT:    cmovaq %rsi, %rdi # sched: [2:0.50]
1691; BROADWELL-NEXT:    cmovaq %rsi, %rdi # sched: [2:0.50]
1692; BROADWELL-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
1693; BROADWELL-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
1694; BROADWELL-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1695; BROADWELL-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1696; BROADWELL-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1697; BROADWELL-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1698; BROADWELL-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1699; BROADWELL-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1700; BROADWELL-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1701; BROADWELL-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1702; BROADWELL-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1703; BROADWELL-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1704; BROADWELL-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1705; BROADWELL-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1706; BROADWELL-NEXT:    cmovoq (%rdx), %rdi # sched: [6:0.50]
1707; BROADWELL-NEXT:    cmovnoq (%rdx), %rdi # sched: [6:0.50]
1708; BROADWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
1709; BROADWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
1710; BROADWELL-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
1711; BROADWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
1712; BROADWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
1713; BROADWELL-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
1714; BROADWELL-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
1715; BROADWELL-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
1716; BROADWELL-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
1717; BROADWELL-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
1718; BROADWELL-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:0.50]
1719; BROADWELL-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:0.50]
1720; BROADWELL-NEXT:    cmovaq (%rdx), %rdi # sched: [7:0.50]
1721; BROADWELL-NEXT:    cmovaq (%rdx), %rdi # sched: [7:0.50]
1722; BROADWELL-NEXT:    cmovsq (%rdx), %rdi # sched: [6:0.50]
1723; BROADWELL-NEXT:    cmovnsq (%rdx), %rdi # sched: [6:0.50]
1724; BROADWELL-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
1725; BROADWELL-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
1726; BROADWELL-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
1727; BROADWELL-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
1728; BROADWELL-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
1729; BROADWELL-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
1730; BROADWELL-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
1731; BROADWELL-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
1732; BROADWELL-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
1733; BROADWELL-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
1734; BROADWELL-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
1735; BROADWELL-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
1736; BROADWELL-NEXT:    #NO_APP
1737; BROADWELL-NEXT:    retq # sched: [7:1.00]
1738;
1739; SKYLAKE-LABEL: test_cmov_64:
1740; SKYLAKE:       # %bb.0:
1741; SKYLAKE-NEXT:    #APP
1742; SKYLAKE-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
1743; SKYLAKE-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
1744; SKYLAKE-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1745; SKYLAKE-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1746; SKYLAKE-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1747; SKYLAKE-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1748; SKYLAKE-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1749; SKYLAKE-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1750; SKYLAKE-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1751; SKYLAKE-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1752; SKYLAKE-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1753; SKYLAKE-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1754; SKYLAKE-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
1755; SKYLAKE-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
1756; SKYLAKE-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
1757; SKYLAKE-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
1758; SKYLAKE-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
1759; SKYLAKE-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
1760; SKYLAKE-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1761; SKYLAKE-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1762; SKYLAKE-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1763; SKYLAKE-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1764; SKYLAKE-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1765; SKYLAKE-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1766; SKYLAKE-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1767; SKYLAKE-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1768; SKYLAKE-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1769; SKYLAKE-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1770; SKYLAKE-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1771; SKYLAKE-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1772; SKYLAKE-NEXT:    cmovoq (%rdx), %rdi # sched: [6:0.50]
1773; SKYLAKE-NEXT:    cmovnoq (%rdx), %rdi # sched: [6:0.50]
1774; SKYLAKE-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
1775; SKYLAKE-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
1776; SKYLAKE-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
1777; SKYLAKE-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
1778; SKYLAKE-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
1779; SKYLAKE-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
1780; SKYLAKE-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
1781; SKYLAKE-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
1782; SKYLAKE-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
1783; SKYLAKE-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
1784; SKYLAKE-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:1.00]
1785; SKYLAKE-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:1.00]
1786; SKYLAKE-NEXT:    cmovaq (%rdx), %rdi # sched: [7:1.00]
1787; SKYLAKE-NEXT:    cmovaq (%rdx), %rdi # sched: [7:1.00]
1788; SKYLAKE-NEXT:    cmovsq (%rdx), %rdi # sched: [6:0.50]
1789; SKYLAKE-NEXT:    cmovnsq (%rdx), %rdi # sched: [6:0.50]
1790; SKYLAKE-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
1791; SKYLAKE-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
1792; SKYLAKE-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
1793; SKYLAKE-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
1794; SKYLAKE-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
1795; SKYLAKE-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
1796; SKYLAKE-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
1797; SKYLAKE-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
1798; SKYLAKE-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
1799; SKYLAKE-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
1800; SKYLAKE-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
1801; SKYLAKE-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
1802; SKYLAKE-NEXT:    #NO_APP
1803; SKYLAKE-NEXT:    retq # sched: [7:1.00]
1804;
1805; SKX-LABEL: test_cmov_64:
1806; SKX:       # %bb.0:
1807; SKX-NEXT:    #APP
1808; SKX-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
1809; SKX-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
1810; SKX-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1811; SKX-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1812; SKX-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1813; SKX-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1814; SKX-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1815; SKX-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1816; SKX-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1817; SKX-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1818; SKX-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1819; SKX-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1820; SKX-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
1821; SKX-NEXT:    cmovbeq %rsi, %rdi # sched: [2:1.00]
1822; SKX-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
1823; SKX-NEXT:    cmovaq %rsi, %rdi # sched: [2:1.00]
1824; SKX-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
1825; SKX-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
1826; SKX-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1827; SKX-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1828; SKX-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1829; SKX-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1830; SKX-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1831; SKX-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1832; SKX-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1833; SKX-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1834; SKX-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1835; SKX-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1836; SKX-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1837; SKX-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1838; SKX-NEXT:    cmovoq (%rdx), %rdi # sched: [6:0.50]
1839; SKX-NEXT:    cmovnoq (%rdx), %rdi # sched: [6:0.50]
1840; SKX-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
1841; SKX-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
1842; SKX-NEXT:    cmovbq (%rdx), %rdi # sched: [6:0.50]
1843; SKX-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
1844; SKX-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
1845; SKX-NEXT:    cmovaeq (%rdx), %rdi # sched: [6:0.50]
1846; SKX-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
1847; SKX-NEXT:    cmoveq (%rdx), %rdi # sched: [6:0.50]
1848; SKX-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
1849; SKX-NEXT:    cmovneq (%rdx), %rdi # sched: [6:0.50]
1850; SKX-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:1.00]
1851; SKX-NEXT:    cmovbeq (%rdx), %rdi # sched: [7:1.00]
1852; SKX-NEXT:    cmovaq (%rdx), %rdi # sched: [7:1.00]
1853; SKX-NEXT:    cmovaq (%rdx), %rdi # sched: [7:1.00]
1854; SKX-NEXT:    cmovsq (%rdx), %rdi # sched: [6:0.50]
1855; SKX-NEXT:    cmovnsq (%rdx), %rdi # sched: [6:0.50]
1856; SKX-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
1857; SKX-NEXT:    cmovpq (%rdx), %rdi # sched: [6:0.50]
1858; SKX-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
1859; SKX-NEXT:    cmovnpq (%rdx), %rdi # sched: [6:0.50]
1860; SKX-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
1861; SKX-NEXT:    cmovlq (%rdx), %rdi # sched: [6:0.50]
1862; SKX-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
1863; SKX-NEXT:    cmovgeq (%rdx), %rdi # sched: [6:0.50]
1864; SKX-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
1865; SKX-NEXT:    cmovleq (%rdx), %rdi # sched: [6:0.50]
1866; SKX-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
1867; SKX-NEXT:    cmovgq (%rdx), %rdi # sched: [6:0.50]
1868; SKX-NEXT:    #NO_APP
1869; SKX-NEXT:    retq # sched: [7:1.00]
1870;
1871; BTVER2-LABEL: test_cmov_64:
1872; BTVER2:       # %bb.0:
1873; BTVER2-NEXT:    #APP
1874; BTVER2-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.50]
1875; BTVER2-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.50]
1876; BTVER2-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1877; BTVER2-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1878; BTVER2-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.50]
1879; BTVER2-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1880; BTVER2-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1881; BTVER2-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.50]
1882; BTVER2-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1883; BTVER2-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.50]
1884; BTVER2-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1885; BTVER2-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.50]
1886; BTVER2-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.50]
1887; BTVER2-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.50]
1888; BTVER2-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.50]
1889; BTVER2-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.50]
1890; BTVER2-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.50]
1891; BTVER2-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.50]
1892; BTVER2-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1893; BTVER2-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.50]
1894; BTVER2-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1895; BTVER2-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.50]
1896; BTVER2-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1897; BTVER2-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.50]
1898; BTVER2-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1899; BTVER2-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.50]
1900; BTVER2-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1901; BTVER2-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.50]
1902; BTVER2-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1903; BTVER2-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.50]
1904; BTVER2-NEXT:    cmovoq (%rdx), %rdi # sched: [4:1.00]
1905; BTVER2-NEXT:    cmovnoq (%rdx), %rdi # sched: [4:1.00]
1906; BTVER2-NEXT:    cmovbq (%rdx), %rdi # sched: [4:1.00]
1907; BTVER2-NEXT:    cmovbq (%rdx), %rdi # sched: [4:1.00]
1908; BTVER2-NEXT:    cmovbq (%rdx), %rdi # sched: [4:1.00]
1909; BTVER2-NEXT:    cmovaeq (%rdx), %rdi # sched: [4:1.00]
1910; BTVER2-NEXT:    cmovaeq (%rdx), %rdi # sched: [4:1.00]
1911; BTVER2-NEXT:    cmovaeq (%rdx), %rdi # sched: [4:1.00]
1912; BTVER2-NEXT:    cmoveq (%rdx), %rdi # sched: [4:1.00]
1913; BTVER2-NEXT:    cmoveq (%rdx), %rdi # sched: [4:1.00]
1914; BTVER2-NEXT:    cmovneq (%rdx), %rdi # sched: [4:1.00]
1915; BTVER2-NEXT:    cmovneq (%rdx), %rdi # sched: [4:1.00]
1916; BTVER2-NEXT:    cmovbeq (%rdx), %rdi # sched: [4:1.00]
1917; BTVER2-NEXT:    cmovbeq (%rdx), %rdi # sched: [4:1.00]
1918; BTVER2-NEXT:    cmovaq (%rdx), %rdi # sched: [4:1.00]
1919; BTVER2-NEXT:    cmovaq (%rdx), %rdi # sched: [4:1.00]
1920; BTVER2-NEXT:    cmovsq (%rdx), %rdi # sched: [4:1.00]
1921; BTVER2-NEXT:    cmovnsq (%rdx), %rdi # sched: [4:1.00]
1922; BTVER2-NEXT:    cmovpq (%rdx), %rdi # sched: [4:1.00]
1923; BTVER2-NEXT:    cmovpq (%rdx), %rdi # sched: [4:1.00]
1924; BTVER2-NEXT:    cmovnpq (%rdx), %rdi # sched: [4:1.00]
1925; BTVER2-NEXT:    cmovnpq (%rdx), %rdi # sched: [4:1.00]
1926; BTVER2-NEXT:    cmovlq (%rdx), %rdi # sched: [4:1.00]
1927; BTVER2-NEXT:    cmovlq (%rdx), %rdi # sched: [4:1.00]
1928; BTVER2-NEXT:    cmovgeq (%rdx), %rdi # sched: [4:1.00]
1929; BTVER2-NEXT:    cmovgeq (%rdx), %rdi # sched: [4:1.00]
1930; BTVER2-NEXT:    cmovleq (%rdx), %rdi # sched: [4:1.00]
1931; BTVER2-NEXT:    cmovleq (%rdx), %rdi # sched: [4:1.00]
1932; BTVER2-NEXT:    cmovgq (%rdx), %rdi # sched: [4:1.00]
1933; BTVER2-NEXT:    cmovgq (%rdx), %rdi # sched: [4:1.00]
1934; BTVER2-NEXT:    #NO_APP
1935; BTVER2-NEXT:    retq # sched: [4:1.00]
1936;
1937; ZNVER1-LABEL: test_cmov_64:
1938; ZNVER1:       # %bb.0:
1939; ZNVER1-NEXT:    #APP
1940; ZNVER1-NEXT:    cmovoq %rsi, %rdi # sched: [1:0.25]
1941; ZNVER1-NEXT:    cmovnoq %rsi, %rdi # sched: [1:0.25]
1942; ZNVER1-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.25]
1943; ZNVER1-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.25]
1944; ZNVER1-NEXT:    cmovbq %rsi, %rdi # sched: [1:0.25]
1945; ZNVER1-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.25]
1946; ZNVER1-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.25]
1947; ZNVER1-NEXT:    cmovaeq %rsi, %rdi # sched: [1:0.25]
1948; ZNVER1-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.25]
1949; ZNVER1-NEXT:    cmoveq %rsi, %rdi # sched: [1:0.25]
1950; ZNVER1-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.25]
1951; ZNVER1-NEXT:    cmovneq %rsi, %rdi # sched: [1:0.25]
1952; ZNVER1-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.25]
1953; ZNVER1-NEXT:    cmovbeq %rsi, %rdi # sched: [1:0.25]
1954; ZNVER1-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.25]
1955; ZNVER1-NEXT:    cmovaq %rsi, %rdi # sched: [1:0.25]
1956; ZNVER1-NEXT:    cmovsq %rsi, %rdi # sched: [1:0.25]
1957; ZNVER1-NEXT:    cmovnsq %rsi, %rdi # sched: [1:0.25]
1958; ZNVER1-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.25]
1959; ZNVER1-NEXT:    cmovpq %rsi, %rdi # sched: [1:0.25]
1960; ZNVER1-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.25]
1961; ZNVER1-NEXT:    cmovnpq %rsi, %rdi # sched: [1:0.25]
1962; ZNVER1-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.25]
1963; ZNVER1-NEXT:    cmovlq %rsi, %rdi # sched: [1:0.25]
1964; ZNVER1-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.25]
1965; ZNVER1-NEXT:    cmovgeq %rsi, %rdi # sched: [1:0.25]
1966; ZNVER1-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.25]
1967; ZNVER1-NEXT:    cmovleq %rsi, %rdi # sched: [1:0.25]
1968; ZNVER1-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.25]
1969; ZNVER1-NEXT:    cmovgq %rsi, %rdi # sched: [1:0.25]
1970; ZNVER1-NEXT:    cmovoq (%rdx), %rdi # sched: [5:0.50]
1971; ZNVER1-NEXT:    cmovnoq (%rdx), %rdi # sched: [5:0.50]
1972; ZNVER1-NEXT:    cmovbq (%rdx), %rdi # sched: [5:0.50]
1973; ZNVER1-NEXT:    cmovbq (%rdx), %rdi # sched: [5:0.50]
1974; ZNVER1-NEXT:    cmovbq (%rdx), %rdi # sched: [5:0.50]
1975; ZNVER1-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:0.50]
1976; ZNVER1-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:0.50]
1977; ZNVER1-NEXT:    cmovaeq (%rdx), %rdi # sched: [5:0.50]
1978; ZNVER1-NEXT:    cmoveq (%rdx), %rdi # sched: [5:0.50]
1979; ZNVER1-NEXT:    cmoveq (%rdx), %rdi # sched: [5:0.50]
1980; ZNVER1-NEXT:    cmovneq (%rdx), %rdi # sched: [5:0.50]
1981; ZNVER1-NEXT:    cmovneq (%rdx), %rdi # sched: [5:0.50]
1982; ZNVER1-NEXT:    cmovbeq (%rdx), %rdi # sched: [5:0.50]
1983; ZNVER1-NEXT:    cmovbeq (%rdx), %rdi # sched: [5:0.50]
1984; ZNVER1-NEXT:    cmovaq (%rdx), %rdi # sched: [5:0.50]
1985; ZNVER1-NEXT:    cmovaq (%rdx), %rdi # sched: [5:0.50]
1986; ZNVER1-NEXT:    cmovsq (%rdx), %rdi # sched: [5:0.50]
1987; ZNVER1-NEXT:    cmovnsq (%rdx), %rdi # sched: [5:0.50]
1988; ZNVER1-NEXT:    cmovpq (%rdx), %rdi # sched: [5:0.50]
1989; ZNVER1-NEXT:    cmovpq (%rdx), %rdi # sched: [5:0.50]
1990; ZNVER1-NEXT:    cmovnpq (%rdx), %rdi # sched: [5:0.50]
1991; ZNVER1-NEXT:    cmovnpq (%rdx), %rdi # sched: [5:0.50]
1992; ZNVER1-NEXT:    cmovlq (%rdx), %rdi # sched: [5:0.50]
1993; ZNVER1-NEXT:    cmovlq (%rdx), %rdi # sched: [5:0.50]
1994; ZNVER1-NEXT:    cmovgeq (%rdx), %rdi # sched: [5:0.50]
1995; ZNVER1-NEXT:    cmovgeq (%rdx), %rdi # sched: [5:0.50]
1996; ZNVER1-NEXT:    cmovleq (%rdx), %rdi # sched: [5:0.50]
1997; ZNVER1-NEXT:    cmovleq (%rdx), %rdi # sched: [5:0.50]
1998; ZNVER1-NEXT:    cmovgq (%rdx), %rdi # sched: [5:0.50]
1999; ZNVER1-NEXT:    cmovgq (%rdx), %rdi # sched: [5:0.50]
2000; ZNVER1-NEXT:    #NO_APP
2001; ZNVER1-NEXT:    retq # sched: [1:0.50]
2002  call void asm sideeffect "cmovoq $1, $0 \0A\09 cmovnoq $1, $0 \0A\09 cmovbq $1, $0 \0A\09 cmovcq $1, $0 \0A\09 cmovnaeq $1, $0 \0A\09 cmovnbq $1, $0 \0A\09 cmovncq $1, $0 \0A\09 cmovaeq $1, $0 \0A\09 cmovzq $1, $0 \0A\09 cmoveq $1, $0 \0A\09 cmovnzq $1, $0 \0A\09 cmovneq $1, $0 \0A\09 cmovbeq $1, $0 \0A\09 cmovnaq $1, $0 \0A\09 cmovnbeq $1, $0 \0A\09 cmovaq $1, $0 \0A\09 cmovsq $1, $0 \0A\09 cmovnsq $1, $0 \0A\09 cmovpq $1, $0 \0A\09 cmovpeq $1, $0 \0A\09 cmovnpq $1, $0 \0A\09 cmovpoq $1, $0 \0A\09 cmovlq $1, $0 \0A\09 cmovngeq $1, $0 \0A\09 cmovnlq $1, $0 \0A\09 cmovgeq $1, $0 \0A\09 cmovleq $1, $0 \0A\09 cmovngq $1, $0 \0A\09 cmovnleq $1, $0 \0A\09 cmovgq $1, $0 \0A\09 cmovoq $2, $0 \0A\09 cmovnoq $2, $0 \0A\09 cmovbq $2, $0 \0A\09 cmovcq $2, $0 \0A\09 cmovnaeq $2, $0 \0A\09 cmovnbq $2, $0 \0A\09 cmovncq $2, $0 \0A\09 cmovaeq $2, $0 \0A\09 cmovzq $2, $0 \0A\09 cmoveq $2, $0 \0A\09 cmovnzq $2, $0 \0A\09 cmovneq $2, $0 \0A\09 cmovbeq $2, $0 \0A\09 cmovnaq $2, $0 \0A\09 cmovnbeq $2, $0 \0A\09 cmovaq $2, $0 \0A\09 cmovsq $2, $0 \0A\09 cmovnsq $2, $0 \0A\09 cmovpq $2, $0 \0A\09 cmovpeq $2, $0 \0A\09 cmovnpq $2, $0 \0A\09 cmovpoq $2, $0 \0A\09 cmovlq $2, $0 \0A\09 cmovngeq $2, $0 \0A\09 cmovnlq $2, $0 \0A\09 cmovgeq $2, $0 \0A\09 cmovleq $2, $0 \0A\09 cmovngq $2, $0 \0A\09 cmovnleq $2, $0 \0A\09 cmovgq $2, $0", "r,r,*m"(i64 %a0, i64 %a1, i64 *%a2)
2003  ret void
2004}
2005