| ; RUN: opt %s -aa-pipeline=basic-aa -passes=aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s |
| ; |
| ; Generated from: |
| ; |
| ; int foo() { |
| ; int v; |
| ; asm goto("movl $1, %0" : "=m"(v)::: out); |
| ; out: |
| ; return v; |
| ; } |
| |
| target triple = "x86_64-unknown-linux-gnu" |
| |
| ; CHECK: Both ModRef: Ptr: i32* %v <-> callbr void asm "movl $$1, $0", "=*m,!i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull elementtype(i32) %v) |
| |
| |
| define dso_local i32 @foo() { |
| entry: |
| %v = alloca i32, align 4 |
| callbr void asm "movl $$1, $0", "=*m,!i,~{dirflag},~{fpsr},~{flags}"(ptr elementtype(i32) nonnull %v) |
| to label %asm.fallthrough [label %out] |
| |
| asm.fallthrough: |
| br label %out |
| |
| out: |
| %0 = load i32, ptr %v, align 4 |
| ret i32 %0 |
| } |