[llvm-commits] [llvm] r134850 - /llvm/trunk/test/Analysis/BasicAA/args-rets-allocas-loads.ll

Rafael Espindola rafael.espindola at gmail.com
Sat Jul 9 15:56:51 PDT 2011


Author: rafael
Date: Sat Jul  9 17:56:50 2011
New Revision: 134850

URL: http://llvm.org/viewvc/llvm-project?rev=134850&view=rev
Log:
Use CHECK-NEXT.

Modified:
    llvm/trunk/test/Analysis/BasicAA/args-rets-allocas-loads.ll

Modified: llvm/trunk/test/Analysis/BasicAA/args-rets-allocas-loads.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/BasicAA/args-rets-allocas-loads.ll?rev=134850&r1=134849&r2=134850&view=diff
==============================================================================
--- llvm/trunk/test/Analysis/BasicAA/args-rets-allocas-loads.ll (original)
+++ llvm/trunk/test/Analysis/BasicAA/args-rets-allocas-loads.ll Sat Jul  9 17:56:50 2011
@@ -48,263 +48,264 @@
 }
 
 ; 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%





More information about the llvm-commits mailing list