mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-31 09:32:11 +00:00
Use CHECK-NEXT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134850 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b4f6095bae
commit
4fe509431b
@ -48,263 +48,264 @@ define void @caller_a(double* %arg_a0,
|
||||
}
|
||||
|
||||
; CHECK: Function: caller_a: 16 pointers, 8 call sites
|
||||
; CHECK: MayAlias: double* %arg_a0, double* %arg_a1
|
||||
; CHECK: NoAlias: double* %arg_a0, double* %noalias_arg_a0
|
||||
; CHECK: NoAlias: double* %arg_a1, double* %noalias_arg_a0
|
||||
; CHECK: NoAlias: double* %arg_a0, double* %noalias_arg_a1
|
||||
; CHECK: NoAlias: double* %arg_a1, double* %noalias_arg_a1
|
||||
; CHECK: NoAlias: double* %noalias_arg_a0, double* %noalias_arg_a1
|
||||
; CHECK: MayAlias: double* %arg_a0, double** %indirect_a0
|
||||
; CHECK: MayAlias: double* %arg_a1, double** %indirect_a0
|
||||
; CHECK: NoAlias: double* %noalias_arg_a0, double** %indirect_a0
|
||||
; CHECK: NoAlias: double* %noalias_arg_a1, double** %indirect_a0
|
||||
; CHECK: MayAlias: double* %arg_a0, double** %indirect_a1
|
||||
; CHECK: MayAlias: double* %arg_a1, double** %indirect_a1
|
||||
; CHECK: NoAlias: double* %noalias_arg_a0, double** %indirect_a1
|
||||
; CHECK: NoAlias: double* %noalias_arg_a1, double** %indirect_a1
|
||||
; CHECK: MayAlias: double** %indirect_a0, double** %indirect_a1
|
||||
; CHECK: MayAlias: double* %arg_a0, double* %loaded_a0
|
||||
; CHECK: MayAlias: double* %arg_a1, double* %loaded_a0
|
||||
; CHECK: NoAlias: double* %loaded_a0, double* %noalias_arg_a0
|
||||
; CHECK: NoAlias: double* %loaded_a0, double* %noalias_arg_a1
|
||||
; CHECK: MayAlias: double* %loaded_a0, double** %indirect_a0
|
||||
; CHECK: MayAlias: double* %loaded_a0, double** %indirect_a1
|
||||
; CHECK: MayAlias: double* %arg_a0, double* %loaded_a1
|
||||
; CHECK: MayAlias: double* %arg_a1, double* %loaded_a1
|
||||
; CHECK: NoAlias: double* %loaded_a1, double* %noalias_arg_a0
|
||||
; CHECK: NoAlias: double* %loaded_a1, double* %noalias_arg_a1
|
||||
; CHECK: MayAlias: double* %loaded_a1, double** %indirect_a0
|
||||
; CHECK: MayAlias: double* %loaded_a1, double** %indirect_a1
|
||||
; CHECK: MayAlias: double* %loaded_a0, double* %loaded_a1
|
||||
; CHECK: NoAlias: double* %arg_a0, double* %escape_alloca_a0
|
||||
; CHECK: NoAlias: double* %arg_a1, double* %escape_alloca_a0
|
||||
; CHECK: NoAlias: double* %escape_alloca_a0, double* %noalias_arg_a0
|
||||
; CHECK: NoAlias: double* %escape_alloca_a0, double* %noalias_arg_a1
|
||||
; CHECK: NoAlias: double* %escape_alloca_a0, double** %indirect_a0
|
||||
; CHECK: NoAlias: double* %escape_alloca_a0, double** %indirect_a1
|
||||
; CHECK: MayAlias: double* %escape_alloca_a0, double* %loaded_a0
|
||||
; CHECK: MayAlias: double* %escape_alloca_a0, double* %loaded_a1
|
||||
; CHECK: NoAlias: double* %arg_a0, double* %escape_alloca_a1
|
||||
; CHECK: NoAlias: double* %arg_a1, double* %escape_alloca_a1
|
||||
; CHECK: NoAlias: double* %escape_alloca_a1, double* %noalias_arg_a0
|
||||
; CHECK: NoAlias: double* %escape_alloca_a1, double* %noalias_arg_a1
|
||||
; CHECK: NoAlias: double* %escape_alloca_a1, double** %indirect_a0
|
||||
; CHECK: NoAlias: double* %escape_alloca_a1, double** %indirect_a1
|
||||
; CHECK: MayAlias: double* %escape_alloca_a1, double* %loaded_a0
|
||||
; CHECK: MayAlias: double* %escape_alloca_a1, double* %loaded_a1
|
||||
; CHECK: NoAlias: double* %escape_alloca_a0, double* %escape_alloca_a1
|
||||
; CHECK: NoAlias: double* %arg_a0, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %arg_a1, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %noalias_arg_a0, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %noalias_arg_a1, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %noescape_alloca_a0, double** %indirect_a0
|
||||
; CHECK: NoAlias: double* %noescape_alloca_a0, double** %indirect_a1
|
||||
; CHECK: NoAlias: double* %loaded_a0, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %loaded_a1, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %escape_alloca_a0, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %escape_alloca_a1, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %arg_a0, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %arg_a1, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %noalias_arg_a0, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %noalias_arg_a1, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %noescape_alloca_a1, double** %indirect_a0
|
||||
; CHECK: NoAlias: double* %noescape_alloca_a1, double** %indirect_a1
|
||||
; CHECK: NoAlias: double* %loaded_a0, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %loaded_a1, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %escape_alloca_a0, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %escape_alloca_a1, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %noescape_alloca_a0, double* %noescape_alloca_a1
|
||||
; CHECK: MayAlias: double* %arg_a0, double* %normal_ret_a0
|
||||
; CHECK: MayAlias: double* %arg_a1, double* %normal_ret_a0
|
||||
; CHECK: NoAlias: double* %noalias_arg_a0, double* %normal_ret_a0
|
||||
; CHECK: NoAlias: double* %noalias_arg_a1, double* %normal_ret_a0
|
||||
; CHECK: MayAlias: double* %normal_ret_a0, double** %indirect_a0
|
||||
; CHECK: MayAlias: double* %normal_ret_a0, double** %indirect_a1
|
||||
; CHECK: MayAlias: double* %loaded_a0, double* %normal_ret_a0
|
||||
; CHECK: MayAlias: double* %loaded_a1, double* %normal_ret_a0
|
||||
; CHECK: MayAlias: double* %escape_alloca_a0, double* %normal_ret_a0
|
||||
; CHECK: MayAlias: double* %escape_alloca_a1, double* %normal_ret_a0
|
||||
; CHECK: NoAlias: double* %noescape_alloca_a0, double* %normal_ret_a0
|
||||
; CHECK: NoAlias: double* %noescape_alloca_a1, double* %normal_ret_a0
|
||||
; CHECK: MayAlias: double* %arg_a0, double* %normal_ret_a1
|
||||
; CHECK: MayAlias: double* %arg_a1, double* %normal_ret_a1
|
||||
; CHECK: NoAlias: double* %noalias_arg_a0, double* %normal_ret_a1
|
||||
; CHECK: NoAlias: double* %noalias_arg_a1, double* %normal_ret_a1
|
||||
; CHECK: MayAlias: double* %normal_ret_a1, double** %indirect_a0
|
||||
; CHECK: MayAlias: double* %normal_ret_a1, double** %indirect_a1
|
||||
; CHECK: MayAlias: double* %loaded_a0, double* %normal_ret_a1
|
||||
; CHECK: MayAlias: double* %loaded_a1, double* %normal_ret_a1
|
||||
; CHECK: MayAlias: double* %escape_alloca_a0, double* %normal_ret_a1
|
||||
; CHECK: MayAlias: double* %escape_alloca_a1, double* %normal_ret_a1
|
||||
; CHECK: NoAlias: double* %noescape_alloca_a0, double* %normal_ret_a1
|
||||
; CHECK: NoAlias: double* %noescape_alloca_a1, double* %normal_ret_a1
|
||||
; CHECK: MayAlias: double* %normal_ret_a0, double* %normal_ret_a1
|
||||
; CHECK: NoAlias: double* %arg_a0, double* %noalias_ret_a0
|
||||
; CHECK: NoAlias: double* %arg_a1, double* %noalias_ret_a0
|
||||
; CHECK: NoAlias: double* %noalias_arg_a0, double* %noalias_ret_a0
|
||||
; CHECK: NoAlias: double* %noalias_arg_a1, double* %noalias_ret_a0
|
||||
; CHECK: NoAlias: double* %noalias_ret_a0, double** %indirect_a0
|
||||
; CHECK: NoAlias: double* %noalias_ret_a0, double** %indirect_a1
|
||||
; CHECK: NoAlias: double* %loaded_a0, double* %noalias_ret_a0
|
||||
; CHECK: NoAlias: double* %loaded_a1, double* %noalias_ret_a0
|
||||
; CHECK: NoAlias: double* %escape_alloca_a0, double* %noalias_ret_a0
|
||||
; CHECK: NoAlias: double* %escape_alloca_a1, double* %noalias_ret_a0
|
||||
; CHECK: NoAlias: double* %noalias_ret_a0, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %noalias_ret_a0, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %noalias_ret_a0, double* %normal_ret_a0
|
||||
; CHECK: NoAlias: double* %noalias_ret_a0, double* %normal_ret_a1
|
||||
; CHECK: NoAlias: double* %arg_a0, double* %noalias_ret_a1
|
||||
; CHECK: NoAlias: double* %arg_a1, double* %noalias_ret_a1
|
||||
; CHECK: NoAlias: double* %noalias_arg_a0, double* %noalias_ret_a1
|
||||
; CHECK: NoAlias: double* %noalias_arg_a1, double* %noalias_ret_a1
|
||||
; CHECK: NoAlias: double* %noalias_ret_a1, double** %indirect_a0
|
||||
; CHECK: NoAlias: double* %noalias_ret_a1, double** %indirect_a1
|
||||
; CHECK: NoAlias: double* %loaded_a0, double* %noalias_ret_a1
|
||||
; CHECK: NoAlias: double* %loaded_a1, double* %noalias_ret_a1
|
||||
; CHECK: NoAlias: double* %escape_alloca_a0, double* %noalias_ret_a1
|
||||
; CHECK: NoAlias: double* %escape_alloca_a1, double* %noalias_ret_a1
|
||||
; CHECK: NoAlias: double* %noalias_ret_a1, double* %noescape_alloca_a0
|
||||
; CHECK: NoAlias: double* %noalias_ret_a1, double* %noescape_alloca_a1
|
||||
; CHECK: NoAlias: double* %noalias_ret_a1, double* %normal_ret_a0
|
||||
; CHECK: NoAlias: double* %noalias_ret_a1, double* %normal_ret_a1
|
||||
; CHECK: NoAlias: double* %noalias_ret_a0, double* %noalias_ret_a1
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %noalias_ret_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %noalias_ret_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %noescape_alloca_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %arg_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_arg_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double** %indirect_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %loaded_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %escape_alloca_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noescape_alloca_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %noescape_alloca_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: Both ModRef: Ptr: double* %normal_ret_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: NoModRef: Ptr: double* %noalias_ret_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a0, double* %arg_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a0, double* %noalias_arg_a0
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a1, double* %noalias_arg_a0
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a0, double* %noalias_arg_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a1, double* %noalias_arg_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a0, double* %noalias_arg_a1
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a0, double** %indirect_a0
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a1, double** %indirect_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a0, double** %indirect_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a1, double** %indirect_a0
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a0, double** %indirect_a1
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a1, double** %indirect_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a0, double** %indirect_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a1, double** %indirect_a1
|
||||
; CHECK-NEXT: MayAlias: double** %indirect_a0, double** %indirect_a1
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a0, double* %loaded_a0
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a1, double* %loaded_a0
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a0, double* %noalias_arg_a0
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a0, double* %noalias_arg_a1
|
||||
; CHECK-NEXT: MayAlias: double* %loaded_a0, double** %indirect_a0
|
||||
; CHECK-NEXT: MayAlias: double* %loaded_a0, double** %indirect_a1
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a0, double* %loaded_a1
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a1, double* %loaded_a1
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a1, double* %noalias_arg_a0
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a1, double* %noalias_arg_a1
|
||||
; CHECK-NEXT: MayAlias: double* %loaded_a1, double** %indirect_a0
|
||||
; CHECK-NEXT: MayAlias: double* %loaded_a1, double** %indirect_a1
|
||||
; CHECK-NEXT: MayAlias: double* %loaded_a0, double* %loaded_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a0, double* %escape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a1, double* %escape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a0, double* %noalias_arg_a0
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a0, double* %noalias_arg_a1
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a0, double** %indirect_a0
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a0, double** %indirect_a1
|
||||
; CHECK-NEXT: MayAlias: double* %escape_alloca_a0, double* %loaded_a0
|
||||
; CHECK-NEXT: MayAlias: double* %escape_alloca_a0, double* %loaded_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a0, double* %escape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a1, double* %escape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a1, double* %noalias_arg_a0
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a1, double* %noalias_arg_a1
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a1, double** %indirect_a0
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a1, double** %indirect_a1
|
||||
; CHECK-NEXT: MayAlias: double* %escape_alloca_a1, double* %loaded_a0
|
||||
; CHECK-NEXT: MayAlias: double* %escape_alloca_a1, double* %loaded_a1
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a0, double* %escape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a0, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a1, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a0, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a1, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noescape_alloca_a0, double** %indirect_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noescape_alloca_a0, double** %indirect_a1
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a0, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a1, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a0, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a1, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a0, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a1, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a0, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a1, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noescape_alloca_a1, double** %indirect_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noescape_alloca_a1, double** %indirect_a1
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a0, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a1, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a0, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a1, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noescape_alloca_a0, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a0, double* %normal_ret_a0
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a1, double* %normal_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a0, double* %normal_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a1, double* %normal_ret_a0
|
||||
; CHECK-NEXT: MayAlias: double* %normal_ret_a0, double** %indirect_a0
|
||||
; CHECK-NEXT: MayAlias: double* %normal_ret_a0, double** %indirect_a1
|
||||
; CHECK-NEXT: MayAlias: double* %loaded_a0, double* %normal_ret_a0
|
||||
; CHECK-NEXT: MayAlias: double* %loaded_a1, double* %normal_ret_a0
|
||||
; CHECK-NEXT: MayAlias: double* %escape_alloca_a0, double* %normal_ret_a0
|
||||
; CHECK-NEXT: MayAlias: double* %escape_alloca_a1, double* %normal_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noescape_alloca_a0, double* %normal_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noescape_alloca_a1, double* %normal_ret_a0
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a0, double* %normal_ret_a1
|
||||
; CHECK-NEXT: MayAlias: double* %arg_a1, double* %normal_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a0, double* %normal_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a1, double* %normal_ret_a1
|
||||
; CHECK-NEXT: MayAlias: double* %normal_ret_a1, double** %indirect_a0
|
||||
; CHECK-NEXT: MayAlias: double* %normal_ret_a1, double** %indirect_a1
|
||||
; CHECK-NEXT: MayAlias: double* %loaded_a0, double* %normal_ret_a1
|
||||
; CHECK-NEXT: MayAlias: double* %loaded_a1, double* %normal_ret_a1
|
||||
; CHECK-NEXT: MayAlias: double* %escape_alloca_a0, double* %normal_ret_a1
|
||||
; CHECK-NEXT: MayAlias: double* %escape_alloca_a1, double* %normal_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noescape_alloca_a0, double* %normal_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noescape_alloca_a1, double* %normal_ret_a1
|
||||
; CHECK-NEXT: MayAlias: double* %normal_ret_a0, double* %normal_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a0, double* %noalias_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a1, double* %noalias_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a0, double* %noalias_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a1, double* %noalias_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a0, double** %indirect_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a0, double** %indirect_a1
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a0, double* %noalias_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a1, double* %noalias_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a0, double* %noalias_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a1, double* %noalias_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a0, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a0, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a0, double* %normal_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a0, double* %normal_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a0, double* %noalias_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %arg_a1, double* %noalias_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a0, double* %noalias_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_arg_a1, double* %noalias_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a1, double** %indirect_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a1, double** %indirect_a1
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a0, double* %noalias_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %loaded_a1, double* %noalias_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a0, double* %noalias_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %escape_alloca_a1, double* %noalias_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a1, double* %noescape_alloca_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a1, double* %noescape_alloca_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a1, double* %normal_ret_a0
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a1, double* %normal_ret_a1
|
||||
; CHECK-NEXT: NoAlias: double* %noalias_ret_a0, double* %noalias_ret_a1
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a0 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a1 <-> %normal_ret_a0 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a0 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a1 <-> %normal_ret_a1 = call double* @normal_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %noalias_ret_a0 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a1 <-> %noalias_ret_a0 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a0 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %noalias_ret_a1 <-> %noalias_ret_a1 = call double* @noalias_returner()
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a0 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a1 <-> call void @callee(double* %escape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a0 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a1 <-> call void @callee(double* %escape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %noescape_alloca_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a0 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a1 <-> call void @nocap_callee(double* %noescape_alloca_a0)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %arg_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_arg_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double** %indirect_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %loaded_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %escape_alloca_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noescape_alloca_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %noescape_alloca_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: Both ModRef: Ptr: double* %normal_ret_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a0 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK-NEXT: NoModRef: Ptr: double* %noalias_ret_a1 <-> call void @nocap_callee(double* %noescape_alloca_a1)
|
||||
; CHECK: ===== Alias Analysis Evaluator Report =====
|
||||
; CHECK: 120 Total Alias Queries Performed
|
||||
; CHECK: 84 no alias responses (70.0%)
|
||||
; CHECK: 36 may alias responses (30.0%)
|
||||
; CHECK: 0 must alias responses (0.0%)
|
||||
; CHECK: Alias Analysis Evaluator Pointer Alias Summary: 70%/30%/0%
|
||||
; CHECK: 184 Total ModRef Queries Performed
|
||||
; CHECK: 44 no mod/ref responses (23.9%)
|
||||
; CHECK: 0 mod responses (0.0%)
|
||||
; CHECK: 0 ref responses (0.0%)
|
||||
; CHECK: 140 mod & ref responses (76.0%)
|
||||
; CHECK: Alias Analysis Evaluator Mod/Ref Summary: 23%/0%/0%/76%
|
||||
; CHECK-NEXT: 120 Total Alias Queries Performed
|
||||
; CHECK-NEXT: 84 no alias responses (70.0%)
|
||||
; CHECK-NEXT: 36 may alias responses (30.0%)
|
||||
; CHECK-NEXT: 0 partial alias responses (0.0%)
|
||||
; CHECK-NEXT: 0 must alias responses (0.0%)
|
||||
; CHECK-NEXT: Alias Analysis Evaluator Pointer Alias Summary: 70%/30%/0%
|
||||
; CHECK-NEXT: 184 Total ModRef Queries Performed
|
||||
; CHECK-NEXT: 44 no mod/ref responses (23.9%)
|
||||
; CHECK-NEXT: 0 mod responses (0.0%)
|
||||
; CHECK-NEXT: 0 ref responses (0.0%)
|
||||
; CHECK-NEXT: 140 mod & ref responses (76.0%)
|
||||
; CHECK-NEXT: Alias Analysis Evaluator Mod/Ref Summary: 23%/0%/0%/76%
|
||||
|
Loading…
Reference in New Issue
Block a user