| ; RUN: llc < %s -march=x86 | FileCheck %s |
| define i32 @test1(i8 %x) nounwind readnone { |
| ; CHECK-NEXT: andl {{.*}}224 |
| ;; Multiple uses of %x but easily extensible. |
| define i32 @test2(i8 %x) nounwind readnone { |
| declare void @use(i32, i8) |
| ;; Multiple uses of %x where we shouldn't extend the load. |
| define void @test3(i8 %x) nounwind readnone { |
| call void @use(i32 %B, i8 %x) |
| ; CHECK: movzbl 16(%esp), [[REGISTER:%e[a-z]{2}]] |
| ; CHECK-NEXT: movl [[REGISTER]], 4(%esp) |
| ; CHECK-NEXT: andl $224, [[REGISTER]] |
| ; CHECK-NEXT: movl [[REGISTER]], (%esp) |
| ; CHECK-NEXT: call{{.*}}use |