1 ; RUN: llc -mattr=-bmi < %s -mtriple=x86_64-linux | FileCheck %s
2 ; RUN: llc -mattr=-bmi < %s -mtriple=x86_64-linux-gnux32 | FileCheck %s
4 ; LLVM creates virtual registers for values live across blocks
5 ; based on the type of the value. Make sure that the extracts
6 ; here use the GR64_NOREX register class for their result,
7 ; instead of plain GR64.
10 ; CHECK: movzbl %{{[abcd]}}h, %e
11 ; CHECK: movzbl %{{[abcd]}}h, %e
12 ; CHECK: movzbl %{{[abcd]}}h, %e
13 ; CHECK: movzbl %{{[abcd]}}h, %e
14 ; CHECK: movzbl %{{[abcd]}}h, %e
15 ; CHECK: movzbl %{{[abcd]}}h, %e
16 ; CHECK: movzbl %{{[abcd]}}h, %e
17 ; CHECK: movzbl %{{[abcd]}}h, %e
20 define i64 @foo(i64 %a, i64 %b, i64 %c, i64 %d,
21 i64 %e, i64 %f, i64 %g, i64 %h) {