| ; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s | |
| declare void @free_v() | |
| define void @f(i32* %x, i32 %c32, i32* %y) { | |
| ; CHECK-LABEL: f | |
| entry: | |
| %v = load i32, i32* %x, !invariant.load !0 | |
| ; CHECK: movl (%rdi), %ebx | |
| ; CHECK: free_v | |
| ; CHECK-NOT: movl (%rdi), %ebx | |
| call void @free_v() | |
| %c = icmp ne i32 %c32, 0 | |
| br i1 %c, label %left, label %merge | |
| left: | |
| store i32 %v, i32* %y | |
| br label %merge | |
| merge: | |
| ret void | |
| } | |
| !0 = !{} |