[llvm] 8979ae4 - [SimplifyCFG] Convert tests to opaque pointers (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 14 06:14:23 PST 2022
Author: Nikita Popov
Date: 2022-12-14T15:14:12+01:00
New Revision: 8979ae42769e529b0f6fce3268492ffb49bd54b9
URL: https://github.com/llvm/llvm-project/commit/8979ae42769e529b0f6fce3268492ffb49bd54b9
DIFF: https://github.com/llvm/llvm-project/commit/8979ae42769e529b0f6fce3268492ffb49bd54b9.diff
LOG: [SimplifyCFG] Convert tests to opaque pointers (NFC)
Added:
Modified:
llvm/test/Transforms/SimplifyCFG/1elt-ptr-vec-alignment-crash.ll
llvm/test/Transforms/SimplifyCFG/2003-03-07-DominateProblem.ll
llvm/test/Transforms/SimplifyCFG/2003-08-05-InvokeCrash.ll
llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll
llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
llvm/test/Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll
llvm/test/Transforms/SimplifyCFG/2005-10-02-InvokeSimplify.ll
llvm/test/Transforms/SimplifyCFG/2005-12-03-IncorrectPHIFold.ll
llvm/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll
llvm/test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll
llvm/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll
llvm/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll
llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll
llvm/test/Transforms/SimplifyCFG/2008-10-03-SpeculativelyExecuteBeforePHI.ll
llvm/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll
llvm/test/Transforms/SimplifyCFG/2011-03-08-UnreachableUse.ll
llvm/test/Transforms/SimplifyCFG/2011-09-05-TrivialLPad.ll
llvm/test/Transforms/SimplifyCFG/AArch64/prefer-fma.ll
llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll
llvm/test/Transforms/SimplifyCFG/ARM/select-costs.ll
llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll
llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table-constant-expr.ll
llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll
llvm/test/Transforms/SimplifyCFG/EmptyBlockMerge.ll
llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-domtree-preservation-edgecase-2.ll
llvm/test/Transforms/SimplifyCFG/Hexagon/switch-to-lookup-table.ll
llvm/test/Transforms/SimplifyCFG/HoistCode.ll
llvm/test/Transforms/SimplifyCFG/InfLoop.ll
llvm/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll
llvm/test/Transforms/SimplifyCFG/PR9946.ll
llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-fma.ll
llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-load-i32.ll
llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv32.ll
llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv64.ll
llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
llvm/test/Transforms/SimplifyCFG/X86/2010-03-30-InvokeCrash.ll
llvm/test/Transforms/SimplifyCFG/X86/MagicPointer.ll
llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll
llvm/test/Transforms/SimplifyCFG/X86/PR30210.ll
llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll
llvm/test/Transforms/SimplifyCFG/X86/bug-25299.ll
llvm/test/Transforms/SimplifyCFG/X86/combine-parallel-mem-md.ll
llvm/test/Transforms/SimplifyCFG/X86/critedge-assume.ll
llvm/test/Transforms/SimplifyCFG/X86/empty-cleanuppad.ll
llvm/test/Transforms/SimplifyCFG/X86/invalidate-dom.ll
llvm/test/Transforms/SimplifyCFG/X86/merge-cleanuppads.ll
llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad-debuginfo.ll
llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad.ll
llvm/test/Transforms/SimplifyCFG/X86/merge-cond-stores-cost.ll
llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll
llvm/test/Transforms/SimplifyCFG/X86/remove-debug-2.ll
llvm/test/Transforms/SimplifyCFG/X86/remove-debug.ll
llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll
llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-bitcast.ll
llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-gep.ll
llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-globals.ll
llvm/test/Transforms/SimplifyCFG/X86/unreachable-blocks.ll
llvm/test/Transforms/SimplifyCFG/annotations.ll
llvm/test/Transforms/SimplifyCFG/attr-convergent.ll
llvm/test/Transforms/SimplifyCFG/attr-noduplicate.ll
llvm/test/Transforms/SimplifyCFG/basictest.ll
llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll
llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll
llvm/test/Transforms/SimplifyCFG/branch-fold.ll
llvm/test/Transforms/SimplifyCFG/branch-phi-thread.ll
llvm/test/Transforms/SimplifyCFG/cleanup-phis.ll
llvm/test/Transforms/SimplifyCFG/common-code-hoisting.ll
llvm/test/Transforms/SimplifyCFG/constantexprs.ll
llvm/test/Transforms/SimplifyCFG/dbginfo.ll
llvm/test/Transforms/SimplifyCFG/dce-cond-after-folding-terminator.ll
llvm/test/Transforms/SimplifyCFG/debug-info-thread-phi.ll
llvm/test/Transforms/SimplifyCFG/duplicate-landingpad.ll
llvm/test/Transforms/SimplifyCFG/empty-catchpad.ll
llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest-free-cost.ll
llvm/test/Transforms/SimplifyCFG/gepcost.ll
llvm/test/Transforms/SimplifyCFG/guards.ll
llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll
llvm/test/Transforms/SimplifyCFG/hoist-from-addresstaken-block.ll
llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll
llvm/test/Transforms/SimplifyCFG/indirectbr.ll
llvm/test/Transforms/SimplifyCFG/inline-asm-sink.ll
llvm/test/Transforms/SimplifyCFG/invoke.ll
llvm/test/Transforms/SimplifyCFG/invoke_unwind.ll
llvm/test/Transforms/SimplifyCFG/invoke_unwind_lifetime.ll
llvm/test/Transforms/SimplifyCFG/iterative-simplify.ll
llvm/test/Transforms/SimplifyCFG/lifetime-landingpad.ll
llvm/test/Transforms/SimplifyCFG/lifetime.ll
llvm/test/Transforms/SimplifyCFG/merge-cond-stores-2.ll
llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
llvm/test/Transforms/SimplifyCFG/merge-deopt-bundle-constants.ll
llvm/test/Transforms/SimplifyCFG/multiple-phis.ll
llvm/test/Transforms/SimplifyCFG/no-md-sink.ll
llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_asan.ll
llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_tsan.ll
llvm/test/Transforms/SimplifyCFG/nomerge.ll
llvm/test/Transforms/SimplifyCFG/nonintegral.ll
llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll
llvm/test/Transforms/SimplifyCFG/phi-to-select-constexpr-icmp.ll
llvm/test/Transforms/SimplifyCFG/phi-undef-loadstore.ll
llvm/test/Transforms/SimplifyCFG/pr33605.ll
llvm/test/Transforms/SimplifyCFG/pr35774.ll
llvm/test/Transforms/SimplifyCFG/pr39807.ll
llvm/test/Transforms/SimplifyCFG/pr48641.ll
llvm/test/Transforms/SimplifyCFG/pr50060-constantfold-loopid.ll
llvm/test/Transforms/SimplifyCFG/pr52290.ll
llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-2.ll
llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-3.ll
llvm/test/Transforms/SimplifyCFG/preserve-load-metadata.ll
llvm/test/Transforms/SimplifyCFG/preserve-make-implicit-on-switch-to-br.ll
llvm/test/Transforms/SimplifyCFG/preserve-store-alignment.ll
llvm/test/Transforms/SimplifyCFG/seh-nounwind.ll
llvm/test/Transforms/SimplifyCFG/simplifyUnreachable-degenerate-conditional-branch-with-matching-destinations.ll
llvm/test/Transforms/SimplifyCFG/sink-inf-loop.ll
llvm/test/Transforms/SimplifyCFG/speculate-call.ll
llvm/test/Transforms/SimplifyCFG/speculate-math.ll
llvm/test/Transforms/SimplifyCFG/speculate-store.ll
llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll
llvm/test/Transforms/SimplifyCFG/statepoint-invoke-unwind.ll
llvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll
llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll
llvm/test/Transforms/SimplifyCFG/switch-to-select-multiple-edge-per-block-phi.ll
llvm/test/Transforms/SimplifyCFG/switch_create-custom-dl.ll
llvm/test/Transforms/SimplifyCFG/switch_create.ll
llvm/test/Transforms/SimplifyCFG/switch_ub.ll
llvm/test/Transforms/SimplifyCFG/tail-merge-assert.ll
llvm/test/Transforms/SimplifyCFG/tail-merge-noreturn.ll
llvm/test/Transforms/SimplifyCFG/tail-merge-resume.ll
llvm/test/Transforms/SimplifyCFG/tautological-conditional-branch.ll
llvm/test/Transforms/SimplifyCFG/trap-debugloc.ll
llvm/test/Transforms/SimplifyCFG/trap-no-null-opt-debugloc.ll
llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
llvm/test/Transforms/SimplifyCFG/two-entry-phi-fold-crash.ll
llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
llvm/test/Transforms/SimplifyCFG/unprofitable-pr.ll
llvm/test/Transforms/SimplifyCFG/unreachable-cleanuppad.ll
llvm/test/Transforms/SimplifyCFG/wc-widen-block.ll
llvm/test/Transforms/SimplifyCFG/wineh-unreachable.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/SimplifyCFG/1elt-ptr-vec-alignment-crash.ll b/llvm/test/Transforms/SimplifyCFG/1elt-ptr-vec-alignment-crash.ll
index 23f9d10d5da13..1c586b872e892 100644
--- a/llvm/test/Transforms/SimplifyCFG/1elt-ptr-vec-alignment-crash.ll
+++ b/llvm/test/Transforms/SimplifyCFG/1elt-ptr-vec-alignment-crash.ll
@@ -7,15 +7,14 @@
@x = external dso_local local_unnamed_addr global i32, align 4
-define dso_local void @_ZN2ap2aqEv(%struct.ap* %this, i1 %c, i32 %v2) {
+define dso_local void @_ZN2ap2aqEv(ptr %this, i1 %c, i32 %v2) {
; CHECK-LABEL: @_ZN2ap2aqEv(
_ZN1yIN1z2aiE2aaIS1_EE2ahEv.exit:
br i1 %c, label %if.end, label %land.rhs
land.rhs: ; preds = %_ZN1yIN1z2aiE2aaIS1_EE2ahEv.exit
- %0 = bitcast <1 x %"struct.z::ai"*> zeroinitializer to %"struct.z::ai"*
- %retval.sroa.0.0..sroa_idx.i = getelementptr inbounds %"struct.z::ai", %"struct.z::ai"* %0, i64 0, i32 0
- %retval.sroa.0.0.copyload.i = load i32, i32* %retval.sroa.0.0..sroa_idx.i, align 4
+ %0 = bitcast <1 x ptr> zeroinitializer to ptr
+ %retval.sroa.0.0.copyload.i = load i32, ptr %0, align 4
%tobool5 = icmp eq i32 %retval.sroa.0.0.copyload.i, 0
%spec.select = select i1 %tobool5, i32 %v2, i32 0
br label %if.end
diff --git a/llvm/test/Transforms/SimplifyCFG/2003-03-07-DominateProblem.ll b/llvm/test/Transforms/SimplifyCFG/2003-03-07-DominateProblem.ll
index 53b281421ab72..f053022f30d69 100644
--- a/llvm/test/Transforms/SimplifyCFG/2003-03-07-DominateProblem.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2003-03-07-DominateProblem.ll
@@ -1,15 +1,15 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output
-define void @test(i32* %ldo, i1 %c, i1 %d) {
+define void @test(ptr %ldo, i1 %c, i1 %d) {
bb9:
br i1 %c, label %bb11, label %bb10
bb10: ; preds = %bb9
br label %bb11
bb11: ; preds = %bb10, %bb9
- %reg330 = phi i32* [ null, %bb10 ], [ %ldo, %bb9 ] ; <i32*> [#uses=1]
+ %reg330 = phi ptr [ null, %bb10 ], [ %ldo, %bb9 ] ; <ptr> [#uses=1]
br label %bb20
bb20: ; preds = %bb20, %bb11
- store i32* %reg330, i32** null
+ store ptr %reg330, ptr null
br i1 %d, label %bb20, label %done
done: ; preds = %bb20
ret void
diff --git a/llvm/test/Transforms/SimplifyCFG/2003-08-05-InvokeCrash.ll b/llvm/test/Transforms/SimplifyCFG/2003-08-05-InvokeCrash.ll
index 219fc40bfc69c..3d330b92c16c1 100644
--- a/llvm/test/Transforms/SimplifyCFG/2003-08-05-InvokeCrash.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2003-08-05-InvokeCrash.ll
@@ -2,14 +2,14 @@
;
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output
-define i32 @test() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define i32 @test() personality ptr @__gxx_personality_v0 {
%A = invoke i32 @test( )
to label %Ret unwind label %Ret2 ; <i32> [#uses=1]
Ret: ; preds = %0
ret i32 %A
Ret2: ; preds = %0
- %val = landingpad { i8*, i32 }
- catch i8* null
+ %val = landingpad { ptr, i32 }
+ catch ptr null
ret i32 undef
}
diff --git a/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll b/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll
index 9270266536b32..0424a75e1027c 100644
--- a/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll
@@ -2,22 +2,22 @@
; CHECK-NOT: switch
%llvm.dbg.anchor.type = type { i32, i32 }
- %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
+ %llvm.dbg.compile_unit.type = type { i32, ptr, i32, ptr, ptr, ptr, i1, i1, ptr }
@llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"
- at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata" ; <[4 x i8]*> [#uses=1]
- at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata" ; <[6 x i8]*> [#uses=1]
- at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata" ; <[55 x i8]*> [#uses=1]
- at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, { }* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to { }*), i32 1, i8* getelementptr ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i8* getelementptr ([6 x i8], [6 x i8]* @.str1, i32 0, i32 0), i8* getelementptr ([55 x i8], [55 x i8]* @.str2, i32 0, i32 0), i1 true, i1 false, i8* null }, section "llvm.metadata" ; <%llvm.dbg.compile_unit.type*> [#uses=1]
+ at .str = internal constant [4 x i8] c"a.c\00", section "llvm.metadata" ; <ptr> [#uses=1]
+ at .str1 = internal constant [6 x i8] c"/tmp/\00", section "llvm.metadata" ; <ptr> [#uses=1]
+ at .str2 = internal constant [55 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 00)\00", section "llvm.metadata" ; <ptr> [#uses=1]
+ at llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, ptr @llvm.dbg.compile_units, i32 1, ptr @.str, ptr @.str1, ptr @.str2, i1 true, i1 false, ptr null }, section "llvm.metadata" ; <ptr> [#uses=1]
-declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
+declare void @llvm.dbg.stoppoint(i32, i32, ptr) nounwind
; Test folding all to same dest
define i32 @test3(i1 %C) {
br i1 %C, label %Start, label %TheDest
Start: ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
+call void @llvm.dbg.stoppoint(i32 5, i32 0, ptr @llvm.dbg.compile_unit)
switch i32 3, label %TheDest [
i32 0, label %TheDest
i32 1, label %TheDest
@@ -34,10 +34,10 @@ define i32 @test4(i32 %C) {
i32 0, label %L2
]
L1: ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
+call void @llvm.dbg.stoppoint(i32 5, i32 0, ptr @llvm.dbg.compile_unit)
ret i32 0
L2: ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
+call void @llvm.dbg.stoppoint(i32 5, i32 0, ptr @llvm.dbg.compile_unit)
ret i32 1
}
@@ -48,10 +48,10 @@ define i32 @test5(i32 %C) {
i32 123, label %L1
]
L1: ; preds = %0, %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
+call void @llvm.dbg.stoppoint(i32 5, i32 0, ptr @llvm.dbg.compile_unit)
ret i32 0
L2: ; preds = %0
-call void @llvm.dbg.stoppoint(i32 5, i32 0, { }* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to { }*))
+call void @llvm.dbg.stoppoint(i32 5, i32 0, ptr @llvm.dbg.compile_unit)
ret i32 1
}
diff --git a/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll b/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
index a7806e958856b..d77b8c04ec1a5 100644
--- a/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
@@ -1,8 +1,8 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output
; PR584
- at g_38098584 = external global i32 ; <i32*> [#uses=1]
- at g_60187400 = external global i32 ; <i32*> [#uses=1]
- at g_59182229 = external global i32 ; <i32*> [#uses=2]
+ at g_38098584 = external global i32 ; <ptr> [#uses=1]
+ at g_60187400 = external global i32 ; <ptr> [#uses=1]
+ at g_59182229 = external global i32 ; <ptr> [#uses=2]
define i32 @_Z13func_26556482h(i8 %l_88173906) {
entry:
@@ -30,7 +30,7 @@ endif.0: ; preds = %loopentry.0
%tmp.14 = sext i8 %tmp.1 to i32 ; <i32> [#uses=1]
%tmp.16 = zext i8 %l_88173906 to i32 ; <i32> [#uses=1]
%tmp.17 = icmp sgt i32 %tmp.14, %tmp.16 ; <i1> [#uses=1]
- %tmp.19 = load i32, i32* @g_59182229 ; <i32> [#uses=2]
+ %tmp.19 = load i32, ptr @g_59182229 ; <i32> [#uses=2]
br i1 %tmp.17, label %cond_true, label %cond_false
cond_true: ; preds = %endif.0
%tmp.20 = icmp ne i32 %tmp.19, 1 ; <i1> [#uses=1]
@@ -53,7 +53,7 @@ loopentry.1: ; preds = %endif.3, %else.2
%tmp.29 = icmp sgt i32 %i.1.1, 99 ; <i1> [#uses=1]
br i1 %tmp.29, label %endif.2, label %no_exit.1
no_exit.1: ; preds = %loopentry.1
- %tmp.30 = load i32, i32* @g_38098584 ; <i32> [#uses=1]
+ %tmp.30 = load i32, ptr @g_38098584 ; <i32> [#uses=1]
%tmp.31 = icmp eq i32 %tmp.30, 0 ; <i1> [#uses=1]
br i1 %tmp.31, label %else.3, label %then.3
then.3: ; preds = %no_exit.1
@@ -65,7 +65,7 @@ then.4: ; preds = %else.3
else.4: ; preds = %else.3
br i1 false, label %else.5, label %then.5
then.5: ; preds = %else.4
- store i32 -1004318825, i32* @g_59182229
+ store i32 -1004318825, ptr @g_59182229
br label %return
else.5: ; preds = %else.4
br label %loopentry.3
@@ -77,7 +77,7 @@ no_exit.3: ; preds = %loopentry.3
%tmp.57 = icmp eq i8 %l_88173906_addr.1, 0 ; <i1> [#uses=1]
br i1 %tmp.57, label %else.7, label %then.7
then.7: ; preds = %no_exit.3
- store i32 16239, i32* @g_60187400
+ store i32 16239, ptr @g_60187400
%inc.2 = add i32 %i.3.3, 1 ; <i32> [#uses=1]
br label %loopentry.3
else.7: ; preds = %no_exit.3
diff --git a/llvm/test/Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll b/llvm/test/Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll
index ff44358ea63f6..da839f25a8051 100644
--- a/llvm/test/Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll
@@ -6,12 +6,12 @@ entry:
%tmp.14.i19 = icmp eq i32 0, 2 ; <i1> [#uses=1]
br i1 %tmp.14.i19, label %endif.1.i20, label %read_min.exit
endif.1.i20: ; preds = %entry
- %tmp.9.i.i = icmp eq i8* null, null ; <i1> [#uses=1]
+ %tmp.9.i.i = icmp eq ptr null, null ; <i1> [#uses=1]
br i1 %tmp.9.i.i, label %then.i12.i, label %then.i.i
then.i.i: ; preds = %endif.1.i20
ret void
then.i12.i: ; preds = %endif.1.i20
- %tmp.9.i4.i = icmp eq i8* null, null ; <i1> [#uses=1]
+ %tmp.9.i4.i = icmp eq ptr null, null ; <i1> [#uses=1]
br i1 %tmp.9.i4.i, label %endif.2.i33, label %then.i5.i
then.i5.i: ; preds = %then.i12.i
ret void
@@ -58,7 +58,7 @@ then.2.i: ; preds = %endif.1.i, %then.1.i
getfree.exit: ; preds = %endif.1.i, %then.1.i
ret void
endif.1: ; preds = %read_min.exit
- %tmp.27.i = getelementptr i32, i32* null, i32 0 ; <i32*> [#uses=0]
+ %tmp.27.i = getelementptr i32, ptr null, i32 0 ; <ptr> [#uses=0]
br i1 false, label %loopexit.0.i15, label %no_exit.0.i14
no_exit.0.i14: ; preds = %endif.1
ret void
diff --git a/llvm/test/Transforms/SimplifyCFG/2005-10-02-InvokeSimplify.ll b/llvm/test/Transforms/SimplifyCFG/2005-10-02-InvokeSimplify.ll
index a17b1d714ace3..ac78d4866bb24 100644
--- a/llvm/test/Transforms/SimplifyCFG/2005-10-02-InvokeSimplify.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2005-10-02-InvokeSimplify.ll
@@ -1,11 +1,11 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output
-define i1 @foo() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define i1 @foo() personality ptr @__gxx_personality_v0 {
%X = invoke i1 @foo( )
to label %N unwind label %F ; <i1> [#uses=1]
F: ; preds = %0
- %val = landingpad { i8*, i32 }
- catch i8* null
+ %val = landingpad { ptr, i32 }
+ catch ptr null
ret i1 false
N: ; preds = %0
br i1 %X, label %A, label %B
diff --git a/llvm/test/Transforms/SimplifyCFG/2005-12-03-IncorrectPHIFold.ll b/llvm/test/Transforms/SimplifyCFG/2005-12-03-IncorrectPHIFold.ll
index d71b969d56bfe..3db0a04b2a9ae 100644
--- a/llvm/test/Transforms/SimplifyCFG/2005-12-03-IncorrectPHIFold.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2005-12-03-IncorrectPHIFold.ll
@@ -3,42 +3,42 @@
; RUN: opt < %s -passes=simplifycfg,instsimplify,simplifycfg -simplifycfg-require-and-preserve-domtree=1 | llvm-dis | FileCheck %s
%struct.anon = type { i32, i32, i32, i32, [1024 x i8] }
- at _zero_ = external global %struct.anon* ; <%struct.anon**> [#uses=2]
- at _one_ = external global %struct.anon* ; <%struct.anon**> [#uses=4]
- at str = internal constant [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=0]
+ at _zero_ = external global ptr ; <ptr> [#uses=2]
+ at _one_ = external global ptr ; <ptr> [#uses=4]
+ at str = internal constant [4 x i8] c"%d\0A\00" ; <ptr> [#uses=0]
-declare i32 @bc_compare(%struct.anon*, %struct.anon*)
+declare i32 @bc_compare(ptr, ptr)
-declare void @free_num(%struct.anon**)
+declare void @free_num(ptr)
-declare %struct.anon* @copy_num(%struct.anon*)
+declare ptr @copy_num(ptr)
-declare void @init_num(%struct.anon**)
+declare void @init_num(ptr)
-declare %struct.anon* @new_num(i32, i32)
+declare ptr @new_num(i32, i32)
-declare void @int2num(%struct.anon**, i32)
+declare void @int2num(ptr, i32)
-declare void @bc_multiply(%struct.anon*, %struct.anon*, %struct.anon**, i32)
+declare void @bc_multiply(ptr, ptr, ptr, i32)
-declare void @bc_raise(%struct.anon*, %struct.anon*, %struct.anon**, i32)
+declare void @bc_raise(ptr, ptr, ptr, i32)
-declare i32 @bc_divide(%struct.anon*, %struct.anon*, %struct.anon**, i32)
+declare i32 @bc_divide(ptr, ptr, ptr, i32)
-declare void @bc_add(%struct.anon*, %struct.anon*, %struct.anon**)
+declare void @bc_add(ptr, ptr, ptr)
-declare i32 @_do_compare(%struct.anon*, %struct.anon*, i32, i32)
+declare i32 @_do_compare(ptr, ptr, i32, i32)
-declare i32 @printf(i8*, ...)
+declare i32 @printf(ptr, ...)
-define i32 @bc_sqrt(%struct.anon** %num, i32 %scale) {
+define i32 @bc_sqrt(ptr %num, i32 %scale) {
entry:
- %guess = alloca %struct.anon* ; <%struct.anon**> [#uses=7]
- %guess1 = alloca %struct.anon* ; <%struct.anon**> [#uses=7]
- %point5 = alloca %struct.anon* ; <%struct.anon**> [#uses=3]
- %tmp = load %struct.anon*, %struct.anon** %num ; <%struct.anon*> [#uses=1]
- %tmp1 = load %struct.anon*, %struct.anon** @_zero_ ; <%struct.anon*> [#uses=1]
- %tmp.upgrd.1 = call i32 @bc_compare( %struct.anon* %tmp, %struct.anon* %tmp1 ) ; <i32> [#uses=2]
+ %guess = alloca ptr ; <ptr> [#uses=7]
+ %guess1 = alloca ptr ; <ptr> [#uses=7]
+ %point5 = alloca ptr ; <ptr> [#uses=3]
+ %tmp = load ptr, ptr %num ; <ptr> [#uses=1]
+ %tmp1 = load ptr, ptr @_zero_ ; <ptr> [#uses=1]
+ %tmp.upgrd.1 = call i32 @bc_compare( ptr %tmp, ptr %tmp1 ) ; <i32> [#uses=2]
%tmp.upgrd.2 = icmp slt i32 %tmp.upgrd.1, 0 ; <i1> [#uses=1]
br i1 %tmp.upgrd.2, label %cond_true, label %cond_false
cond_true: ; preds = %entry
@@ -47,58 +47,58 @@ cond_false: ; preds = %entry
%tmp5 = icmp eq i32 %tmp.upgrd.1, 0 ; <i1> [#uses=1]
br i1 %tmp5, label %cond_true6, label %cond_next13
cond_true6: ; preds = %cond_false
- call void @free_num( %struct.anon** %num )
- %tmp8 = load %struct.anon*, %struct.anon** @_zero_ ; <%struct.anon*> [#uses=1]
- %tmp9 = call %struct.anon* @copy_num( %struct.anon* %tmp8 ) ; <%struct.anon*> [#uses=1]
- store %struct.anon* %tmp9, %struct.anon** %num
+ call void @free_num( ptr %num )
+ %tmp8 = load ptr, ptr @_zero_ ; <ptr> [#uses=1]
+ %tmp9 = call ptr @copy_num( ptr %tmp8 ) ; <ptr> [#uses=1]
+ store ptr %tmp9, ptr %num
ret i32 1
cond_next13: ; preds = %cond_false
- %tmp15 = load %struct.anon*, %struct.anon** %num ; <%struct.anon*> [#uses=1]
- %tmp16 = load %struct.anon*, %struct.anon** @_one_ ; <%struct.anon*> [#uses=1]
- %tmp17 = call i32 @bc_compare( %struct.anon* %tmp15, %struct.anon* %tmp16 ) ; <i32> [#uses=2]
+ %tmp15 = load ptr, ptr %num ; <ptr> [#uses=1]
+ %tmp16 = load ptr, ptr @_one_ ; <ptr> [#uses=1]
+ %tmp17 = call i32 @bc_compare( ptr %tmp15, ptr %tmp16 ) ; <i32> [#uses=2]
%tmp19 = icmp eq i32 %tmp17, 0 ; <i1> [#uses=1]
br i1 %tmp19, label %cond_true20, label %cond_next27
cond_true20: ; preds = %cond_next13
- call void @free_num( %struct.anon** %num )
- %tmp22 = load %struct.anon*, %struct.anon** @_one_ ; <%struct.anon*> [#uses=1]
- %tmp23 = call %struct.anon* @copy_num( %struct.anon* %tmp22 ) ; <%struct.anon*> [#uses=1]
- store %struct.anon* %tmp23, %struct.anon** %num
+ call void @free_num( ptr %num )
+ %tmp22 = load ptr, ptr @_one_ ; <ptr> [#uses=1]
+ %tmp23 = call ptr @copy_num( ptr %tmp22 ) ; <ptr> [#uses=1]
+ store ptr %tmp23, ptr %num
ret i32 1
cond_next27: ; preds = %cond_next13
- %tmp29 = load %struct.anon*, %struct.anon** %num ; <%struct.anon*> [#uses=1]
- %tmp30 = getelementptr %struct.anon, %struct.anon* %tmp29, i32 0, i32 2 ; <i32*> [#uses=1]
- %tmp31 = load i32, i32* %tmp30 ; <i32> [#uses=2]
+ %tmp29 = load ptr, ptr %num ; <ptr> [#uses=1]
+ %tmp30 = getelementptr %struct.anon, ptr %tmp29, i32 0, i32 2 ; <ptr> [#uses=1]
+ %tmp31 = load i32, ptr %tmp30 ; <i32> [#uses=2]
%tmp33 = icmp sge i32 %tmp31, %scale ; <i1> [#uses=1]
%max = select i1 %tmp33, i32 %tmp31, i32 %scale ; <i32> [#uses=4]
%tmp35 = add i32 %max, 2 ; <i32> [#uses=0]
- call void @init_num( %struct.anon** %guess )
- call void @init_num( %struct.anon** %guess1 )
- %tmp36 = call %struct.anon* @new_num( i32 1, i32 1 ) ; <%struct.anon*> [#uses=2]
- store %struct.anon* %tmp36, %struct.anon** %point5
- %tmp.upgrd.3 = getelementptr %struct.anon, %struct.anon* %tmp36, i32 0, i32 4, i32 1 ; <i8*> [#uses=1]
- store i8 5, i8* %tmp.upgrd.3
+ call void @init_num( ptr %guess )
+ call void @init_num( ptr %guess1 )
+ %tmp36 = call ptr @new_num( i32 1, i32 1 ) ; <ptr> [#uses=2]
+ store ptr %tmp36, ptr %point5
+ %tmp.upgrd.3 = getelementptr %struct.anon, ptr %tmp36, i32 0, i32 4, i32 1 ; <ptr> [#uses=1]
+ store i8 5, ptr %tmp.upgrd.3
%tmp39 = icmp slt i32 %tmp17, 0 ; <i1> [#uses=1]
br i1 %tmp39, label %cond_true40, label %cond_false43
cond_true40: ; preds = %cond_next27
- %tmp41 = load %struct.anon*, %struct.anon** @_one_ ; <%struct.anon*> [#uses=1]
- %tmp42 = call %struct.anon* @copy_num( %struct.anon* %tmp41 ) ; <%struct.anon*> [#uses=1]
- store %struct.anon* %tmp42, %struct.anon** %guess
+ %tmp41 = load ptr, ptr @_one_ ; <ptr> [#uses=1]
+ %tmp42 = call ptr @copy_num( ptr %tmp41 ) ; <ptr> [#uses=1]
+ store ptr %tmp42, ptr %guess
br label %bb80.outer
cond_false43: ; preds = %cond_next27
- call void @int2num( %struct.anon** %guess, i32 10 )
- %tmp45 = load %struct.anon*, %struct.anon** %num ; <%struct.anon*> [#uses=1]
- %tmp46 = getelementptr %struct.anon, %struct.anon* %tmp45, i32 0, i32 1 ; <i32*> [#uses=1]
- %tmp47 = load i32, i32* %tmp46 ; <i32> [#uses=1]
- call void @int2num( %struct.anon** %guess1, i32 %tmp47 )
- %tmp48 = load %struct.anon*, %struct.anon** %guess1 ; <%struct.anon*> [#uses=1]
- %tmp49 = load %struct.anon*, %struct.anon** %point5 ; <%struct.anon*> [#uses=1]
- call void @bc_multiply( %struct.anon* %tmp48, %struct.anon* %tmp49, %struct.anon** %guess1, i32 %max )
- %tmp51 = load %struct.anon*, %struct.anon** %guess1 ; <%struct.anon*> [#uses=1]
- %tmp52 = getelementptr %struct.anon, %struct.anon* %tmp51, i32 0, i32 2 ; <i32*> [#uses=1]
- store i32 0, i32* %tmp52
- %tmp53 = load %struct.anon*, %struct.anon** %guess ; <%struct.anon*> [#uses=1]
- %tmp54 = load %struct.anon*, %struct.anon** %guess1 ; <%struct.anon*> [#uses=1]
- call void @bc_raise( %struct.anon* %tmp53, %struct.anon* %tmp54, %struct.anon** %guess, i32 %max )
+ call void @int2num( ptr %guess, i32 10 )
+ %tmp45 = load ptr, ptr %num ; <ptr> [#uses=1]
+ %tmp46 = getelementptr %struct.anon, ptr %tmp45, i32 0, i32 1 ; <ptr> [#uses=1]
+ %tmp47 = load i32, ptr %tmp46 ; <i32> [#uses=1]
+ call void @int2num( ptr %guess1, i32 %tmp47 )
+ %tmp48 = load ptr, ptr %guess1 ; <ptr> [#uses=1]
+ %tmp49 = load ptr, ptr %point5 ; <ptr> [#uses=1]
+ call void @bc_multiply( ptr %tmp48, ptr %tmp49, ptr %guess1, i32 %max )
+ %tmp51 = load ptr, ptr %guess1 ; <ptr> [#uses=1]
+ %tmp52 = getelementptr %struct.anon, ptr %tmp51, i32 0, i32 2 ; <ptr> [#uses=1]
+ store i32 0, ptr %tmp52
+ %tmp53 = load ptr, ptr %guess ; <ptr> [#uses=1]
+ %tmp54 = load ptr, ptr %guess1 ; <ptr> [#uses=1]
+ call void @bc_raise( ptr %tmp53, ptr %tmp54, ptr %guess, i32 %max )
br label %bb80.outer
bb80.outer: ; preds = %cond_true83, %cond_false43, %cond_true40
%done.1.ph = phi i32 [ 1, %cond_true83 ], [ 0, %cond_true40 ], [ 0, %cond_false43 ] ; <i32> [#uses=1]
@@ -107,17 +107,17 @@ bb80: ; preds = %cond_true83, %bb80.outer
%tmp82 = icmp eq i32 %done.1.ph, 0 ; <i1> [#uses=1]
br i1 %tmp82, label %cond_true83, label %bb86
cond_true83: ; preds = %bb80
- %tmp71 = call i32 @_do_compare( %struct.anon* null, %struct.anon* null, i32 0, i32 1 ) ; <i32> [#uses=1]
+ %tmp71 = call i32 @_do_compare( ptr null, ptr null, i32 0, i32 1 ) ; <i32> [#uses=1]
%tmp76 = icmp eq i32 %tmp71, 0 ; <i1> [#uses=1]
br i1 %tmp76, label %bb80.outer, label %bb80
; CHECK: bb86
bb86: ; preds = %bb80
- call void @free_num( %struct.anon** %num )
- %tmp88 = load %struct.anon*, %struct.anon** %guess ; <%struct.anon*> [#uses=1]
- %tmp89 = load %struct.anon*, %struct.anon** @_one_ ; <%struct.anon*> [#uses=1]
- %tmp92 = call i32 @bc_divide( %struct.anon* %tmp88, %struct.anon* %tmp89, %struct.anon** %num, i32 %max ) ; <i32> [#uses=0]
- call void @free_num( %struct.anon** %guess )
- call void @free_num( %struct.anon** %guess1 )
- call void @free_num( %struct.anon** %point5 )
+ call void @free_num( ptr %num )
+ %tmp88 = load ptr, ptr %guess ; <ptr> [#uses=1]
+ %tmp89 = load ptr, ptr @_one_ ; <ptr> [#uses=1]
+ %tmp92 = call i32 @bc_divide( ptr %tmp88, ptr %tmp89, ptr %num, i32 %max ) ; <i32> [#uses=0]
+ call void @free_num( ptr %guess )
+ call void @free_num( ptr %guess1 )
+ call void @free_num( ptr %point5 )
ret i32 1
}
diff --git a/llvm/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll b/llvm/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
index 2958a9e0445f0..28fc98ab55b7b 100644
--- a/llvm/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
@@ -5,36 +5,36 @@ target datalayout = "E-p:32:32"
target triple = "powerpc-unknown-linux-gnu"
%struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.eh_status = type opaque
- %struct.emit_status = type { i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack*, i32, %struct.location_t, i32, i8*, %struct.rtx_def** }
- %struct.expr_status = type { i32, i32, i32, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def* }
- %struct.function = type { %struct.eh_status*, %struct.expr_status*, %struct.emit_status*, %struct.varasm_status*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.function*, i32, i32, i32, i32, %struct.rtx_def*, %struct.CUMULATIVE_ARGS, %struct.rtx_def*, %struct.rtx_def*, %struct.initial_value_struct*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, %struct.rtx_def*, i8, i32, i64, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.varray_head_tag*, %struct.temp_slot*, i32, %struct.var_refs_queue*, i32, i32, %struct.rtvec_def*, %struct.tree_node*, i32, i32, i32, %struct.machine_function*, i32, i32, i8, i8, %struct.language_function*, %struct.rtx_def*, i32, i32, i32, i32, %struct.location_t, %struct.varray_head_tag*, %struct.tree_node*, i8, i8, i8 }
+ %struct.emit_status = type { i32, i32, ptr, ptr, ptr, i32, %struct.location_t, i32, ptr, ptr }
+ %struct.expr_status = type { i32, i32, i32, ptr, ptr, ptr }
+ %struct.function = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, ptr, %struct.CUMULATIVE_ARGS, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i32, i64, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, i32, ptr, ptr, i32, i32, i32, ptr, i32, i32, i8, i8, ptr, ptr, i32, i32, i32, i32, %struct.location_t, ptr, ptr, i8, i8, i8 }
%struct.initial_value_struct = type opaque
%struct.lang_decl = type opaque
%struct.lang_type = type opaque
%struct.language_function = type opaque
- %struct.location_t = type { i8*, i32 }
- %struct.machine_function = type { i32, i32, i8*, i32, i32 }
+ %struct.location_t = type { ptr, i32 }
+ %struct.machine_function = type { i32, i32, ptr, i32, i32 }
%struct.rtunion = type { i32 }
- %struct.rtvec_def = type { i32, [1 x %struct.rtx_def*] }
+ %struct.rtvec_def = type { i32, [1 x ptr] }
%struct.rtx_def = type { i16, i8, i8, %struct.u }
- %struct.sequence_stack = type { %struct.rtx_def*, %struct.rtx_def*, %struct.sequence_stack* }
+ %struct.sequence_stack = type { ptr, ptr, ptr }
%struct.temp_slot = type opaque
- %struct.tree_common = type { %struct.tree_node*, %struct.tree_node*, %union.tree_ann_d*, i8, i8, i8, i8, i8 }
- %struct.tree_decl = type { %struct.tree_common, %struct.location_t, i32, %struct.tree_node*, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.rtx_def*, %struct.tree_decl_u2, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_decl* }
+ %struct.tree_common = type { ptr, ptr, ptr, i8, i8, i8, i8, i8 }
+ %struct.tree_decl = type { %struct.tree_common, %struct.location_t, i32, ptr, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.tree_decl_u2, ptr, ptr, i64, ptr }
%struct.tree_decl_u1 = type { i64 }
- %struct.tree_decl_u2 = type { %struct.function* }
+ %struct.tree_decl_u2 = type { ptr }
%struct.tree_node = type { %struct.tree_decl }
- %struct.tree_type = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i32, i16, i8, i8, i32, %struct.tree_node*, %struct.tree_node*, %struct.rtunion, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, i64, %struct.lang_type* }
+ %struct.tree_type = type { %struct.tree_common, ptr, ptr, ptr, ptr, i32, i16, i8, i8, i32, ptr, ptr, %struct.rtunion, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr }
%struct.u = type { [1 x i64] }
- %struct.var_refs_queue = type { %struct.rtx_def*, i32, i32, %struct.var_refs_queue* }
+ %struct.var_refs_queue = type { ptr, i32, i32, ptr }
%struct.varasm_status = type opaque
- %struct.varray_head_tag = type { i32, i32, i32, i8*, %struct.u }
+ %struct.varray_head_tag = type { i32, i32, i32, ptr, %struct.u }
%union.tree_ann_d = type opaque
- at mode_class = external global [35 x i8] ; <[35 x i8]*> [#uses=3]
+ at mode_class = external global [35 x i8] ; <ptr> [#uses=3]
define void @fold_builtin_classify() {
entry:
- %tmp63 = load i32, i32* null ; <i32> [#uses=1]
+ %tmp63 = load i32, ptr null ; <i32> [#uses=1]
switch i32 %tmp63, label %bb276 [
i32 414, label %bb145
i32 417, label %bb
@@ -42,54 +42,48 @@ entry:
bb: ; preds = %entry
ret void
bb145: ; preds = %entry
- %tmp146 = load %struct.tree_node*, %struct.tree_node** null ; <%struct.tree_node*> [#uses=1]
- %tmp148 = getelementptr %struct.tree_node, %struct.tree_node* %tmp146, i32 0, i32 0, i32 0, i32 1 ; <%struct.tree_node**> [#uses=1]
- %tmp149 = load %struct.tree_node*, %struct.tree_node** %tmp148 ; <%struct.tree_node*> [#uses=1]
- %tmp150 = bitcast %struct.tree_node* %tmp149 to %struct.tree_type* ; <%struct.tree_type*> [#uses=1]
- %tmp151 = getelementptr %struct.tree_type, %struct.tree_type* %tmp150, i32 0, i32 6 ; <i16*> [#uses=1]
- %tmp151.upgrd.1 = bitcast i16* %tmp151 to i32* ; <i32*> [#uses=1]
- %tmp152 = load i32, i32* %tmp151.upgrd.1 ; <i32> [#uses=1]
+ %tmp146 = load ptr, ptr null ; <ptr> [#uses=1]
+ %tmp148 = getelementptr %struct.tree_node, ptr %tmp146, i32 0, i32 0, i32 0, i32 1 ; <ptr> [#uses=1]
+ %tmp149 = load ptr, ptr %tmp148 ; <ptr> [#uses=1]
+ %tmp151 = getelementptr %struct.tree_type, ptr %tmp149, i32 0, i32 6 ; <ptr> [#uses=1]
+ %tmp152 = load i32, ptr %tmp151 ; <i32> [#uses=1]
%tmp154 = lshr i32 %tmp152, 16 ; <i32> [#uses=1]
%tmp154.mask = and i32 %tmp154, 127 ; <i32> [#uses=1]
%gep.upgrd.2 = zext i32 %tmp154.mask to i64 ; <i64> [#uses=1]
- %tmp155 = getelementptr [35 x i8], [35 x i8]* @mode_class, i32 0, i64 %gep.upgrd.2 ; <i8*> [#uses=1]
- %tmp156 = load i8, i8* %tmp155 ; <i8> [#uses=1]
+ %tmp155 = getelementptr [35 x i8], ptr @mode_class, i32 0, i64 %gep.upgrd.2 ; <ptr> [#uses=1]
+ %tmp156 = load i8, ptr %tmp155 ; <i8> [#uses=1]
%tmp157 = icmp eq i8 %tmp156, 4 ; <i1> [#uses=1]
br i1 %tmp157, label %cond_next241, label %cond_true158
cond_true158: ; preds = %bb145
- %tmp172 = load %struct.tree_node*, %struct.tree_node** null ; <%struct.tree_node*> [#uses=1]
- %tmp174 = getelementptr %struct.tree_node, %struct.tree_node* %tmp172, i32 0, i32 0, i32 0, i32 1 ; <%struct.tree_node**> [#uses=1]
- %tmp175 = load %struct.tree_node*, %struct.tree_node** %tmp174 ; <%struct.tree_node*> [#uses=1]
- %tmp176 = bitcast %struct.tree_node* %tmp175 to %struct.tree_type* ; <%struct.tree_type*> [#uses=1]
- %tmp177 = getelementptr %struct.tree_type, %struct.tree_type* %tmp176, i32 0, i32 6 ; <i16*> [#uses=1]
- %tmp177.upgrd.3 = bitcast i16* %tmp177 to i32* ; <i32*> [#uses=1]
- %tmp178 = load i32, i32* %tmp177.upgrd.3 ; <i32> [#uses=1]
+ %tmp172 = load ptr, ptr null ; <ptr> [#uses=1]
+ %tmp174 = getelementptr %struct.tree_node, ptr %tmp172, i32 0, i32 0, i32 0, i32 1 ; <ptr> [#uses=1]
+ %tmp175 = load ptr, ptr %tmp174 ; <ptr> [#uses=1]
+ %tmp177 = getelementptr %struct.tree_type, ptr %tmp175, i32 0, i32 6 ; <ptr> [#uses=1]
+ %tmp178 = load i32, ptr %tmp177 ; <i32> [#uses=1]
%tmp180 = lshr i32 %tmp178, 16 ; <i32> [#uses=1]
%tmp180.mask = and i32 %tmp180, 127 ; <i32> [#uses=1]
%gep.upgrd.4 = zext i32 %tmp180.mask to i64 ; <i64> [#uses=1]
- %tmp181 = getelementptr [35 x i8], [35 x i8]* @mode_class, i32 0, i64 %gep.upgrd.4 ; <i8*> [#uses=1]
- %tmp182 = load i8, i8* %tmp181 ; <i8> [#uses=1]
+ %tmp181 = getelementptr [35 x i8], ptr @mode_class, i32 0, i64 %gep.upgrd.4 ; <ptr> [#uses=1]
+ %tmp182 = load i8, ptr %tmp181 ; <i8> [#uses=1]
%tmp183 = icmp eq i8 %tmp182, 8 ; <i1> [#uses=1]
br i1 %tmp183, label %cond_next241, label %cond_true184
cond_true184: ; preds = %cond_true158
- %tmp185 = load %struct.tree_node*, %struct.tree_node** null ; <%struct.tree_node*> [#uses=1]
- %tmp187 = getelementptr %struct.tree_node, %struct.tree_node* %tmp185, i32 0, i32 0, i32 0, i32 1 ; <%struct.tree_node**> [#uses=1]
- %tmp188 = load %struct.tree_node*, %struct.tree_node** %tmp187 ; <%struct.tree_node*> [#uses=1]
- %tmp189 = bitcast %struct.tree_node* %tmp188 to %struct.tree_type* ; <%struct.tree_type*> [#uses=1]
- %tmp190 = getelementptr %struct.tree_type, %struct.tree_type* %tmp189, i32 0, i32 6 ; <i16*> [#uses=1]
- %tmp190.upgrd.5 = bitcast i16* %tmp190 to i32* ; <i32*> [#uses=1]
- %tmp191 = load i32, i32* %tmp190.upgrd.5 ; <i32> [#uses=1]
+ %tmp185 = load ptr, ptr null ; <ptr> [#uses=1]
+ %tmp187 = getelementptr %struct.tree_node, ptr %tmp185, i32 0, i32 0, i32 0, i32 1 ; <ptr> [#uses=1]
+ %tmp188 = load ptr, ptr %tmp187 ; <ptr> [#uses=1]
+ %tmp190 = getelementptr %struct.tree_type, ptr %tmp188, i32 0, i32 6 ; <ptr> [#uses=1]
+ %tmp191 = load i32, ptr %tmp190 ; <i32> [#uses=1]
%tmp193 = lshr i32 %tmp191, 16 ; <i32> [#uses=1]
%tmp193.mask = and i32 %tmp193, 127 ; <i32> [#uses=1]
%gep.upgrd.6 = zext i32 %tmp193.mask to i64 ; <i64> [#uses=1]
- %tmp194 = getelementptr [35 x i8], [35 x i8]* @mode_class, i32 0, i64 %gep.upgrd.6 ; <i8*> [#uses=1]
- %tmp195 = load i8, i8* %tmp194 ; <i8> [#uses=1]
+ %tmp194 = getelementptr [35 x i8], ptr @mode_class, i32 0, i64 %gep.upgrd.6 ; <ptr> [#uses=1]
+ %tmp195 = load i8, ptr %tmp194 ; <i8> [#uses=1]
%tmp196 = icmp eq i8 %tmp195, 4 ; <i1> [#uses=1]
br i1 %tmp196, label %cond_next241, label %cond_true197
cond_true197: ; preds = %cond_true184
ret void
cond_next241: ; preds = %cond_true184, %cond_true158, %bb145
- %tmp245 = load i32, i32* null ; <i32> [#uses=0]
+ %tmp245 = load i32, ptr null ; <i32> [#uses=0]
ret void
bb276: ; preds = %entry
ret void
diff --git a/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll b/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll
index 7ee31a4d807d5..360a5e54faa0a 100644
--- a/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll
@@ -4,114 +4,114 @@
; ModuleID = '2006-12-08-Ptr-ICmp-Branch.ll'
target datalayout = "e-p:32:32"
target triple = "i686-pc-linux-gnu"
- %struct.FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
- %struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct.FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
- %struct._IO_marker = type { %struct._IO_marker*, %struct.FILE*, i32 }
- %struct.charsequence = type { i8*, i32, i32 }
- %struct.trie_s = type { [26 x %struct.trie_s*], i32 }
- at str = external global [14 x i8] ; <[14 x i8]*> [#uses=0]
- at str.upgrd.1 = external global [32 x i8] ; <[32 x i8]*> [#uses=0]
- at str.upgrd.2 = external global [12 x i8] ; <[12 x i8]*> [#uses=0]
- at C.0.2294 = external global %struct.charsequence ; <%struct.charsequence*> [#uses=3]
- at t = external global %struct.trie_s* ; <%struct.trie_s**> [#uses=0]
- at str.upgrd.3 = external global [3 x i8] ; <[3 x i8]*> [#uses=0]
- at str.upgrd.4 = external global [26 x i8] ; <[26 x i8]*> [#uses=0]
+ %struct.FILE = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i16, i8, [1 x i8], ptr, i64, ptr, ptr, ptr, ptr, i32, i32, [40 x i8] }
+ %struct._IO_FILE = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i16, i8, [1 x i8], ptr, i64, ptr, ptr, ptr, ptr, i32, i32, [40 x i8] }
+ %struct._IO_marker = type { ptr, ptr, i32 }
+ %struct.charsequence = type { ptr, i32, i32 }
+ %struct.trie_s = type { [26 x ptr], i32 }
+ at str = external global [14 x i8] ; <ptr> [#uses=0]
+ at str.upgrd.1 = external global [32 x i8] ; <ptr> [#uses=0]
+ at str.upgrd.2 = external global [12 x i8] ; <ptr> [#uses=0]
+ at C.0.2294 = external global %struct.charsequence ; <ptr> [#uses=3]
+ at t = external global ptr ; <ptr> [#uses=0]
+ at str.upgrd.3 = external global [3 x i8] ; <ptr> [#uses=0]
+ at str.upgrd.4 = external global [26 x i8] ; <ptr> [#uses=0]
-declare void @charsequence_reset(%struct.charsequence*)
+declare void @charsequence_reset(ptr)
-declare void @free(i8*)
+declare void @free(ptr)
-declare void @charsequence_push(%struct.charsequence*, i8)
+declare void @charsequence_push(ptr, i8)
-declare i8* @charsequence_val(%struct.charsequence*)
+declare ptr @charsequence_val(ptr)
-declare i32 @_IO_getc(%struct.FILE*)
+declare i32 @_IO_getc(ptr)
declare i32 @tolower(i32)
-declare %struct.trie_s* @trie_insert(%struct.trie_s*, i8*)
+declare ptr @trie_insert(ptr, ptr)
-declare i32 @feof(%struct.FILE*)
+declare i32 @feof(ptr)
-define void @addfile(%struct.trie_s* %t, %struct.FILE* %f) {
+define void @addfile(ptr %t, ptr %f) {
entry:
- %t_addr = alloca %struct.trie_s* ; <%struct.trie_s**> [#uses=2]
- %f_addr = alloca %struct.FILE* ; <%struct.FILE**> [#uses=3]
- %c = alloca i8, align 1 ; <i8*> [#uses=7]
- %wstate = alloca i32, align 4 ; <i32*> [#uses=4]
- %cs = alloca %struct.charsequence, align 16 ; <%struct.charsequence*> [#uses=7]
- %str = alloca i8*, align 4 ; <i8**> [#uses=3]
+ %t_addr = alloca ptr ; <ptr> [#uses=2]
+ %f_addr = alloca ptr ; <ptr> [#uses=3]
+ %c = alloca i8, align 1 ; <ptr> [#uses=7]
+ %wstate = alloca i32, align 4 ; <ptr> [#uses=4]
+ %cs = alloca %struct.charsequence, align 16 ; <ptr> [#uses=7]
+ %str = alloca ptr, align 4 ; <ptr> [#uses=3]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- store %struct.trie_s* %t, %struct.trie_s** %t_addr
- store %struct.FILE* %f, %struct.FILE** %f_addr
- store i32 0, i32* %wstate
- %tmp = getelementptr %struct.charsequence, %struct.charsequence* %cs, i64 0, i32 0 ; <i8**> [#uses=1]
- %tmp1 = getelementptr %struct.charsequence, %struct.charsequence* @C.0.2294, i64 0, i32 0 ; <i8**> [#uses=1]
- %tmp.upgrd.5 = load i8*, i8** %tmp1 ; <i8*> [#uses=1]
- store i8* %tmp.upgrd.5, i8** %tmp
- %tmp.upgrd.6 = getelementptr %struct.charsequence, %struct.charsequence* %cs, i64 0, i32 1 ; <i32*> [#uses=1]
- %tmp2 = getelementptr %struct.charsequence, %struct.charsequence* @C.0.2294, i64 0, i32 1 ; <i32*> [#uses=1]
- %tmp.upgrd.7 = load i32, i32* %tmp2 ; <i32> [#uses=1]
- store i32 %tmp.upgrd.7, i32* %tmp.upgrd.6
- %tmp3 = getelementptr %struct.charsequence, %struct.charsequence* %cs, i64 0, i32 2 ; <i32*> [#uses=1]
- %tmp4 = getelementptr %struct.charsequence, %struct.charsequence* @C.0.2294, i64 0, i32 2 ; <i32*> [#uses=1]
- %tmp5 = load i32, i32* %tmp4 ; <i32> [#uses=1]
- store i32 %tmp5, i32* %tmp3
+ store ptr %t, ptr %t_addr
+ store ptr %f, ptr %f_addr
+ store i32 0, ptr %wstate
+ %tmp = getelementptr %struct.charsequence, ptr %cs, i64 0, i32 0 ; <ptr> [#uses=1]
+ %tmp1 = getelementptr %struct.charsequence, ptr @C.0.2294, i64 0, i32 0 ; <ptr> [#uses=1]
+ %tmp.upgrd.5 = load ptr, ptr %tmp1 ; <ptr> [#uses=1]
+ store ptr %tmp.upgrd.5, ptr %tmp
+ %tmp.upgrd.6 = getelementptr %struct.charsequence, ptr %cs, i64 0, i32 1 ; <ptr> [#uses=1]
+ %tmp2 = getelementptr %struct.charsequence, ptr @C.0.2294, i64 0, i32 1 ; <ptr> [#uses=1]
+ %tmp.upgrd.7 = load i32, ptr %tmp2 ; <i32> [#uses=1]
+ store i32 %tmp.upgrd.7, ptr %tmp.upgrd.6
+ %tmp3 = getelementptr %struct.charsequence, ptr %cs, i64 0, i32 2 ; <ptr> [#uses=1]
+ %tmp4 = getelementptr %struct.charsequence, ptr @C.0.2294, i64 0, i32 2 ; <ptr> [#uses=1]
+ %tmp5 = load i32, ptr %tmp4 ; <i32> [#uses=1]
+ store i32 %tmp5, ptr %tmp3
br label %bb33
bb: ; preds = %bb33
- %tmp.upgrd.8 = load %struct.FILE*, %struct.FILE** %f_addr ; <%struct.FILE*> [#uses=1]
- %tmp.upgrd.9 = call i32 @_IO_getc( %struct.FILE* %tmp.upgrd.8 ) ; <i32> [#uses=1]
+ %tmp.upgrd.8 = load ptr, ptr %f_addr ; <ptr> [#uses=1]
+ %tmp.upgrd.9 = call i32 @_IO_getc( ptr %tmp.upgrd.8 ) ; <i32> [#uses=1]
%tmp6 = call i32 @tolower( i32 %tmp.upgrd.9 ) ; <i32> [#uses=1]
%tmp6.upgrd.10 = trunc i32 %tmp6 to i8 ; <i8> [#uses=1]
- store i8 %tmp6.upgrd.10, i8* %c
- %tmp7 = load i32, i32* %wstate ; <i32> [#uses=1]
+ store i8 %tmp6.upgrd.10, ptr %c
+ %tmp7 = load i32, ptr %wstate ; <i32> [#uses=1]
%tmp.upgrd.11 = icmp ne i32 %tmp7, 0 ; <i1> [#uses=1]
br i1 %tmp.upgrd.11, label %cond_true, label %cond_false
cond_true: ; preds = %bb
- %tmp.upgrd.12 = load i8, i8* %c ; <i8> [#uses=1]
+ %tmp.upgrd.12 = load i8, ptr %c ; <i8> [#uses=1]
%tmp8 = icmp sle i8 %tmp.upgrd.12, 96 ; <i1> [#uses=1]
br i1 %tmp8, label %cond_true9, label %cond_next
cond_true9: ; preds = %cond_true
br label %bb16
cond_next: ; preds = %cond_true
- %tmp10 = load i8, i8* %c ; <i8> [#uses=1]
+ %tmp10 = load i8, ptr %c ; <i8> [#uses=1]
%tmp11 = icmp sgt i8 %tmp10, 122 ; <i1> [#uses=1]
br i1 %tmp11, label %cond_true12, label %cond_next13
cond_true12: ; preds = %cond_next
br label %bb16
cond_next13: ; preds = %cond_next
- %tmp14 = load i8, i8* %c ; <i8> [#uses=1]
+ %tmp14 = load i8, ptr %c ; <i8> [#uses=1]
%tmp14.upgrd.13 = sext i8 %tmp14 to i32 ; <i32> [#uses=1]
%tmp1415 = trunc i32 %tmp14.upgrd.13 to i8 ; <i8> [#uses=1]
- call void @charsequence_push( %struct.charsequence* %cs, i8 %tmp1415 )
+ call void @charsequence_push( ptr %cs, i8 %tmp1415 )
br label %bb21
bb16: ; preds = %cond_true12, %cond_true9
- %tmp17 = call i8* @charsequence_val( %struct.charsequence* %cs ) ; <i8*> [#uses=1]
- store i8* %tmp17, i8** %str
- %tmp.upgrd.14 = load %struct.trie_s*, %struct.trie_s** %t_addr ; <%struct.trie_s*> [#uses=1]
- %tmp18 = load i8*, i8** %str ; <i8*> [#uses=1]
- %tmp19 = call %struct.trie_s* @trie_insert( %struct.trie_s* %tmp.upgrd.14, i8* %tmp18 ) ; <%struct.trie_s*> [#uses=0]
- %tmp20 = load i8*, i8** %str ; <i8*> [#uses=1]
- call void @free( i8* %tmp20 )
- store i32 0, i32* %wstate
+ %tmp17 = call ptr @charsequence_val( ptr %cs ) ; <ptr> [#uses=1]
+ store ptr %tmp17, ptr %str
+ %tmp.upgrd.14 = load ptr, ptr %t_addr ; <ptr> [#uses=1]
+ %tmp18 = load ptr, ptr %str ; <ptr> [#uses=1]
+ %tmp19 = call ptr @trie_insert( ptr %tmp.upgrd.14, ptr %tmp18 ) ; <ptr> [#uses=0]
+ %tmp20 = load ptr, ptr %str ; <ptr> [#uses=1]
+ call void @free( ptr %tmp20 )
+ store i32 0, ptr %wstate
br label %bb21
bb21: ; preds = %bb16, %cond_next13
br label %cond_next32
cond_false: ; preds = %bb
- %tmp22 = load i8, i8* %c ; <i8> [#uses=1]
+ %tmp22 = load i8, ptr %c ; <i8> [#uses=1]
%tmp23 = icmp sgt i8 %tmp22, 96 ; <i1> [#uses=1]
br i1 %tmp23, label %cond_true24, label %cond_next31
cond_true24: ; preds = %cond_false
- %tmp25 = load i8, i8* %c ; <i8> [#uses=1]
+ %tmp25 = load i8, ptr %c ; <i8> [#uses=1]
%tmp26 = icmp sle i8 %tmp25, 122 ; <i1> [#uses=1]
br i1 %tmp26, label %cond_true27, label %cond_next30
cond_true27: ; preds = %cond_true24
- call void @charsequence_reset( %struct.charsequence* %cs )
- %tmp28 = load i8, i8* %c ; <i8> [#uses=1]
+ call void @charsequence_reset( ptr %cs )
+ %tmp28 = load i8, ptr %c ; <i8> [#uses=1]
%tmp28.upgrd.15 = sext i8 %tmp28 to i32 ; <i32> [#uses=1]
%tmp2829 = trunc i32 %tmp28.upgrd.15 to i8 ; <i8> [#uses=1]
- call void @charsequence_push( %struct.charsequence* %cs, i8 %tmp2829 )
- store i32 1, i32* %wstate
+ call void @charsequence_push( ptr %cs, i8 %tmp2829 )
+ store i32 1, ptr %wstate
br label %cond_next30
cond_next30: ; preds = %cond_true27, %cond_true24
br label %cond_next31
@@ -120,8 +120,8 @@ cond_next31: ; preds = %cond_next30, %cond_false
cond_next32: ; preds = %cond_next31, %bb21
br label %bb33
bb33: ; preds = %cond_next32, %entry
- %tmp34 = load %struct.FILE*, %struct.FILE** %f_addr ; <%struct.FILE*> [#uses=1]
- %tmp35 = call i32 @feof( %struct.FILE* %tmp34 ) ; <i32> [#uses=1]
+ %tmp34 = load ptr, ptr %f_addr ; <ptr> [#uses=1]
+ %tmp35 = call i32 @feof( ptr %tmp34 ) ; <i32> [#uses=1]
%tmp36 = icmp eq i32 %tmp35, 0 ; <i1> [#uses=1]
br i1 %tmp36, label %bb, label %bb37
bb37: ; preds = %bb33
diff --git a/llvm/test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll b/llvm/test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll
index 5edf8f9e46c23..fd209f8619cee 100644
--- a/llvm/test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll
@@ -2,18 +2,18 @@
; CHECK-NOT: invoke
-declare i32 @func(i8*) nounwind
+declare i32 @func(ptr) nounwind
-define i32 @test() personality i32 (...)* @__gxx_personality_v0 {
- invoke i32 @func( i8* null )
+define i32 @test() personality ptr @__gxx_personality_v0 {
+ invoke i32 @func( ptr null )
to label %Cont unwind label %Other ; <i32>:1 [#uses=0]
Cont: ; preds = %0
ret i32 0
Other: ; preds = %0
- landingpad { i8*, i32 }
- catch i8* null
+ landingpad { ptr, i32 }
+ catch ptr null
ret i32 1
}
diff --git a/llvm/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll b/llvm/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll
index 631c25e33deca..e09cf7dd33b18 100644
--- a/llvm/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll
@@ -3,12 +3,12 @@
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
target triple = "i686-apple-darwin8"
- at G = weak global i32 0, align 8 ; <i32*> [#uses=2]
+ at G = weak global i32 0, align 8 ; <ptr> [#uses=2]
define void @test(i32 %X, i32 %Y, i32 %Z) {
entry:
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- %tmp = load i32, i32* @G, align 8 ; <i32> [#uses=2]
+ %tmp = load i32, ptr @G, align 8 ; <i32> [#uses=2]
%tmp3 = icmp eq i32 %X, %Y ; <i1> [#uses=1]
%tmp34 = zext i1 %tmp3 to i8 ; <i8> [#uses=1]
%toBool = icmp ne i8 %tmp34, 0 ; <i1> [#uses=1]
@@ -21,7 +21,7 @@ cond_true: ; preds = %entry
cond_next: ; preds = %cond_true, %entry
; CHECK: = phi i32
%F.0 = phi i32 [ %tmp, %entry ], [ %tmp7, %cond_true ] ; <i32> [#uses=1]
- store i32 %F.0, i32* @G, align 8
+ store i32 %F.0, ptr @G, align 8
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll b/llvm/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll
index f953b426f6e31..345e96e2e745e 100644
--- a/llvm/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll
@@ -5,13 +5,13 @@
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
target triple = "i386-pc-linux-gnu"
- at g_37 = common global i32 0 ; <i32*> [#uses=1]
- at .str = internal constant [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1]
+ at g_37 = common global i32 0 ; <ptr> [#uses=1]
+ at .str = internal constant [4 x i8] c"%d\0A\00" ; <ptr> [#uses=1]
define i32 @main() nounwind {
; CHECK-LABEL: @main(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[L:%.*]] = load i32, i32* @g_37, align 4
+; CHECK-NEXT: [[L:%.*]] = load i32, ptr @g_37, align 4
; CHECK-NEXT: [[CMPA:%.*]] = icmp ne i32 [[L]], 0
; CHECK-NEXT: [[CMPB:%.*]] = icmp eq i1 [[CMPA]], false
; CHECK-NEXT: [[OUTVAL_SEL:%.*]] = select i1 [[CMPA]], i32 1, i32 0
@@ -20,13 +20,13 @@ define i32 @main() nounwind {
; CHECK-NEXT: [[OUTVAL_SEL_MUX:%.*]] = select i1 [[OR_COND]], i32 [[OUTVAL_SEL]], i32 2
; CHECK-NEXT: br i1 [[BRMERGE]], label [[FUNC_1_EXIT:%.*]], label [[INFLOOP:%.*]]
; CHECK: func_1.exit:
-; CHECK-NEXT: [[POUT:%.*]] = tail call i32 (i8*, ...) @printf(i8* noalias getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 [[OUTVAL_SEL_MUX]]) #[[ATTR0:[0-9]+]]
+; CHECK-NEXT: [[POUT:%.*]] = tail call i32 (ptr, ...) @printf(ptr noalias @.str, i32 [[OUTVAL_SEL_MUX]]) #[[ATTR0:[0-9]+]]
; CHECK-NEXT: ret i32 0
; CHECK: infloop:
; CHECK-NEXT: br label [[INFLOOP]]
;
entry:
- %l = load i32, i32* @g_37, align 4 ; <i32> [#uses=1]
+ %l = load i32, ptr @g_37, align 4 ; <i32> [#uses=1]
%cmpa = icmp ne i32 %l, 0 ; <i1> [#uses=3]
br i1 %cmpa, label %func_1.exit, label %mooseblock
@@ -46,9 +46,9 @@ cowblock: ; preds = %beeblock, %monkeyblock
func_1.exit: ; preds = %cowblock, %entry
%outval = phi i32 [ %cowval, %cowblock ], [ 1, %entry ] ; <i32> [#uses=1]
- %pout = tail call i32 (i8*, ...) @printf( i8* noalias getelementptr ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %outval ) nounwind ; <i32> [#uses=0]
+ %pout = tail call i32 (ptr, ...) @printf( ptr noalias @.str, i32 %outval ) nounwind ; <i32> [#uses=0]
ret i32 0
}
-declare i32 @printf(i8*, ...) nounwind
+declare i32 @printf(ptr, ...) nounwind
diff --git a/llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll b/llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll
index 5ed61dd23f844..aaa1303b9d614 100644
--- a/llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll
@@ -1,10 +1,10 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output
; PR 2777
- at g_103 = common global i32 0 ; <i32*> [#uses=1]
+ at g_103 = common global i32 0 ; <ptr> [#uses=1]
define i32 @func_127(i32 %p_129) nounwind {
entry:
- load i32, i32* @g_103, align 4 ; <i32>:0 [#uses=1]
+ load i32, ptr @g_103, align 4 ; <i32>:0 [#uses=1]
icmp eq i32 %0, 0 ; <i1>:1 [#uses=2]
br i1 %1, label %bb6.preheader, label %entry.return_crit_edge
diff --git a/llvm/test/Transforms/SimplifyCFG/2008-10-03-SpeculativelyExecuteBeforePHI.ll b/llvm/test/Transforms/SimplifyCFG/2008-10-03-SpeculativelyExecuteBeforePHI.ll
index 068ab13f54f63..ea632506dcc40 100644
--- a/llvm/test/Transforms/SimplifyCFG/2008-10-03-SpeculativelyExecuteBeforePHI.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2008-10-03-SpeculativelyExecuteBeforePHI.ll
@@ -1,7 +1,7 @@
; RUN: opt < %s -passes=simplifycfg
; PR2855
-define i32 @_Z1fPii(i32* %b, i32 %f) nounwind {
+define i32 @_Z1fPii(ptr %b, i32 %f) nounwind {
entry:
br label %bb
diff --git a/llvm/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll b/llvm/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll
index 602db47458862..3bc5c14e45860 100644
--- a/llvm/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll
@@ -7,22 +7,22 @@ module asm ".globl _foo"
module asm "_foo: ret"
module asm ".globl _i"
module asm ".set _i, 0"
- at i = extern_weak global i32 ; <i32*> [#uses=2]
- at j = common global i32 0 ; <i32*> [#uses=1]
- at ed = common global double 0.000000e+00, align 8 ; <double*> [#uses=1]
+ at i = extern_weak global i32 ; <ptr> [#uses=2]
+ at j = common global i32 0 ; <ptr> [#uses=1]
+ at ed = common global double 0.000000e+00, align 8 ; <ptr> [#uses=1]
define i32 @main() nounwind ssp {
; CHECK-LABEL: @main(
; CHECK-NEXT: entry:
; CHECK-NEXT: br label [[BB4:%.*]]
; CHECK: bb:
-; CHECK-NEXT: br i1 icmp ne (i32* @i, i32* null), label [[BB1:%.*]], label [[BB3:%.*]]
+; CHECK-NEXT: br i1 icmp ne (ptr @i, ptr null), label [[BB1:%.*]], label [[BB3:%.*]]
; CHECK: bb1:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @i, align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @i, align 4
; CHECK-NEXT: br label [[BB3]]
; CHECK: bb3:
; CHECK-NEXT: [[STOREMERGE:%.*]] = phi i32 [ [[TMP0]], [[BB1]] ], [ 0, [[BB:%.*]] ]
-; CHECK-NEXT: store i32 [[STOREMERGE]], i32* @j, align 4
+; CHECK-NEXT: store i32 [[STOREMERGE]], ptr @j, align 4
; CHECK-NEXT: [[TMP1:%.*]] = sitofp i32 [[STOREMERGE]] to double
; CHECK-NEXT: [[TMP2:%.*]] = call double @sin(double [[TMP1]]) #[[ATTR1:[0-9]+]]
; CHECK-NEXT: [[TMP3:%.*]] = fadd double [[TMP2]], [[D_0:%.*]]
@@ -34,17 +34,17 @@ define i32 @main() nounwind ssp {
; CHECK-NEXT: [[TMP5:%.*]] = icmp sgt i32 [[L_0]], 99
; CHECK-NEXT: br i1 [[TMP5]], label [[BB5:%.*]], label [[BB]]
; CHECK: bb5:
-; CHECK-NEXT: store double [[D_0]], double* @ed, align 8
+; CHECK-NEXT: store double [[D_0]], ptr @ed, align 8
; CHECK-NEXT: ret i32 0
;
entry:
br label %bb4
bb: ; preds = %bb4
- br i1 icmp ne (i32* @i, i32* null), label %bb1, label %bb2
+ br i1 icmp ne (ptr @i, ptr null), label %bb1, label %bb2
bb1: ; preds = %bb
- %0 = load i32, i32* @i, align 4 ; <i32> [#uses=1]
+ %0 = load i32, ptr @i, align 4 ; <i32> [#uses=1]
br label %bb3
bb2: ; preds = %bb
@@ -52,7 +52,7 @@ bb2: ; preds = %bb
bb3: ; preds = %bb2, %bb1
%storemerge = phi i32 [ %0, %bb1 ], [ 0, %bb2 ] ; <i32> [#uses=2]
- store i32 %storemerge, i32* @j
+ store i32 %storemerge, ptr @j
%1 = sitofp i32 %storemerge to double ; <double> [#uses=1]
%2 = call double @sin(double %1) nounwind readonly ; <double> [#uses=1]
%3 = fadd double %2, %d.0 ; <double> [#uses=1]
@@ -66,7 +66,7 @@ bb4: ; preds = %bb3, %entry
br i1 %5, label %bb5, label %bb
bb5: ; preds = %bb4
- store double %d.0, double* @ed, align 8
+ store double %d.0, ptr @ed, align 8
ret i32 0
}
diff --git a/llvm/test/Transforms/SimplifyCFG/2011-03-08-UnreachableUse.ll b/llvm/test/Transforms/SimplifyCFG/2011-03-08-UnreachableUse.ll
index af3765e5b0b83..9cd8434e61a8f 100644
--- a/llvm/test/Transforms/SimplifyCFG/2011-03-08-UnreachableUse.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2011-03-08-UnreachableUse.ll
@@ -5,7 +5,7 @@
; the transformations done by SimplifyCFG, so this test is likely to rot
; quickly.
-define noalias i8* @func_29() nounwind {
+define noalias ptr @func_29() nounwind {
; CHECK: entry:
; CHECK-NEXT: unreachable
entry:
diff --git a/llvm/test/Transforms/SimplifyCFG/2011-09-05-TrivialLPad.ll b/llvm/test/Transforms/SimplifyCFG/2011-09-05-TrivialLPad.ll
index 26318bbe131b0..b0373c69605cb 100644
--- a/llvm/test/Transforms/SimplifyCFG/2011-09-05-TrivialLPad.ll
+++ b/llvm/test/Transforms/SimplifyCFG/2011-09-05-TrivialLPad.ll
@@ -5,7 +5,7 @@
declare void @bar()
-define i32 @foo() personality i32 (i32, i64, i8*, i8*)* @__gxx_personality_v0 {
+define i32 @foo() personality ptr @__gxx_personality_v0 {
entry:
invoke void @bar()
to label %return unwind label %lpad
@@ -14,9 +14,9 @@ return:
ret i32 0
lpad:
- %lp = landingpad { i8*, i32 }
+ %lp = landingpad { ptr, i32 }
cleanup
- resume { i8*, i32 } %lp
+ resume { ptr, i32 } %lp
}
-declare i32 @__gxx_personality_v0(i32, i64, i8*, i8*)
+declare i32 @__gxx_personality_v0(i32, i64, ptr, ptr)
diff --git a/llvm/test/Transforms/SimplifyCFG/AArch64/prefer-fma.ll b/llvm/test/Transforms/SimplifyCFG/AArch64/prefer-fma.ll
index dc72af31d0bb3..0f18dc2132ec5 100644
--- a/llvm/test/Transforms/SimplifyCFG/AArch64/prefer-fma.ll
+++ b/llvm/test/Transforms/SimplifyCFG/AArch64/prefer-fma.ll
@@ -3,11 +3,11 @@
; ModuleID = 't.cc'
; Function Attrs: nounwind
-define double @_Z3fooRdS_S_S_(double* dereferenceable(8) %x, double* dereferenceable(8) %y, double* dereferenceable(8) %a) #0 {
+define double @_Z3fooRdS_S_S_(ptr dereferenceable(8) %x, ptr dereferenceable(8) %y, ptr dereferenceable(8) %a) #0 {
entry:
- %0 = load double, double* %y, align 8
+ %0 = load double, ptr %y, align 8
%cmp = fcmp oeq double %0, 0.000000e+00
- %1 = load double, double* %x, align 8
+ %1 = load double, ptr %x, align 8
br i1 %cmp, label %if.then, label %if.else
; fadd (const, (fmul x, y))
@@ -15,10 +15,10 @@ if.then: ; preds = %entry
; CHECK-LABEL: if.then:
; CHECK: %3 = fmul fast double %1, %2
; CHECK-NEXT: %mul = fadd fast double 1.000000e+00, %3
- %2 = load double, double* %a, align 8
+ %2 = load double, ptr %a, align 8
%3 = fmul fast double %1, %2
%mul = fadd fast double 1.000000e+00, %3
- store double %mul, double* %y, align 8
+ store double %mul, ptr %y, align 8
br label %if.end
; fsub ((fmul x, y), z)
@@ -26,17 +26,17 @@ if.else: ; preds = %entry
; CHECK-LABEL: if.else:
; CHECK: %mul1 = fmul fast double %1, %2
; CHECK-NEXT: %sub1 = fsub fast double %mul1, %0
- %4 = load double, double* %a, align 8
+ %4 = load double, ptr %a, align 8
%mul1 = fmul fast double %1, %4
%sub1 = fsub fast double %mul1, %0
- %gep1 = getelementptr double, double* %y, i32 1
- store double %sub1, double* %gep1, align 8
+ %gep1 = getelementptr double, ptr %y, i32 1
+ store double %sub1, ptr %gep1, align 8
br label %if.end
if.end: ; preds = %if.else, %if.then
- %5 = load double, double* %y, align 8
+ %5 = load double, ptr %y, align 8
%cmp2 = fcmp oeq double %5, 2.000000e+00
- %6 = load double, double* %x, align 8
+ %6 = load double, ptr %x, align 8
br i1 %cmp2, label %if.then2, label %if.else2
; fsub (x, (fmul y, z))
@@ -44,10 +44,10 @@ if.then2: ; preds = %entry
; CHECK-LABEL: if.then2:
; CHECK: %7 = fmul fast double %5, 3.000000e+00
; CHECK-NEXT: %mul2 = fsub fast double %6, %7
- %7 = load double, double* %a, align 8
+ %7 = load double, ptr %a, align 8
%8 = fmul fast double %6, 3.0000000e+00
%mul2 = fsub fast double %7, %8
- store double %mul2, double* %y, align 8
+ store double %mul2, ptr %y, align 8
br label %if.end2
; fsub (fneg((fmul x, y)), const)
@@ -59,14 +59,14 @@ if.else2: ; preds = %entry
%mul3 = fmul fast double %6, 3.0000000e+00
%neg = fsub fast double 0.0000000e+00, %mul3
%sub2 = fsub fast double %neg, 3.0000000e+00
- store double %sub2, double* %y, align 8
+ store double %sub2, ptr %y, align 8
br label %if.end2
if.end2: ; preds = %if.else, %if.then
- %9 = load double, double* %x, align 8
- %10 = load double, double* %y, align 8
+ %9 = load double, ptr %x, align 8
+ %10 = load double, ptr %y, align 8
%add = fadd fast double %9, %10
- %11 = load double, double* %a, align 8
+ %11 = load double, ptr %a, align 8
%add2 = fadd fast double %add, %11
ret double %add2
}
diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll b/llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll
index fc96134e12f93..f823bdc4aa571 100644
--- a/llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll
+++ b/llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll
@@ -3,7 +3,7 @@
; RUN: opt -mtriple=thumbv8a %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s --check-prefix=CHECK --check-prefix=THUMB
; RUN: opt -mtriple=armv8a %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s --check-prefix=CHECK --check-prefix=ARM
-define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) {
+define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input) {
; CHECK-LABEL: @foo(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP:%.*]] = icmp sle i32 [[D:%.*]], 3
@@ -12,7 +12,7 @@ define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[CMP]], i1 [[CMP1]], i1 false
; CHECK-NEXT: br i1 [[OR_COND]], label [[COND_FALSE:%.*]], label [[COND_END:%.*]]
; CHECK: cond.false:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; CHECK-NEXT: br label [[COND_END]]
; CHECK: cond.end:
; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -28,7 +28,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.false, label %cond.end
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -36,7 +36,7 @@ cond.end:
ret i32 %cond
}
-define i32 @foo_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) #0 {
+define i32 @foo_minsize(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input) #0 {
; CHECK-LABEL: @foo_minsize(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP:%.*]] = icmp sle i32 [[D:%.*]], 3
@@ -45,7 +45,7 @@ define i32 @foo_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) #0 {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[CMP]], i1 [[CMP1]], i1 false
; CHECK-NEXT: br i1 [[OR_COND]], label [[COND_FALSE:%.*]], label [[COND_END:%.*]]
; CHECK: cond.false:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; CHECK-NEXT: br label [[COND_END]]
; CHECK: cond.end:
; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -61,7 +61,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.false, label %cond.end
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -69,7 +69,7 @@ cond.end:
ret i32 %cond
}
-define i32 @foo_minsize_i64(i64 %a, i64 %b, i64 %c, i64 %d, i32* %input) #0 {
+define i32 @foo_minsize_i64(i64 %a, i64 %b, i64 %c, i64 %d, ptr %input) #0 {
; CHECK-LABEL: @foo_minsize_i64(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP:%.*]] = icmp sle i64 [[D:%.*]], 3
@@ -78,7 +78,7 @@ define i32 @foo_minsize_i64(i64 %a, i64 %b, i64 %c, i64 %d, i32* %input) #0 {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[CMP]], i1 [[CMP1]], i1 false
; CHECK-NEXT: br i1 [[OR_COND]], label [[COND_FALSE:%.*]], label [[COND_END:%.*]]
; CHECK: cond.false:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; CHECK-NEXT: br label [[COND_END]]
; CHECK: cond.end:
; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -94,7 +94,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.false, label %cond.end
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -102,7 +102,7 @@ cond.end:
ret i32 %cond
}
-define i32 @or_predicate(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) {
+define i32 @or_predicate(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input) {
; CHECK-LABEL: @or_predicate(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[D:%.*]], 3
@@ -111,7 +111,7 @@ define i32 @or_predicate(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[CMP]], i1 true, i1 [[CMP1]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[COND_END:%.*]], label [[COND_FALSE:%.*]]
; CHECK: cond.false:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; CHECK-NEXT: br label [[COND_END]]
; CHECK: cond.end:
; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -127,7 +127,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.end, label %cond.false
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -135,7 +135,7 @@ cond.end:
ret i32 %cond
}
-define i32 @or_invert_predicate(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) {
+define i32 @or_invert_predicate(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input) {
; CHECK-LABEL: @or_invert_predicate(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP:%.*]] = icmp sle i32 [[D:%.*]], 3
@@ -144,7 +144,7 @@ define i32 @or_invert_predicate(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[CMP]], i1 true, i1 [[CMP1]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[COND_END:%.*]], label [[COND_FALSE:%.*]]
; CHECK: cond.false:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; CHECK-NEXT: br label [[COND_END]]
; CHECK: cond.end:
; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -160,7 +160,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.end, label %cond.false
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -168,7 +168,7 @@ cond.end:
ret i32 %cond
}
-define i32 @or_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) #0 {
+define i32 @or_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input) #0 {
; THUMB-LABEL: @or_predicate_minsize(
; THUMB-NEXT: entry:
; THUMB-NEXT: [[CMP:%.*]] = icmp sgt i32 [[D:%.*]], 3
@@ -178,7 +178,7 @@ define i32 @or_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) #0
; THUMB-NEXT: [[CMP1:%.*]] = icmp slt i32 [[ADD]], [[B:%.*]]
; THUMB-NEXT: br i1 [[CMP1]], label [[COND_END]], label [[COND_FALSE:%.*]]
; THUMB: cond.false:
-; THUMB-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; THUMB-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; THUMB-NEXT: br label [[COND_END]]
; THUMB: cond.end:
; THUMB-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[LOR_LHS_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -192,7 +192,7 @@ define i32 @or_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) #0
; ARM-NEXT: [[OR_COND:%.*]] = select i1 [[CMP]], i1 true, i1 [[CMP1]]
; ARM-NEXT: br i1 [[OR_COND]], label [[COND_END:%.*]], label [[COND_FALSE:%.*]]
; ARM: cond.false:
-; ARM-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; ARM-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; ARM-NEXT: br label [[COND_END]]
; ARM: cond.end:
; ARM-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -208,7 +208,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.end, label %cond.false
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -216,7 +216,7 @@ cond.end:
ret i32 %cond
}
-define i32 @or_invert_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) #0 {
+define i32 @or_invert_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input) #0 {
; THUMB-LABEL: @or_invert_predicate_minsize(
; THUMB-NEXT: entry:
; THUMB-NEXT: [[CMP:%.*]] = icmp sgt i32 [[D:%.*]], 3
@@ -226,7 +226,7 @@ define i32 @or_invert_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %in
; THUMB-NEXT: [[CMP1:%.*]] = icmp slt i32 [[ADD]], [[B:%.*]]
; THUMB-NEXT: br i1 [[CMP1]], label [[COND_END]], label [[COND_FALSE:%.*]]
; THUMB: cond.false:
-; THUMB-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; THUMB-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; THUMB-NEXT: br label [[COND_END]]
; THUMB: cond.end:
; THUMB-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[LOR_LHS_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -240,7 +240,7 @@ define i32 @or_invert_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %in
; ARM-NEXT: [[OR_COND:%.*]] = select i1 [[CMP]], i1 true, i1 [[CMP1]]
; ARM-NEXT: br i1 [[OR_COND]], label [[COND_END:%.*]], label [[COND_FALSE:%.*]]
; ARM: cond.false:
-; ARM-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; ARM-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; ARM-NEXT: br label [[COND_END]]
; ARM: cond.end:
; ARM-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -256,7 +256,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.end, label %cond.false
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -264,7 +264,7 @@ cond.end:
ret i32 %cond
}
-define i32 @or_xor_predicate(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input, i1 %cmp) {
+define i32 @or_xor_predicate(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input, i1 %cmp) {
; CHECK-LABEL: @or_xor_predicate(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_NOT:%.*]] = xor i1 [[CMP:%.*]], true
@@ -273,7 +273,7 @@ define i32 @or_xor_predicate(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input, i1 %cm
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[CMP_NOT]], i1 true, i1 [[CMP1]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[COND_END:%.*]], label [[COND_FALSE:%.*]]
; CHECK: cond.false:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; CHECK-NEXT: br label [[COND_END]]
; CHECK: cond.end:
; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -288,7 +288,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.end, label %cond.false
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -296,7 +296,7 @@ cond.end:
ret i32 %cond
}
-define i32 @or_xor_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input, i1 %cmp) #0 {
+define i32 @or_xor_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input, i1 %cmp) #0 {
; THUMB-LABEL: @or_xor_predicate_minsize(
; THUMB-NEXT: entry:
; THUMB-NEXT: br i1 [[CMP:%.*]], label [[LOR_LHS_FALSE:%.*]], label [[COND_END:%.*]]
@@ -305,7 +305,7 @@ define i32 @or_xor_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input
; THUMB-NEXT: [[CMP1:%.*]] = icmp slt i32 [[ADD]], [[B:%.*]]
; THUMB-NEXT: br i1 [[CMP1]], label [[COND_END]], label [[COND_FALSE:%.*]]
; THUMB: cond.false:
-; THUMB-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; THUMB-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; THUMB-NEXT: br label [[COND_END]]
; THUMB: cond.end:
; THUMB-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[LOR_LHS_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -319,7 +319,7 @@ define i32 @or_xor_predicate_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input
; ARM-NEXT: [[OR_COND:%.*]] = select i1 [[CMP_NOT]], i1 true, i1 [[CMP1]]
; ARM-NEXT: br i1 [[OR_COND]], label [[COND_END:%.*]], label [[COND_FALSE:%.*]]
; ARM: cond.false:
-; ARM-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; ARM-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; ARM-NEXT: br label [[COND_END]]
; ARM: cond.end:
; ARM-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -334,7 +334,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.end, label %cond.false
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -342,7 +342,7 @@ cond.end:
ret i32 %cond
}
-define i32 @and_xor(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input, i1 %cmp) {
+define i32 @and_xor(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input, i1 %cmp) {
; CHECK-LABEL: @and_xor(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_NOT:%.*]] = xor i1 [[CMP:%.*]], true
@@ -351,7 +351,7 @@ define i32 @and_xor(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input, i1 %cmp) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[CMP_NOT]], i1 [[CMP1]], i1 false
; CHECK-NEXT: br i1 [[OR_COND]], label [[COND_FALSE:%.*]], label [[COND_END:%.*]]
; CHECK: cond.false:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; CHECK-NEXT: br label [[COND_END]]
; CHECK: cond.end:
; CHECK-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -366,7 +366,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.false, label %cond.end
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -374,7 +374,7 @@ cond.end:
ret i32 %cond
}
-define i32 @and_xor_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input, i1 %cmp) #0 {
+define i32 @and_xor_minsize(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input, i1 %cmp) #0 {
; THUMB-LABEL: @and_xor_minsize(
; THUMB-NEXT: entry:
; THUMB-NEXT: br i1 [[CMP:%.*]], label [[COND_END:%.*]], label [[LOR_LHS_FALSE:%.*]]
@@ -383,7 +383,7 @@ define i32 @and_xor_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input, i1 %cmp
; THUMB-NEXT: [[CMP1:%.*]] = icmp slt i32 [[ADD]], [[B:%.*]]
; THUMB-NEXT: br i1 [[CMP1]], label [[COND_FALSE:%.*]], label [[COND_END]]
; THUMB: cond.false:
-; THUMB-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; THUMB-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; THUMB-NEXT: br label [[COND_END]]
; THUMB: cond.end:
; THUMB-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[LOR_LHS_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -397,7 +397,7 @@ define i32 @and_xor_minsize(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input, i1 %cmp
; ARM-NEXT: [[OR_COND:%.*]] = select i1 [[CMP_NOT]], i1 [[CMP1]], i1 false
; ARM-NEXT: br i1 [[OR_COND]], label [[COND_FALSE:%.*]], label [[COND_END:%.*]]
; ARM: cond.false:
-; ARM-NEXT: [[TMP0:%.*]] = load i32, i32* [[INPUT:%.*]], align 4
+; ARM-NEXT: [[TMP0:%.*]] = load i32, ptr [[INPUT:%.*]], align 4
; ARM-NEXT: br label [[COND_END]]
; ARM: cond.end:
; ARM-NEXT: [[COND:%.*]] = phi i32 [ [[TMP0]], [[COND_FALSE]] ], [ 0, [[ENTRY:%.*]] ]
@@ -412,7 +412,7 @@ lor.lhs.false:
br i1 %cmp1, label %cond.false, label %cond.end
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/select-costs.ll b/llvm/test/Transforms/SimplifyCFG/ARM/select-costs.ll
index 2285952e13475..21801b9c2f83d 100644
--- a/llvm/test/Transforms/SimplifyCFG/ARM/select-costs.ll
+++ b/llvm/test/Transforms/SimplifyCFG/ARM/select-costs.ll
@@ -7,11 +7,11 @@
; Test that the phis from for.inc.preheader aren't hoisted into sw.bb92 because
; the cost is too great - we can make a better decision later on.
; FIXME: The Arm cost model needs to be updated for SizeAndLatency.
-define i32 @multiple_spec_select_costs(i8* %a, i32* %idx, i8 %in) {
+define i32 @multiple_spec_select_costs(ptr %a, ptr %idx, i8 %in) {
; V8M-LABEL: @multiple_spec_select_costs(
; V8M-NEXT: entry:
-; V8M-NEXT: [[GEP_A_2:%.*]] = getelementptr inbounds i8, i8* [[A:%.*]], i32 2
-; V8M-NEXT: [[INCDEC_PTR109_C4:%.*]] = getelementptr inbounds i8, i8* [[A]], i32 3
+; V8M-NEXT: [[GEP_A_2:%.*]] = getelementptr inbounds i8, ptr [[A:%.*]], i32 2
+; V8M-NEXT: [[INCDEC_PTR109_C4:%.*]] = getelementptr inbounds i8, ptr [[A]], i32 3
; V8M-NEXT: [[ZERO:%.*]] = icmp ne i8 [[IN:%.*]], 0
; V8M-NEXT: br i1 [[ZERO]], label [[FOR_INC_PREHEADER:%.*]], label [[SW_BB92:%.*]]
; V8M: sw.bb92:
@@ -21,14 +21,14 @@ define i32 @multiple_spec_select_costs(i8* %a, i32* %idx, i8 %in) {
; V8M-NEXT: [[SPEC_SELECT1:%.*]] = select i1 [[UGT_9]], i32 1, i32 7
; V8M-NEXT: br label [[FOR_INC_PREHEADER]]
; V8M: for.inc.preheader:
-; V8M-NEXT: [[STR_PH_0:%.*]] = phi i8* [ [[GEP_A_2]], [[ENTRY:%.*]] ], [ [[INCDEC_PTR109_C4]], [[SW_BB92]] ]
+; V8M-NEXT: [[STR_PH_0:%.*]] = phi ptr [ [[GEP_A_2]], [[ENTRY:%.*]] ], [ [[INCDEC_PTR109_C4]], [[SW_BB92]] ]
; V8M-NEXT: [[CMP:%.*]] = phi i1 [ false, [[ENTRY]] ], [ [[SPEC_SELECT]], [[SW_BB92]] ]
; V8M-NEXT: [[PHI_RES:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ [[SPEC_SELECT1]], [[SW_BB92]] ]
; V8M-NEXT: br label [[FOR_INC:%.*]]
; V8M: for.inc:
-; V8M-NEXT: [[STR_PH_1:%.*]] = phi i8* [ [[INCDEC_PTR109:%.*]], [[FOR_BODY:%.*]] ], [ [[STR_PH_0]], [[FOR_INC_PREHEADER]] ]
-; V8M-NEXT: [[INCDEC_PTR109]] = getelementptr inbounds i8, i8* [[STR_PH_1]], i32 1
-; V8M-NEXT: [[LOAD_1:%.*]] = load i8, i8* [[INCDEC_PTR109]], align 1
+; V8M-NEXT: [[STR_PH_1:%.*]] = phi ptr [ [[INCDEC_PTR109:%.*]], [[FOR_BODY:%.*]] ], [ [[STR_PH_0]], [[FOR_INC_PREHEADER]] ]
+; V8M-NEXT: [[INCDEC_PTR109]] = getelementptr inbounds i8, ptr [[STR_PH_1]], i32 1
+; V8M-NEXT: [[LOAD_1:%.*]] = load i8, ptr [[INCDEC_PTR109]], align 1
; V8M-NEXT: [[TOBOOL:%.*]] = icmp ne i8 [[LOAD_1]], 0
; V8M-NEXT: [[AND:%.*]] = and i1 [[CMP]], [[TOBOOL]]
; V8M-NEXT: br i1 [[AND]], label [[FOR_BODY]], label [[EXIT:%.*]]
@@ -40,8 +40,8 @@ define i32 @multiple_spec_select_costs(i8* %a, i32* %idx, i8 %in) {
;
; V8A-LABEL: @multiple_spec_select_costs(
; V8A-NEXT: entry:
-; V8A-NEXT: [[GEP_A_2:%.*]] = getelementptr inbounds i8, i8* [[A:%.*]], i32 2
-; V8A-NEXT: [[INCDEC_PTR109_C4:%.*]] = getelementptr inbounds i8, i8* [[A]], i32 3
+; V8A-NEXT: [[GEP_A_2:%.*]] = getelementptr inbounds i8, ptr [[A:%.*]], i32 2
+; V8A-NEXT: [[INCDEC_PTR109_C4:%.*]] = getelementptr inbounds i8, ptr [[A]], i32 3
; V8A-NEXT: [[ZERO:%.*]] = icmp ne i8 [[IN:%.*]], 0
; V8A-NEXT: br i1 [[ZERO]], label [[FOR_INC_PREHEADER:%.*]], label [[SW_BB92:%.*]]
; V8A: sw.bb92:
@@ -51,14 +51,14 @@ define i32 @multiple_spec_select_costs(i8* %a, i32* %idx, i8 %in) {
; V8A-NEXT: [[SPEC_SELECT1:%.*]] = select i1 [[UGT_9]], i32 1, i32 7
; V8A-NEXT: br label [[FOR_INC_PREHEADER]]
; V8A: for.inc.preheader:
-; V8A-NEXT: [[STR_PH_0:%.*]] = phi i8* [ [[GEP_A_2]], [[ENTRY:%.*]] ], [ [[INCDEC_PTR109_C4]], [[SW_BB92]] ]
+; V8A-NEXT: [[STR_PH_0:%.*]] = phi ptr [ [[GEP_A_2]], [[ENTRY:%.*]] ], [ [[INCDEC_PTR109_C4]], [[SW_BB92]] ]
; V8A-NEXT: [[CMP:%.*]] = phi i1 [ false, [[ENTRY]] ], [ [[SPEC_SELECT]], [[SW_BB92]] ]
; V8A-NEXT: [[PHI_RES:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ [[SPEC_SELECT1]], [[SW_BB92]] ]
; V8A-NEXT: br label [[FOR_INC:%.*]]
; V8A: for.inc:
-; V8A-NEXT: [[STR_PH_1:%.*]] = phi i8* [ [[INCDEC_PTR109:%.*]], [[FOR_BODY:%.*]] ], [ [[STR_PH_0]], [[FOR_INC_PREHEADER]] ]
-; V8A-NEXT: [[INCDEC_PTR109]] = getelementptr inbounds i8, i8* [[STR_PH_1]], i32 1
-; V8A-NEXT: [[LOAD_1:%.*]] = load i8, i8* [[INCDEC_PTR109]], align 1
+; V8A-NEXT: [[STR_PH_1:%.*]] = phi ptr [ [[INCDEC_PTR109:%.*]], [[FOR_BODY:%.*]] ], [ [[STR_PH_0]], [[FOR_INC_PREHEADER]] ]
+; V8A-NEXT: [[INCDEC_PTR109]] = getelementptr inbounds i8, ptr [[STR_PH_1]], i32 1
+; V8A-NEXT: [[LOAD_1:%.*]] = load i8, ptr [[INCDEC_PTR109]], align 1
; V8A-NEXT: [[TOBOOL:%.*]] = icmp ne i8 [[LOAD_1]], 0
; V8A-NEXT: [[AND:%.*]] = and i1 [[CMP]], [[TOBOOL]]
; V8A-NEXT: br i1 [[AND]], label [[FOR_BODY]], label [[EXIT:%.*]]
@@ -69,8 +69,8 @@ define i32 @multiple_spec_select_costs(i8* %a, i32* %idx, i8 %in) {
; V8A-NEXT: ret i32 [[PHI_RES]]
;
entry:
- %gep.a.2 = getelementptr inbounds i8, i8* %a, i32 2
- %incdec.ptr109.c4 = getelementptr inbounds i8, i8* %a, i32 3
+ %gep.a.2 = getelementptr inbounds i8, ptr %a, i32 2
+ %incdec.ptr109.c4 = getelementptr inbounds i8, ptr %a, i32 3
%zero = icmp ne i8 %in, 0
br i1 %zero , label %for.inc.preheader, label %sw.bb92
@@ -83,15 +83,15 @@ select.unfold198:
br label %for.inc.preheader
for.inc.preheader:
- %str.ph.0 = phi i8* [ %incdec.ptr109.c4, %select.unfold198 ], [ %incdec.ptr109.c4, %sw.bb92 ], [ %gep.a.2, %entry ]
+ %str.ph.0 = phi ptr [ %incdec.ptr109.c4, %select.unfold198 ], [ %incdec.ptr109.c4, %sw.bb92 ], [ %gep.a.2, %entry ]
%cmp = phi i1 [ true, %select.unfold198 ], [ false, %sw.bb92 ], [ false, %entry ]
%phi.res = phi i32 [ 7, %select.unfold198 ], [ 1, %sw.bb92 ], [ 1, %entry ]
br label %for.inc
for.inc:
- %str.ph.1 = phi i8* [ %incdec.ptr109, %for.body ], [ %str.ph.0, %for.inc.preheader ]
- %incdec.ptr109 = getelementptr inbounds i8, i8* %str.ph.1, i32 1
- %load.1 = load i8, i8* %incdec.ptr109, align 1
+ %str.ph.1 = phi ptr [ %incdec.ptr109, %for.body ], [ %str.ph.0, %for.inc.preheader ]
+ %incdec.ptr109 = getelementptr inbounds i8, ptr %str.ph.1, i32 1
+ %load.1 = load i8, ptr %incdec.ptr109, align 1
%tobool = icmp ne i8 %load.1, 0
%and = and i1 %cmp, %tobool
br i1 %and, label %for.body, label %exit
@@ -104,11 +104,11 @@ exit:
ret i32 %phi.res
}
-define i32 @multiple_spec_select_costs_minsize(i8* %a, i32* %idx, i8 %in) #0 {
+define i32 @multiple_spec_select_costs_minsize(ptr %a, ptr %idx, i8 %in) #0 {
; V8M-LABEL: @multiple_spec_select_costs_minsize(
; V8M-NEXT: entry:
-; V8M-NEXT: [[GEP_A_2:%.*]] = getelementptr inbounds i8, i8* [[A:%.*]], i32 2
-; V8M-NEXT: [[INCDEC_PTR109_C4:%.*]] = getelementptr inbounds i8, i8* [[A]], i32 3
+; V8M-NEXT: [[GEP_A_2:%.*]] = getelementptr inbounds i8, ptr [[A:%.*]], i32 2
+; V8M-NEXT: [[INCDEC_PTR109_C4:%.*]] = getelementptr inbounds i8, ptr [[A]], i32 3
; V8M-NEXT: [[ZERO:%.*]] = icmp ne i8 [[IN:%.*]], 0
; V8M-NEXT: br i1 [[ZERO]], label [[FOR_INC_PREHEADER:%.*]], label [[SW_BB92:%.*]]
; V8M: sw.bb92:
@@ -118,14 +118,14 @@ define i32 @multiple_spec_select_costs_minsize(i8* %a, i32* %idx, i8 %in) #0 {
; V8M: select.unfold198:
; V8M-NEXT: br label [[FOR_INC_PREHEADER]]
; V8M: for.inc.preheader:
-; V8M-NEXT: [[STR_PH_0:%.*]] = phi i8* [ [[INCDEC_PTR109_C4]], [[SELECT_UNFOLD198]] ], [ [[INCDEC_PTR109_C4]], [[SW_BB92]] ], [ [[GEP_A_2]], [[ENTRY:%.*]] ]
+; V8M-NEXT: [[STR_PH_0:%.*]] = phi ptr [ [[INCDEC_PTR109_C4]], [[SELECT_UNFOLD198]] ], [ [[INCDEC_PTR109_C4]], [[SW_BB92]] ], [ [[GEP_A_2]], [[ENTRY:%.*]] ]
; V8M-NEXT: [[CMP:%.*]] = phi i1 [ true, [[SELECT_UNFOLD198]] ], [ false, [[SW_BB92]] ], [ false, [[ENTRY]] ]
; V8M-NEXT: [[PHI_RES:%.*]] = phi i32 [ 7, [[SELECT_UNFOLD198]] ], [ 1, [[SW_BB92]] ], [ 1, [[ENTRY]] ]
; V8M-NEXT: br label [[FOR_INC:%.*]]
; V8M: for.inc:
-; V8M-NEXT: [[STR_PH_1:%.*]] = phi i8* [ [[INCDEC_PTR109:%.*]], [[FOR_BODY:%.*]] ], [ [[STR_PH_0]], [[FOR_INC_PREHEADER]] ]
-; V8M-NEXT: [[INCDEC_PTR109]] = getelementptr inbounds i8, i8* [[STR_PH_1]], i32 1
-; V8M-NEXT: [[LOAD_1:%.*]] = load i8, i8* [[INCDEC_PTR109]], align 1
+; V8M-NEXT: [[STR_PH_1:%.*]] = phi ptr [ [[INCDEC_PTR109:%.*]], [[FOR_BODY:%.*]] ], [ [[STR_PH_0]], [[FOR_INC_PREHEADER]] ]
+; V8M-NEXT: [[INCDEC_PTR109]] = getelementptr inbounds i8, ptr [[STR_PH_1]], i32 1
+; V8M-NEXT: [[LOAD_1:%.*]] = load i8, ptr [[INCDEC_PTR109]], align 1
; V8M-NEXT: [[TOBOOL:%.*]] = icmp ne i8 [[LOAD_1]], 0
; V8M-NEXT: [[AND:%.*]] = and i1 [[CMP]], [[TOBOOL]]
; V8M-NEXT: br i1 [[AND]], label [[FOR_BODY]], label [[EXIT:%.*]]
@@ -137,8 +137,8 @@ define i32 @multiple_spec_select_costs_minsize(i8* %a, i32* %idx, i8 %in) #0 {
;
; V8A-LABEL: @multiple_spec_select_costs_minsize(
; V8A-NEXT: entry:
-; V8A-NEXT: [[GEP_A_2:%.*]] = getelementptr inbounds i8, i8* [[A:%.*]], i32 2
-; V8A-NEXT: [[INCDEC_PTR109_C4:%.*]] = getelementptr inbounds i8, i8* [[A]], i32 3
+; V8A-NEXT: [[GEP_A_2:%.*]] = getelementptr inbounds i8, ptr [[A:%.*]], i32 2
+; V8A-NEXT: [[INCDEC_PTR109_C4:%.*]] = getelementptr inbounds i8, ptr [[A]], i32 3
; V8A-NEXT: [[ZERO:%.*]] = icmp ne i8 [[IN:%.*]], 0
; V8A-NEXT: br i1 [[ZERO]], label [[FOR_INC_PREHEADER:%.*]], label [[SW_BB92:%.*]]
; V8A: sw.bb92:
@@ -148,14 +148,14 @@ define i32 @multiple_spec_select_costs_minsize(i8* %a, i32* %idx, i8 %in) #0 {
; V8A-NEXT: [[SPEC_SELECT1:%.*]] = select i1 [[UGT_9]], i32 1, i32 7
; V8A-NEXT: br label [[FOR_INC_PREHEADER]]
; V8A: for.inc.preheader:
-; V8A-NEXT: [[STR_PH_0:%.*]] = phi i8* [ [[GEP_A_2]], [[ENTRY:%.*]] ], [ [[INCDEC_PTR109_C4]], [[SW_BB92]] ]
+; V8A-NEXT: [[STR_PH_0:%.*]] = phi ptr [ [[GEP_A_2]], [[ENTRY:%.*]] ], [ [[INCDEC_PTR109_C4]], [[SW_BB92]] ]
; V8A-NEXT: [[CMP:%.*]] = phi i1 [ false, [[ENTRY]] ], [ [[SPEC_SELECT]], [[SW_BB92]] ]
; V8A-NEXT: [[PHI_RES:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ [[SPEC_SELECT1]], [[SW_BB92]] ]
; V8A-NEXT: br label [[FOR_INC:%.*]]
; V8A: for.inc:
-; V8A-NEXT: [[STR_PH_1:%.*]] = phi i8* [ [[INCDEC_PTR109:%.*]], [[FOR_BODY:%.*]] ], [ [[STR_PH_0]], [[FOR_INC_PREHEADER]] ]
-; V8A-NEXT: [[INCDEC_PTR109]] = getelementptr inbounds i8, i8* [[STR_PH_1]], i32 1
-; V8A-NEXT: [[LOAD_1:%.*]] = load i8, i8* [[INCDEC_PTR109]], align 1
+; V8A-NEXT: [[STR_PH_1:%.*]] = phi ptr [ [[INCDEC_PTR109:%.*]], [[FOR_BODY:%.*]] ], [ [[STR_PH_0]], [[FOR_INC_PREHEADER]] ]
+; V8A-NEXT: [[INCDEC_PTR109]] = getelementptr inbounds i8, ptr [[STR_PH_1]], i32 1
+; V8A-NEXT: [[LOAD_1:%.*]] = load i8, ptr [[INCDEC_PTR109]], align 1
; V8A-NEXT: [[TOBOOL:%.*]] = icmp ne i8 [[LOAD_1]], 0
; V8A-NEXT: [[AND:%.*]] = and i1 [[CMP]], [[TOBOOL]]
; V8A-NEXT: br i1 [[AND]], label [[FOR_BODY]], label [[EXIT:%.*]]
@@ -166,8 +166,8 @@ define i32 @multiple_spec_select_costs_minsize(i8* %a, i32* %idx, i8 %in) #0 {
; V8A-NEXT: ret i32 [[PHI_RES]]
;
entry:
- %gep.a.2 = getelementptr inbounds i8, i8* %a, i32 2
- %incdec.ptr109.c4 = getelementptr inbounds i8, i8* %a, i32 3
+ %gep.a.2 = getelementptr inbounds i8, ptr %a, i32 2
+ %incdec.ptr109.c4 = getelementptr inbounds i8, ptr %a, i32 3
%zero = icmp ne i8 %in, 0
br i1 %zero , label %for.inc.preheader, label %sw.bb92
@@ -180,15 +180,15 @@ select.unfold198:
br label %for.inc.preheader
for.inc.preheader:
- %str.ph.0 = phi i8* [ %incdec.ptr109.c4, %select.unfold198 ], [ %incdec.ptr109.c4, %sw.bb92 ], [ %gep.a.2, %entry ]
+ %str.ph.0 = phi ptr [ %incdec.ptr109.c4, %select.unfold198 ], [ %incdec.ptr109.c4, %sw.bb92 ], [ %gep.a.2, %entry ]
%cmp = phi i1 [ true, %select.unfold198 ], [ false, %sw.bb92 ], [ false, %entry ]
%phi.res = phi i32 [ 7, %select.unfold198 ], [ 1, %sw.bb92 ], [ 1, %entry ]
br label %for.inc
for.inc:
- %str.ph.1 = phi i8* [ %incdec.ptr109, %for.body ], [ %str.ph.0, %for.inc.preheader ]
- %incdec.ptr109 = getelementptr inbounds i8, i8* %str.ph.1, i32 1
- %load.1 = load i8, i8* %incdec.ptr109, align 1
+ %str.ph.1 = phi ptr [ %incdec.ptr109, %for.body ], [ %str.ph.0, %for.inc.preheader ]
+ %incdec.ptr109 = getelementptr inbounds i8, ptr %str.ph.1, i32 1
+ %load.1 = load i8, ptr %incdec.ptr109, align 1
%tobool = icmp ne i8 %load.1, 0
%and = and i1 %cmp, %tobool
br i1 %and, label %for.body, label %exit
diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll b/llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll
index 6ff248241fcc5..b3d2864d51945 100644
--- a/llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll
+++ b/llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll
@@ -47,13 +47,13 @@ cond.end:
ret double %cond
}
-define void @sqrt_test(float addrspace(1)* noalias nocapture %out, float %a) nounwind {
+define void @sqrt_test(ptr addrspace(1) noalias nocapture %out, float %a) nounwind {
; CHECK-MVE-LABEL: @sqrt_test(
; CHECK-MVE-NEXT: entry:
; CHECK-MVE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-MVE-NEXT: [[TMP0:%.*]] = tail call float @llvm.sqrt.f32(float [[A]]) #3
; CHECK-MVE-NEXT: [[COND_I:%.*]] = select afn i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-MVE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-MVE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-MVE-NEXT: ret void
;
; CHECK-V8M-MAIN-LABEL: @sqrt_test(
@@ -61,7 +61,7 @@ define void @sqrt_test(float addrspace(1)* noalias nocapture %out, float %a) nou
; CHECK-V8M-MAIN-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-MAIN-NEXT: [[TMP0:%.*]] = tail call float @llvm.sqrt.f32(float [[A]]) #2
; CHECK-V8M-MAIN-NEXT: [[COND_I:%.*]] = select afn i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-MAIN-NEXT: ret void
;
; CHECK-V8M-BASE-LABEL: @sqrt_test(
@@ -69,7 +69,7 @@ define void @sqrt_test(float addrspace(1)* noalias nocapture %out, float %a) nou
; CHECK-V8M-BASE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-BASE-NEXT: [[TMP0:%.*]] = tail call float @llvm.sqrt.f32(float [[A]]) #2
; CHECK-V8M-BASE-NEXT: [[COND_I:%.*]] = select afn i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-BASE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-BASE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-BASE-NEXT: ret void
;
entry:
@@ -82,17 +82,17 @@ cond.else.i: ; preds = %entry
test_sqrt.exit: ; preds = %cond.else.i, %entry
%cond.i = phi afn float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @fabs_test(float addrspace(1)* noalias nocapture %out, float %a) nounwind {
+define void @fabs_test(ptr addrspace(1) noalias nocapture %out, float %a) nounwind {
; CHECK-MVE-LABEL: @fabs_test(
; CHECK-MVE-NEXT: entry:
; CHECK-MVE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-MVE-NEXT: [[TMP0:%.*]] = tail call float @llvm.fabs.f32(float [[A]]) #3
; CHECK-MVE-NEXT: [[COND_I:%.*]] = select reassoc i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-MVE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-MVE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-MVE-NEXT: ret void
;
; CHECK-V8M-MAIN-LABEL: @fabs_test(
@@ -100,7 +100,7 @@ define void @fabs_test(float addrspace(1)* noalias nocapture %out, float %a) nou
; CHECK-V8M-MAIN-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-MAIN-NEXT: [[TMP0:%.*]] = tail call float @llvm.fabs.f32(float [[A]]) #2
; CHECK-V8M-MAIN-NEXT: [[COND_I:%.*]] = select reassoc i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-MAIN-NEXT: ret void
;
; CHECK-V8M-BASE-LABEL: @fabs_test(
@@ -108,7 +108,7 @@ define void @fabs_test(float addrspace(1)* noalias nocapture %out, float %a) nou
; CHECK-V8M-BASE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-BASE-NEXT: [[TMP0:%.*]] = tail call float @llvm.fabs.f32(float [[A]]) #2
; CHECK-V8M-BASE-NEXT: [[COND_I:%.*]] = select reassoc i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-BASE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-BASE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-BASE-NEXT: ret void
;
entry:
@@ -121,17 +121,17 @@ cond.else.i: ; preds = %entry
test_fabs.exit: ; preds = %cond.else.i, %entry
%cond.i = phi reassoc float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @fma_test(float addrspace(1)* noalias nocapture %out, float %a, float %b, float %c) nounwind {
+define void @fma_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b, float %c) nounwind {
; CHECK-MVE-LABEL: @fma_test(
; CHECK-MVE-NEXT: entry:
; CHECK-MVE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-MVE-NEXT: [[TMP0:%.*]] = tail call float @llvm.fma.f32(float [[A]], float [[B:%.*]], float [[C:%.*]]) #3
; CHECK-MVE-NEXT: [[COND_I:%.*]] = select reassoc nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-MVE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-MVE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-MVE-NEXT: ret void
;
; CHECK-V8M-MAIN-LABEL: @fma_test(
@@ -139,7 +139,7 @@ define void @fma_test(float addrspace(1)* noalias nocapture %out, float %a, floa
; CHECK-V8M-MAIN-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-MAIN-NEXT: [[TMP0:%.*]] = tail call float @llvm.fma.f32(float [[A]], float [[B:%.*]], float [[C:%.*]]) #2
; CHECK-V8M-MAIN-NEXT: [[COND_I:%.*]] = select reassoc nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-MAIN-NEXT: ret void
;
; CHECK-V8M-BASE-LABEL: @fma_test(
@@ -147,7 +147,7 @@ define void @fma_test(float addrspace(1)* noalias nocapture %out, float %a, floa
; CHECK-V8M-BASE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-BASE-NEXT: [[TMP0:%.*]] = tail call float @llvm.fma.f32(float [[A]], float [[B:%.*]], float [[C:%.*]]) #2
; CHECK-V8M-BASE-NEXT: [[COND_I:%.*]] = select reassoc nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-BASE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-BASE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-BASE-NEXT: ret void
;
entry:
@@ -160,17 +160,17 @@ cond.else.i: ; preds = %entry
test_fma.exit: ; preds = %cond.else.i, %entry
%cond.i = phi nsz reassoc float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @fmuladd_test(float addrspace(1)* noalias nocapture %out, float %a, float %b, float %c) nounwind {
+define void @fmuladd_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b, float %c) nounwind {
; CHECK-MVE-LABEL: @fmuladd_test(
; CHECK-MVE-NEXT: entry:
; CHECK-MVE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-MVE-NEXT: [[TMP0:%.*]] = tail call float @llvm.fmuladd.f32(float [[A]], float [[B:%.*]], float [[C:%.*]]) #3
; CHECK-MVE-NEXT: [[COND_I:%.*]] = select ninf i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-MVE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-MVE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-MVE-NEXT: ret void
;
; CHECK-V8M-MAIN-LABEL: @fmuladd_test(
@@ -178,7 +178,7 @@ define void @fmuladd_test(float addrspace(1)* noalias nocapture %out, float %a,
; CHECK-V8M-MAIN-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-MAIN-NEXT: [[TMP0:%.*]] = tail call float @llvm.fmuladd.f32(float [[A]], float [[B:%.*]], float [[C:%.*]]) #2
; CHECK-V8M-MAIN-NEXT: [[COND_I:%.*]] = select ninf i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-MAIN-NEXT: ret void
;
; CHECK-V8M-BASE-LABEL: @fmuladd_test(
@@ -186,7 +186,7 @@ define void @fmuladd_test(float addrspace(1)* noalias nocapture %out, float %a,
; CHECK-V8M-BASE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-BASE-NEXT: [[TMP0:%.*]] = tail call float @llvm.fmuladd.f32(float [[A]], float [[B:%.*]], float [[C:%.*]]) #2
; CHECK-V8M-BASE-NEXT: [[COND_I:%.*]] = select ninf i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-BASE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-BASE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-BASE-NEXT: ret void
;
entry:
@@ -199,17 +199,17 @@ cond.else.i: ; preds = %entry
test_fmuladd.exit: ; preds = %cond.else.i, %entry
%cond.i = phi ninf float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @minnum_test(float addrspace(1)* noalias nocapture %out, float %a, float %b) nounwind {
+define void @minnum_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b) nounwind {
; CHECK-MVE-LABEL: @minnum_test(
; CHECK-MVE-NEXT: entry:
; CHECK-MVE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-MVE-NEXT: [[TMP0:%.*]] = tail call float @llvm.minnum.f32(float [[A]], float [[B:%.*]]) #3
; CHECK-MVE-NEXT: [[COND_I:%.*]] = select i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-MVE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-MVE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-MVE-NEXT: ret void
;
; CHECK-V8M-MAIN-LABEL: @minnum_test(
@@ -217,7 +217,7 @@ define void @minnum_test(float addrspace(1)* noalias nocapture %out, float %a, f
; CHECK-V8M-MAIN-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-MAIN-NEXT: [[TMP0:%.*]] = tail call float @llvm.minnum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-V8M-MAIN-NEXT: [[COND_I:%.*]] = select i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-MAIN-NEXT: ret void
;
; CHECK-V8M-BASE-LABEL: @minnum_test(
@@ -225,7 +225,7 @@ define void @minnum_test(float addrspace(1)* noalias nocapture %out, float %a, f
; CHECK-V8M-BASE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-BASE-NEXT: [[TMP0:%.*]] = tail call float @llvm.minnum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-V8M-BASE-NEXT: [[COND_I:%.*]] = select i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-BASE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-BASE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-BASE-NEXT: ret void
;
entry:
@@ -238,17 +238,17 @@ cond.else.i: ; preds = %entry
test_minnum.exit: ; preds = %cond.else.i, %entry
%cond.i = phi float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @maxnum_test(float addrspace(1)* noalias nocapture %out, float %a, float %b) nounwind {
+define void @maxnum_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b) nounwind {
; CHECK-MVE-LABEL: @maxnum_test(
; CHECK-MVE-NEXT: entry:
; CHECK-MVE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-MVE-NEXT: [[TMP0:%.*]] = tail call float @llvm.maxnum.f32(float [[A]], float [[B:%.*]]) #3
; CHECK-MVE-NEXT: [[COND_I:%.*]] = select ninf nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-MVE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-MVE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-MVE-NEXT: ret void
;
; CHECK-V8M-MAIN-LABEL: @maxnum_test(
@@ -256,7 +256,7 @@ define void @maxnum_test(float addrspace(1)* noalias nocapture %out, float %a, f
; CHECK-V8M-MAIN-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-MAIN-NEXT: [[TMP0:%.*]] = tail call float @llvm.maxnum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-V8M-MAIN-NEXT: [[COND_I:%.*]] = select ninf nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-MAIN-NEXT: ret void
;
; CHECK-V8M-BASE-LABEL: @maxnum_test(
@@ -264,7 +264,7 @@ define void @maxnum_test(float addrspace(1)* noalias nocapture %out, float %a, f
; CHECK-V8M-BASE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-BASE-NEXT: [[TMP0:%.*]] = tail call float @llvm.maxnum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-V8M-BASE-NEXT: [[COND_I:%.*]] = select ninf nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-BASE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-BASE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-BASE-NEXT: ret void
;
entry:
@@ -277,17 +277,17 @@ cond.else.i: ; preds = %entry
test_maxnum.exit: ; preds = %cond.else.i, %entry
%cond.i = phi ninf nsz float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @minimum_test(float addrspace(1)* noalias nocapture %out, float %a, float %b) nounwind {
+define void @minimum_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b) nounwind {
; CHECK-MVE-LABEL: @minimum_test(
; CHECK-MVE-NEXT: entry:
; CHECK-MVE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-MVE-NEXT: [[TMP0:%.*]] = tail call float @llvm.minimum.f32(float [[A]], float [[B:%.*]]) #3
; CHECK-MVE-NEXT: [[COND_I:%.*]] = select reassoc i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-MVE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-MVE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-MVE-NEXT: ret void
;
; CHECK-V8M-MAIN-LABEL: @minimum_test(
@@ -295,7 +295,7 @@ define void @minimum_test(float addrspace(1)* noalias nocapture %out, float %a,
; CHECK-V8M-MAIN-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-MAIN-NEXT: [[TMP0:%.*]] = tail call float @llvm.minimum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-V8M-MAIN-NEXT: [[COND_I:%.*]] = select reassoc i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-MAIN-NEXT: ret void
;
; CHECK-V8M-BASE-LABEL: @minimum_test(
@@ -303,7 +303,7 @@ define void @minimum_test(float addrspace(1)* noalias nocapture %out, float %a,
; CHECK-V8M-BASE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-BASE-NEXT: [[TMP0:%.*]] = tail call float @llvm.minimum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-V8M-BASE-NEXT: [[COND_I:%.*]] = select reassoc i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-BASE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-BASE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-BASE-NEXT: ret void
;
entry:
@@ -316,17 +316,17 @@ cond.else.i: ; preds = %entry
test_minimum.exit: ; preds = %cond.else.i, %entry
%cond.i = phi reassoc float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @maximum_test(float addrspace(1)* noalias nocapture %out, float %a, float %b) nounwind {
+define void @maximum_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b) nounwind {
; CHECK-MVE-LABEL: @maximum_test(
; CHECK-MVE-NEXT: entry:
; CHECK-MVE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-MVE-NEXT: [[TMP0:%.*]] = tail call float @llvm.maximum.f32(float [[A]], float [[B:%.*]]) #3
; CHECK-MVE-NEXT: [[COND_I:%.*]] = select nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-MVE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-MVE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-MVE-NEXT: ret void
;
; CHECK-V8M-MAIN-LABEL: @maximum_test(
@@ -334,7 +334,7 @@ define void @maximum_test(float addrspace(1)* noalias nocapture %out, float %a,
; CHECK-V8M-MAIN-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-MAIN-NEXT: [[TMP0:%.*]] = tail call float @llvm.maximum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-V8M-MAIN-NEXT: [[COND_I:%.*]] = select nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-MAIN-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-MAIN-NEXT: ret void
;
; CHECK-V8M-BASE-LABEL: @maximum_test(
@@ -342,7 +342,7 @@ define void @maximum_test(float addrspace(1)* noalias nocapture %out, float %a,
; CHECK-V8M-BASE-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-V8M-BASE-NEXT: [[TMP0:%.*]] = tail call float @llvm.maximum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-V8M-BASE-NEXT: [[COND_I:%.*]] = select nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-V8M-BASE-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-V8M-BASE-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-V8M-BASE-NEXT: ret void
;
entry:
@@ -355,6 +355,6 @@ cond.else.i: ; preds = %entry
test_maximum.exit: ; preds = %cond.else.i, %entry
%cond.i = phi nsz float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table-constant-expr.ll b/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table-constant-expr.ll
index 2547e4424cfed..23e4e2e494050 100644
--- a/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table-constant-expr.ll
+++ b/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table-constant-expr.ll
@@ -15,7 +15,7 @@ target triple = "armv7a--none-eabi"
@g3 = external global i32, align 4
@g4 = external thread_local global i32, align 4
-define i32* @test3(i32 %n) {
+define ptr @test3(i32 %n) {
; CHECK-LABEL: @test3(
; CHECK-NEXT: entry:
; CHECK-NEXT: switch i32 [[N:%.*]], label [[SW_DEFAULT:%.*]] [
@@ -30,8 +30,8 @@ define i32* @test3(i32 %n) {
; CHECK: sw.default:
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
-; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32* [ @g4, [[SW_DEFAULT]] ], [ getelementptr inbounds (i32, i32* inttoptr (i32 mul (i32 ptrtoint (i32* @g3 to i32), i32 2) to i32*), i32 1), [[SW_BB2]] ], [ @g2, [[SW_BB1]] ], [ @g1, [[ENTRY:%.*]] ]
-; CHECK-NEXT: ret i32* [[RETVAL_0]]
+; CHECK-NEXT: [[RETVAL_0:%.*]] = phi ptr [ @g4, [[SW_DEFAULT]] ], [ getelementptr inbounds (i32, ptr inttoptr (i32 mul (i32 ptrtoint (ptr @g3 to i32), i32 2) to ptr), i32 1), [[SW_BB2]] ], [ @g2, [[SW_BB1]] ], [ @g1, [[ENTRY:%.*]] ]
+; CHECK-NEXT: ret ptr [[RETVAL_0]]
;
entry:
switch i32 %n, label %sw.default [
@@ -53,6 +53,6 @@ sw.default:
br label %return
return:
- %retval.0 = phi i32* [ @g4, %sw.default ], [ getelementptr inbounds (i32, i32* inttoptr (i32 mul (i32 ptrtoint (i32* @g3 to i32), i32 2) to i32*), i32 1), %sw.bb2 ], [ @g2, %sw.bb1 ], [ @g1, %sw.bb ]
- ret i32* %retval.0
+ %retval.0 = phi ptr [ @g4, %sw.default ], [ getelementptr inbounds (i32, ptr inttoptr (i32 mul (i32 ptrtoint (ptr @g3 to i32), i32 2) to ptr), i32 1), %sw.bb2 ], [ @g2, %sw.bb1 ], [ @g1, %sw.bb ]
+ ret ptr %retval.0
}
diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll b/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll
index 549ebb6dee018..463a85cfd583d 100644
--- a/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll
+++ b/llvm/test/Transforms/SimplifyCFG/ARM/switch-to-lookup-table.ll
@@ -12,12 +12,12 @@
; RUN: opt -S -passes='simplifycfg<switch-to-lookup>' -mtriple=arm -relocation-model=ropi-rwpi < %s | FileCheck %s --check-prefix=CHECK --check-prefix=DISABLE
; CHECK: @{{.*}} = private unnamed_addr constant [3 x i32] [i32 1234, i32 5678, i32 15532]
-; ENABLE: @{{.*}} = private unnamed_addr constant [3 x i32*] [i32* @c1, i32* @c2, i32* @c3]
-; DISABLE-NOT: @{{.*}} = private unnamed_addr constant [3 x i32*] [i32* @c1, i32* @c2, i32* @c3]
-; ENABLE: @{{.*}} = private unnamed_addr constant [3 x i32*] [i32* @g1, i32* @g2, i32* @g3]
-; DISABLE-NOT: @{{.*}} = private unnamed_addr constant [3 x i32*] [i32* @g1, i32* @g2, i32* @g3]
-; ENABLE: @{{.*}} = private unnamed_addr constant [3 x i32 (i32, i32)*] [i32 (i32, i32)* @f1, i32 (i32, i32)* @f2, i32 (i32, i32)* @f3]
-; DISABLE-NOT: @{{.*}} = private unnamed_addr constant [3 x i32 (i32, i32)*] [i32 (i32, i32)* @f1, i32 (i32, i32)* @f2, i32 (i32, i32)* @f3]
+; ENABLE: @{{.*}} = private unnamed_addr constant [3 x ptr] [ptr @c1, ptr @c2, ptr @c3]
+; DISABLE-NOT: @{{.*}} = private unnamed_addr constant [3 x ptr] [ptr @c1, ptr @c2, ptr @c3]
+; ENABLE: @{{.*}} = private unnamed_addr constant [3 x ptr] [ptr @g1, ptr @g2, ptr @g3]
+; DISABLE-NOT: @{{.*}} = private unnamed_addr constant [3 x ptr] [ptr @g1, ptr @g2, ptr @g3]
+; ENABLE: @{{.*}} = private unnamed_addr constant [3 x ptr] [ptr @f1, ptr @f2, ptr @f3]
+; DISABLE-NOT: @{{.*}} = private unnamed_addr constant [3 x ptr] [ptr @f1, ptr @f2, ptr @f3]
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "armv7a--none-eabi"
@@ -53,7 +53,7 @@ return:
@c4 = external constant i32, align 4
-define i32* @test2(i32 %n) {
+define ptr @test2(i32 %n) {
entry:
switch i32 %n, label %sw.default [
i32 0, label %sw.bb
@@ -74,8 +74,8 @@ sw.default:
br label %return
return:
- %retval.0 = phi i32* [ @c4, %sw.default ], [ @c3, %sw.bb2 ], [ @c2, %sw.bb1 ], [ @c1, %sw.bb ]
- ret i32* %retval.0
+ %retval.0 = phi ptr [ @c4, %sw.default ], [ @c3, %sw.bb2 ], [ @c2, %sw.bb1 ], [ @c1, %sw.bb ]
+ ret ptr %retval.0
}
@g1 = external global i32, align 4
@@ -83,7 +83,7 @@ return:
@g3 = external global i32, align 4
@g4 = external global i32, align 4
-define i32* @test3(i32 %n) {
+define ptr @test3(i32 %n) {
entry:
switch i32 %n, label %sw.default [
i32 0, label %sw.bb
@@ -104,8 +104,8 @@ sw.default:
br label %return
return:
- %retval.0 = phi i32* [ @g4, %sw.default ], [ @g3, %sw.bb2 ], [ @g2, %sw.bb1 ], [ @g1, %sw.bb ]
- ret i32* %retval.0
+ %retval.0 = phi ptr [ @g4, %sw.default ], [ @g3, %sw.bb2 ], [ @g2, %sw.bb1 ], [ @g1, %sw.bb ]
+ ret ptr %retval.0
}
declare i32 @f1(i32, i32)
@@ -129,11 +129,11 @@ cond.false3:
cond.false6:
%cmp7 = icmp eq i32 %a, 4
- %cond = select i1 %cmp7, i32 (i32, i32)* @f4, i32 (i32, i32)* @f5
+ %cond = select i1 %cmp7, ptr @f4, ptr @f5
br label %cond.end11
cond.end11:
- %cond12 = phi i32 (i32, i32)* [ @f1, %entry ], [ @f2, %cond.false ], [ %cond, %cond.false6 ], [ @f3, %cond.false3 ]
+ %cond12 = phi ptr [ @f1, %entry ], [ @f2, %cond.false ], [ %cond, %cond.false6 ], [ @f3, %cond.false3 ]
%call = call i32 %cond12(i32 %b, i32 %c) #2
ret i32 %call
}
diff --git a/llvm/test/Transforms/SimplifyCFG/EmptyBlockMerge.ll b/llvm/test/Transforms/SimplifyCFG/EmptyBlockMerge.ll
index 414749d8f9db4..d38f50e0e31a6 100644
--- a/llvm/test/Transforms/SimplifyCFG/EmptyBlockMerge.ll
+++ b/llvm/test/Transforms/SimplifyCFG/EmptyBlockMerge.ll
@@ -4,9 +4,9 @@
declare void @foo()
-define void @cprop_test12(i32* %data) {
+define void @cprop_test12(ptr %data) {
bb0:
- %reg108 = load i32, i32* %data ; <i32> [#uses=2]
+ %reg108 = load i32, ptr %data ; <i32> [#uses=2]
%cond218 = icmp ne i32 %reg108, 5 ; <i1> [#uses=1]
br i1 %cond218, label %bb3, label %bb2
bb2: ; preds = %bb0
@@ -15,7 +15,7 @@ bb2: ; preds = %bb0
br label %bb3
bb3: ; preds = %bb2, %bb0
%reg117 = phi i32 [ 110, %bb2 ], [ %reg108, %bb0 ] ; <i32> [#uses=1]
- store i32 %reg117, i32* %data
+ store i32 %reg117, ptr %data
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll b/llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
index 937392946f897..2e096fb97e63f 100644
--- a/llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
+++ b/llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
@@ -61,13 +61,13 @@ U: ; preds = %T, %S, %R
; Test merging of blocks with phi nodes where at least one incoming value
; in the successor is undef.
-define i8 @testundef2(i32 %u, i32* %A) {
+define i8 @testundef2(i32 %u, ptr %A) {
; CHECK-LABEL: @testundef2(
; CHECK-NEXT: V:
; CHECK-NEXT: [[COND:%.*]] = icmp eq i32 [[U:%.*]], 3
; CHECK-NEXT: br i1 [[COND]], label [[Z:%.*]], label [[U:%.*]]
; CHECK: Z:
-; CHECK-NEXT: store i32 0, i32* [[A:%.*]], align 4
+; CHECK-NEXT: store i32 0, ptr [[A:%.*]], align 4
; CHECK-NEXT: br label [[U]]
; CHECK: U:
; CHECK-NEXT: ret i8 1
@@ -84,7 +84,7 @@ W: ; preds = %V
br label %U
Z:
- store i32 0, i32* %A, align 4
+ store i32 0, ptr %A, align 4
br label %X
X: ; preds = %V, %V, %Z
@@ -100,7 +100,7 @@ U: ; preds = %X, %W, %V
ret i8 %val.0
}
-define i8 @testmergesome(i32 %u, i32* %A) {
+define i8 @testmergesome(i32 %u, ptr %A) {
; CHECK-LABEL: @testmergesome(
; CHECK-NEXT: V:
; CHECK-NEXT: switch i32 [[U:%.*]], label [[Y:%.*]] [
@@ -108,10 +108,10 @@ define i8 @testmergesome(i32 %u, i32* %A) {
; CHECK-NEXT: i32 3, label [[Z:%.*]]
; CHECK-NEXT: ]
; CHECK: W:
-; CHECK-NEXT: store i32 1, i32* [[A:%.*]], align 4
+; CHECK-NEXT: store i32 1, ptr [[A:%.*]], align 4
; CHECK-NEXT: br label [[Y]]
; CHECK: Z:
-; CHECK-NEXT: store i32 0, i32* [[A]], align 4
+; CHECK-NEXT: store i32 0, ptr [[A]], align 4
; CHECK-NEXT: br label [[Y]]
; CHECK: Y:
; CHECK-NEXT: [[VAL_0:%.*]] = phi i8 [ 2, [[W]] ], [ 1, [[Z]] ], [ 1, [[V:%.*]] ]
@@ -126,11 +126,11 @@ V:
]
W: ; preds = %V
- store i32 1, i32* %A, align 4
+ store i32 1, ptr %A, align 4
br label %Y
Z:
- store i32 0, i32* %A, align 4
+ store i32 0, ptr %A, align 4
br label %X
X: ; preds = %V, %Z
@@ -144,7 +144,7 @@ Y: ; preds = %X, %W, %V
}
-define i8 @testmergesome2(i32 %u, i32* %A) {
+define i8 @testmergesome2(i32 %u, ptr %A) {
; CHECK-LABEL: @testmergesome2(
; CHECK-NEXT: V:
; CHECK-NEXT: switch i32 [[U:%.*]], label [[W:%.*]] [
@@ -153,7 +153,7 @@ define i8 @testmergesome2(i32 %u, i32* %A) {
; CHECK-NEXT: i32 2, label [[Y]]
; CHECK-NEXT: ]
; CHECK: W:
-; CHECK-NEXT: store i32 1, i32* [[A:%.*]], align 4
+; CHECK-NEXT: store i32 1, ptr [[A:%.*]], align 4
; CHECK-NEXT: br label [[Y]]
; CHECK: Y:
; CHECK-NEXT: [[VAL_0:%.*]] = phi i8 [ 1, [[V:%.*]] ], [ 2, [[W]] ], [ 1, [[V]] ], [ 1, [[V]] ]
@@ -168,7 +168,7 @@ V:
]
W: ; preds = %V
- store i32 1, i32* %A, align 4
+ store i32 1, ptr %A, align 4
br label %Y
X: ; preds = %V, %Z
diff --git a/llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-domtree-preservation-edgecase-2.ll b/llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-domtree-preservation-edgecase-2.ll
index 1688515af75c1..b55c53b6af3a0 100644
--- a/llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-domtree-preservation-edgecase-2.ll
+++ b/llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-domtree-preservation-edgecase-2.ll
@@ -6,7 +6,7 @@ declare i16 @baz()
declare void @snork()
declare void @spam()
-define void @zot() local_unnamed_addr align 2 personality i8* undef {
+define void @zot() local_unnamed_addr align 2 personality ptr undef {
; CHECK-LABEL: @zot(
; CHECK-NEXT: bb:
; CHECK-NEXT: invoke void @widget()
@@ -27,7 +27,7 @@ define void @zot() local_unnamed_addr align 2 personality i8* undef {
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: bb21:
-; CHECK-NEXT: [[I22:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[I22:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: br label [[COMMON_RET:%.*]]
; CHECK: bb23:
@@ -58,7 +58,7 @@ bb20: ; preds = %bb19
unreachable
bb21: ; preds = %bb
- %i22 = landingpad { i8*, i32 }
+ %i22 = landingpad { ptr, i32 }
cleanup
ret void
@@ -70,7 +70,7 @@ bb24: ; preds = %bb25, %bb23
ret void
bb25: ; preds = %bb23, %bb19, %bb14
- %i26 = landingpad { i8*, i32 }
+ %i26 = landingpad { ptr, i32 }
cleanup
br label %bb24
}
diff --git a/llvm/test/Transforms/SimplifyCFG/Hexagon/switch-to-lookup-table.ll b/llvm/test/Transforms/SimplifyCFG/Hexagon/switch-to-lookup-table.ll
index 4106501eeb3a0..8bff822ef57f0 100644
--- a/llvm/test/Transforms/SimplifyCFG/Hexagon/switch-to-lookup-table.ll
+++ b/llvm/test/Transforms/SimplifyCFG/Hexagon/switch-to-lookup-table.ll
@@ -13,8 +13,8 @@ define i32 @foo(i32 %x) #0 section ".tcm_text" {
; ENABLE-NEXT: [[TMP0:%.*]] = icmp ult i32 [[X:%.*]], 6
; ENABLE-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
; ENABLE: switch.lookup:
-; ENABLE-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [6 x i32], [6 x i32]* @switch.table.foo, i32 0, i32 [[X]]
-; ENABLE-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
+; ENABLE-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [6 x i32], ptr @switch.table.foo, i32 0, i32 [[X]]
+; ENABLE-NEXT: [[SWITCH_LOAD:%.*]] = load i32, ptr [[SWITCH_GEP]], align 4
; ENABLE-NEXT: br label [[RETURN]]
; ENABLE: return:
; ENABLE-NEXT: [[RETVAL_0:%.*]] = phi i32 [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ], [ 19, [[ENTRY:%.*]] ]
@@ -49,8 +49,8 @@ define i32 @foo(i32 %x) #0 section ".tcm_text" {
entry:
%retval = alloca i32, align 4
%x.addr = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- %0 = load i32, i32* %x.addr, align 4
+ store i32 %x, ptr %x.addr, align 4
+ %0 = load i32, ptr %x.addr, align 4
switch i32 %0, label %sw.default [
i32 0, label %sw.bb
i32 1, label %sw.bb1
@@ -61,35 +61,35 @@ entry:
]
sw.bb: ; preds = %entry
- store i32 9, i32* %retval, align 4
+ store i32 9, ptr %retval, align 4
br label %return
sw.bb1: ; preds = %entry
- store i32 20, i32* %retval, align 4
+ store i32 20, ptr %retval, align 4
br label %return
sw.bb2: ; preds = %entry
- store i32 14, i32* %retval, align 4
+ store i32 14, ptr %retval, align 4
br label %return
sw.bb3: ; preds = %entry
- store i32 22, i32* %retval, align 4
+ store i32 22, ptr %retval, align 4
br label %return
sw.bb4: ; preds = %entry
- store i32 12, i32* %retval, align 4
+ store i32 12, ptr %retval, align 4
br label %return
sw.bb5: ; preds = %entry
- store i32 5, i32* %retval, align 4
+ store i32 5, ptr %retval, align 4
br label %return
sw.default: ; preds = %entry
- store i32 19, i32* %retval, align 4
+ store i32 19, ptr %retval, align 4
br label %return
return: ; preds = %sw.default, %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb2, %sw.bb1, %sw.bb
- %1 = load i32, i32* %retval, align 4
+ %1 = load i32, ptr %retval, align 4
ret i32 %1
}
diff --git a/llvm/test/Transforms/SimplifyCFG/HoistCode.ll b/llvm/test/Transforms/SimplifyCFG/HoistCode.ll
index 8d6436c7ee605..10c6f81c91ac5 100644
--- a/llvm/test/Transforms/SimplifyCFG/HoistCode.ll
+++ b/llvm/test/Transforms/SimplifyCFG/HoistCode.ll
@@ -2,18 +2,18 @@
; RUN: opt < %s -passes=simplifycfg -hoist-common-insts=true -S | FileCheck %s
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s
-define void @foo(i1 %C, i32* %P) {
+define void @foo(i1 %C, ptr %P) {
; CHECK-LABEL: @foo(
; CHECK-NEXT: common.ret:
-; CHECK-NEXT: store i32 7, i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 7, ptr [[P:%.*]], align 4
; CHECK-NEXT: ret void
;
br i1 %C, label %T, label %F
T: ; preds = %0
- store i32 7, i32* %P
+ store i32 7, ptr %P
ret void
F: ; preds = %0
- store i32 7, i32* %P
+ store i32 7, ptr %P
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/InfLoop.ll b/llvm/test/Transforms/SimplifyCFG/InfLoop.ll
index 04d2891564bec..6db83653ebe49 100644
--- a/llvm/test/Transforms/SimplifyCFG/InfLoop.ll
+++ b/llvm/test/Transforms/SimplifyCFG/InfLoop.ll
@@ -13,7 +13,7 @@ target triple = "thumbv7-apple-ios9.0.0"
define void @main() {
entry:
- %0 = load i32, i32* getelementptr inbounds (%struct.anon, %struct.anon* @U, i32 0, i32 2), align 4
+ %0 = load i32, ptr getelementptr inbounds (%struct.anon, ptr @U, i32 0, i32 2), align 4
%cmp.i = icmp eq i32 %0, -1
br i1 %cmp.i, label %if.then, label %if.end
@@ -21,8 +21,8 @@ if.then: ; preds = %entry
br label %if.end
if.end: ; preds = %entry, %if.then
- %1 = load i32, i32* getelementptr inbounds (%struct.anon, %struct.anon* @U, i32 0, i32 2), align 4
- %bf.load = load i32, i32* getelementptr inbounds (%struct.anon, %struct.anon* @U, i32 0, i32 3, i32 0, i32 0), align 4
+ %1 = load i32, ptr getelementptr inbounds (%struct.anon, ptr @U, i32 0, i32 2), align 4
+ %bf.load = load i32, ptr getelementptr inbounds (%struct.anon, ptr @U, i32 0, i32 3, i32 0, i32 0), align 4
%cmp = icmp slt i32 %0, 0
br i1 %cmp, label %if.end7, label %cond.false
@@ -63,8 +63,8 @@ for.cond.i: ; preds = %if.end6.i, %if.end.
br i1 %cmp2.i, label %for.body.i, label %TmpSimpleNeedExt.exit
for.body.i: ; preds = %for.cond.i
- %arrayidx.i = getelementptr inbounds %struct.anon, %struct.anon* @U, i32 0, i32 0, i32 2, i32 %ix.0.i
- %elt = load i8, i8* %arrayidx.i, align 1
+ %arrayidx.i = getelementptr inbounds %struct.anon, ptr @U, i32 0, i32 0, i32 2, i32 %ix.0.i
+ %elt = load i8, ptr %arrayidx.i, align 1
%cmp3.i = icmp sgt i8 %elt, 7
br i1 %cmp3.i, label %if.else21, label %if.end6.i
diff --git a/llvm/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll b/llvm/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll
index 8eed46b978e5f..e64d970ad70ec 100644
--- a/llvm/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll
+++ b/llvm/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll
@@ -11,23 +11,23 @@ source_filename = "./csmith107.i.debug.ll"
@a = global i16 0, !dbg !0
@b = global i32 0, !dbg !4
- at c = global i16* null, !dbg !9
+ at c = global ptr null, !dbg !9
define i16 @fn1() !dbg !17 {
bb2:
- store i32 -1, i32* @b, align 1
- %_tmp1.pre = load i16, i16* @a, align 1, !dbg !20
- %_tmp2.pre = load i16*, i16** @c, align 1
+ store i32 -1, ptr @b, align 1
+ %_tmp1.pre = load i16, ptr @a, align 1, !dbg !20
+ %_tmp2.pre = load ptr, ptr @c, align 1
tail call void @llvm.dbg.value(metadata i16 6, metadata !22, metadata !23), !dbg !24
tail call void @llvm.dbg.value(metadata i16 %_tmp1.pre, metadata !25, metadata !23), !dbg !20
- %_tmp3 = load i16, i16* %_tmp2.pre, align 1
+ %_tmp3 = load i16, ptr %_tmp2.pre, align 1
%_tmp4 = icmp ne i16 %_tmp3, 0
%_tmp6 = icmp ne i16 %_tmp1.pre, 0
%or.cond = and i1 %_tmp6, %_tmp4
br i1 %or.cond, label %bb5, label %bb1
bb1: ; preds = %bb2
- store i32 5, i32* @b, align 1
+ store i32 5, ptr @b, align 1
br label %bb5
bb5: ; preds = %bb1, %bb2
diff --git a/llvm/test/Transforms/SimplifyCFG/PR9946.ll b/llvm/test/Transforms/SimplifyCFG/PR9946.ll
index 8c6cbafedc97f..92a87c1e4ca50 100644
--- a/llvm/test/Transforms/SimplifyCFG/PR9946.ll
+++ b/llvm/test/Transforms/SimplifyCFG/PR9946.ll
@@ -4,7 +4,7 @@
define i32 @f() {
entry:
- br i1 icmp eq (i64 and (i64 ptrtoint (i32* @foo to i64), i64 15), i64 0), label %if.end, label %if.then
+ br i1 icmp eq (i64 and (i64 ptrtoint (ptr @foo to i64), i64 15), i64 0), label %if.end, label %if.then
if.then: ; preds = %entry
br label %return
diff --git a/llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-fma.ll b/llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-fma.ll
index cd15f74f8e750..c7bc43e1faaed 100644
--- a/llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-fma.ll
+++ b/llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-fma.ll
@@ -4,85 +4,85 @@
; This case is copied from test/Transforms/SimplifyCFG/AArch64/
; Function Attrs: nounwind
-define double @_Z3fooRdS_S_S_(double* dereferenceable(8) %x, double* dereferenceable(8) %y, double* dereferenceable(8) %a) {
+define double @_Z3fooRdS_S_S_(ptr dereferenceable(8) %x, ptr dereferenceable(8) %y, ptr dereferenceable(8) %a) {
; CHECK-LABEL: @_Z3fooRdS_S_S_(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = load double, double* [[Y:%.*]], align 8
+; CHECK-NEXT: [[TMP0:%.*]] = load double, ptr [[Y:%.*]], align 8
; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq double [[TMP0]], 0.000000e+00
-; CHECK-NEXT: [[TMP1:%.*]] = load double, double* [[X:%.*]], align 8
-; CHECK-NEXT: [[TMP2:%.*]] = load double, double* [[A:%.*]], align 8
+; CHECK-NEXT: [[TMP1:%.*]] = load double, ptr [[X:%.*]], align 8
+; CHECK-NEXT: [[TMP2:%.*]] = load double, ptr [[A:%.*]], align 8
; CHECK-NEXT: br i1 [[CMP]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
; CHECK-NEXT: [[TMP3:%.*]] = fmul fast double [[TMP1]], [[TMP2]]
; CHECK-NEXT: [[MUL:%.*]] = fadd fast double 1.000000e+00, [[TMP3]]
-; CHECK-NEXT: store double [[MUL]], double* [[Y]], align 8
+; CHECK-NEXT: store double [[MUL]], ptr [[Y]], align 8
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
; CHECK-NEXT: [[MUL1:%.*]] = fmul fast double [[TMP1]], [[TMP2]]
; CHECK-NEXT: [[SUB1:%.*]] = fsub fast double [[MUL1]], [[TMP0]]
-; CHECK-NEXT: [[GEP1:%.*]] = getelementptr double, double* [[Y]], i32 1
-; CHECK-NEXT: store double [[SUB1]], double* [[GEP1]], align 8
+; CHECK-NEXT: [[GEP1:%.*]] = getelementptr double, ptr [[Y]], i32 1
+; CHECK-NEXT: store double [[SUB1]], ptr [[GEP1]], align 8
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
-; CHECK-NEXT: [[TMP4:%.*]] = load double, double* [[Y]], align 8
+; CHECK-NEXT: [[TMP4:%.*]] = load double, ptr [[Y]], align 8
; CHECK-NEXT: [[CMP2:%.*]] = fcmp oeq double [[TMP4]], 2.000000e+00
-; CHECK-NEXT: [[TMP5:%.*]] = load double, double* [[X]], align 8
+; CHECK-NEXT: [[TMP5:%.*]] = load double, ptr [[X]], align 8
; CHECK-NEXT: br i1 [[CMP2]], label [[IF_THEN2:%.*]], label [[IF_ELSE2:%.*]]
; CHECK: if.then2:
-; CHECK-NEXT: [[TMP6:%.*]] = load double, double* [[A]], align 8
+; CHECK-NEXT: [[TMP6:%.*]] = load double, ptr [[A]], align 8
; CHECK-NEXT: [[TMP7:%.*]] = fmul fast double [[TMP5]], 3.000000e+00
; CHECK-NEXT: [[MUL2:%.*]] = fsub fast double [[TMP6]], [[TMP7]]
-; CHECK-NEXT: store double [[MUL2]], double* [[Y]], align 8
+; CHECK-NEXT: store double [[MUL2]], ptr [[Y]], align 8
; CHECK-NEXT: br label [[IF_END2:%.*]]
; CHECK: if.else2:
; CHECK-NEXT: [[MUL3:%.*]] = fmul fast double [[TMP5]], 3.000000e+00
; CHECK-NEXT: [[NEG:%.*]] = fsub fast double 0.000000e+00, [[MUL3]]
; CHECK-NEXT: [[SUB2:%.*]] = fsub fast double [[NEG]], 3.000000e+00
-; CHECK-NEXT: store double [[SUB2]], double* [[Y]], align 8
+; CHECK-NEXT: store double [[SUB2]], ptr [[Y]], align 8
; CHECK-NEXT: br label [[IF_END2]]
; CHECK: if.end2:
-; CHECK-NEXT: [[TMP8:%.*]] = load double, double* [[X]], align 8
-; CHECK-NEXT: [[TMP9:%.*]] = load double, double* [[Y]], align 8
+; CHECK-NEXT: [[TMP8:%.*]] = load double, ptr [[X]], align 8
+; CHECK-NEXT: [[TMP9:%.*]] = load double, ptr [[Y]], align 8
; CHECK-NEXT: [[ADD:%.*]] = fadd fast double [[TMP8]], [[TMP9]]
-; CHECK-NEXT: [[TMP10:%.*]] = load double, double* [[A]], align 8
+; CHECK-NEXT: [[TMP10:%.*]] = load double, ptr [[A]], align 8
; CHECK-NEXT: [[ADD2:%.*]] = fadd fast double [[ADD]], [[TMP10]]
; CHECK-NEXT: ret double [[ADD2]]
;
entry:
- %0 = load double, double* %y, align 8
+ %0 = load double, ptr %y, align 8
%cmp = fcmp oeq double %0, 0.000000e+00
- %1 = load double, double* %x, align 8
+ %1 = load double, ptr %x, align 8
br i1 %cmp, label %if.then, label %if.else
; fadd (const, (fmul x, y))
if.then: ; preds = %entry
- %2 = load double, double* %a, align 8
+ %2 = load double, ptr %a, align 8
%3 = fmul fast double %1, %2
%mul = fadd fast double 1.000000e+00, %3
- store double %mul, double* %y, align 8
+ store double %mul, ptr %y, align 8
br label %if.end
; fsub ((fmul x, y), z)
if.else: ; preds = %entry
- %4 = load double, double* %a, align 8
+ %4 = load double, ptr %a, align 8
%mul1 = fmul fast double %1, %4
%sub1 = fsub fast double %mul1, %0
- %gep1 = getelementptr double, double* %y, i32 1
- store double %sub1, double* %gep1, align 8
+ %gep1 = getelementptr double, ptr %y, i32 1
+ store double %sub1, ptr %gep1, align 8
br label %if.end
if.end: ; preds = %if.else, %if.then
- %5 = load double, double* %y, align 8
+ %5 = load double, ptr %y, align 8
%cmp2 = fcmp oeq double %5, 2.000000e+00
- %6 = load double, double* %x, align 8
+ %6 = load double, ptr %x, align 8
br i1 %cmp2, label %if.then2, label %if.else2
; fsub (x, (fmul y, z))
if.then2: ; preds = %entry
- %7 = load double, double* %a, align 8
+ %7 = load double, ptr %a, align 8
%8 = fmul fast double %6, 3.0000000e+00
%mul2 = fsub fast double %7, %8
- store double %mul2, double* %y, align 8
+ store double %mul2, ptr %y, align 8
br label %if.end2
; fsub (fneg((fmul x, y)), const)
@@ -90,14 +90,14 @@ if.else2: ; preds = %entry
%mul3 = fmul fast double %6, 3.0000000e+00
%neg = fsub fast double 0.0000000e+00, %mul3
%sub2 = fsub fast double %neg, 3.0000000e+00
- store double %sub2, double* %y, align 8
+ store double %sub2, ptr %y, align 8
br label %if.end2
if.end2: ; preds = %if.else, %if.then
- %9 = load double, double* %x, align 8
- %10 = load double, double* %y, align 8
+ %9 = load double, ptr %x, align 8
+ %10 = load double, ptr %y, align 8
%add = fadd fast double %9, %10
- %11 = load double, double* %a, align 8
+ %11 = load double, ptr %a, align 8
%add2 = fadd fast double %add, %11
ret double %add2
}
diff --git a/llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-load-i32.ll b/llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-load-i32.ll
index 742cef5a9ded3..d7a9389e3f501 100644
--- a/llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-load-i32.ll
+++ b/llvm/test/Transforms/SimplifyCFG/PowerPC/prefer-load-i32.ll
@@ -1,30 +1,30 @@
; RUN: opt < %s -mtriple=powerpc64le-unknown-linux-gnu -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s
-define float @foo(float* %src, float* %dest, i32 signext %count, i32 signext %cond) {
+define float @foo(ptr %src, ptr %dest, i32 signext %count, i32 signext %cond) {
; CHECK-LABEL: @foo(
; CHECK-LABEL: entry:
; CHECK-NOT: load float
entry:
%cmp = icmp sgt i32 %cond, 10
%idxprom = sext i32 %count to i64
- %arrayidx = getelementptr inbounds float, float* %src, i64 %idxprom
+ %arrayidx = getelementptr inbounds float, ptr %src, i64 %idxprom
br i1 %cmp, label %if.then, label %if.else
; CHECK-LABEL: if.then:
-; CHECK: %0 = load float, float* %arrayidx, align 4
+; CHECK: %0 = load float, ptr %arrayidx, align 4
if.then: ; preds = %entry
- %0 = load float, float* %arrayidx, align 4
+ %0 = load float, ptr %arrayidx, align 4
%res = fmul float %0, 3.000000e+00
br label %if.end
; CHECK-LABEL: if.else:
-; CHECK: %1 = load float, float* %arrayidx, align 4
-; CHECK: store float %1, float* %arrayidx4, align 4
+; CHECK: %1 = load float, ptr %arrayidx, align 4
+; CHECK: store float %1, ptr %arrayidx4, align 4
if.else: ; preds = %entry
- %1 = load float, float* %arrayidx, align 4
+ %1 = load float, ptr %arrayidx, align 4
%idxprom3 = sext i32 %count to i64
- %arrayidx4 = getelementptr inbounds float, float* %dest, i64 %idxprom3
- store float %1, float* %arrayidx4, align 4
+ %arrayidx4 = getelementptr inbounds float, ptr %dest, i64 %idxprom3
+ store float %1, ptr %arrayidx4, align 4
br label %if.end
if.end: ; preds = %if.else, %if.then
diff --git a/llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv32.ll b/llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv32.ll
index ead70e5d4e7fc..7bf4d35530b9a 100644
--- a/llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv32.ll
+++ b/llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv32.ll
@@ -14,7 +14,7 @@ target triple = "riscv32-unknown-elf"
; CHECK: @switch.table.h = private unnamed_addr constant [4 x float] [float 0x40091EB860000000, float 0x3FF3BE76C0000000, float 0x4012449BA0000000, float 0x4001AE1480000000], align 4
; The table for @foostring
-; CHECK: @switch.table.foostring = private unnamed_addr constant [4 x i8*] [i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str2, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str3, i64 0, i64 0)], align 4
+; CHECK: @switch.table.foostring = private unnamed_addr constant [4 x ptr] [ptr @.str, ptr @.str1, ptr @.str2, ptr @.str3], align 4
; A simple int-to-int selection switch.
; It is dense enough to be replaced by table lookup.
@@ -28,8 +28,8 @@ define i32 @f(i32 %c) {
; CHECK-NEXT: [[TMP0:%.*]] = icmp ult i32 [[SWITCH_TABLEIDX]], 7
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
; CHECK: switch.lookup:
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [7 x i32], [7 x i32]* @switch.table.f, i32 0, i32 [[SWITCH_TABLEIDX]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [7 x i32], ptr @switch.table.f, i32 0, i32 [[SWITCH_TABLEIDX]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, ptr [[SWITCH_GEP]], align 4
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32 [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ], [ 15, [[ENTRY:%.*]] ]
@@ -68,8 +68,8 @@ define i8 @char(i32 %c) {
; CHECK-NEXT: [[TMP0:%.*]] = icmp ult i32 [[SWITCH_TABLEIDX]], 9
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
; CHECK: switch.lookup:
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [9 x i8], [9 x i8]* @switch.table.char, i32 0, i32 [[SWITCH_TABLEIDX]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8, i8* [[SWITCH_GEP]], align 1
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [9 x i8], ptr @switch.table.char, i32 0, i32 [[SWITCH_TABLEIDX]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8, ptr [[SWITCH_GEP]], align 1
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i8 [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ], [ 15, [[ENTRY:%.*]] ]
@@ -115,8 +115,8 @@ define void @h(i32 %x) {
; CHECK-NEXT: [[SWITCH_SHIFTAMT:%.*]] = mul i32 [[X]], 8
; CHECK-NEXT: [[SWITCH_DOWNSHIFT:%.*]] = lshr i32 89655594, [[SWITCH_SHIFTAMT]]
; CHECK-NEXT: [[SWITCH_MASKED:%.*]] = trunc i32 [[SWITCH_DOWNSHIFT]] to i8
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x float], [4 x float]* @switch.table.h, i32 0, i32 [[X]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load float, float* [[SWITCH_GEP]], align 4
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x float], ptr @switch.table.h, i32 0, i32 [[X]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load float, ptr [[SWITCH_GEP]], align 4
; CHECK-NEXT: br label [[SW_EPILOG]]
; CHECK: sw.epilog:
; CHECK-NEXT: [[A_0:%.*]] = phi i8 [ [[SWITCH_MASKED]], [[SWITCH_LOOKUP]] ], [ 7, [[ENTRY:%.*]] ]
@@ -154,18 +154,18 @@ sw.epilog:
@.str3 = private unnamed_addr constant [4 x i8] c"qux\00", align 1
@.str4 = private unnamed_addr constant [6 x i8] c"error\00", align 1
-define i8* @foostring(i32 %x) {
+define ptr @foostring(i32 %x) {
; CHECK-LABEL: @foostring(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = icmp ult i32 [[X:%.*]], 4
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
; CHECK: switch.lookup:
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x i8*], [4 x i8*]* @switch.table.foostring, i32 0, i32 [[X]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8*, i8** [[SWITCH_GEP]], align 4
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x ptr], ptr @switch.table.foostring, i32 0, i32 [[X]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load ptr, ptr [[SWITCH_GEP]], align 4
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
-; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i8* [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str4, i64 0, i64 0), [[ENTRY:%.*]] ]
-; CHECK-NEXT: ret i8* [[RETVAL_0]]
+; CHECK-NEXT: [[RETVAL_0:%.*]] = phi ptr [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ], [ @.str4, [[ENTRY:%.*]] ]
+; CHECK-NEXT: ret ptr [[RETVAL_0]]
;
entry:
switch i32 %x, label %sw.default [
@@ -181,11 +181,11 @@ sw.bb3: br label %return
sw.default: br label %return
return:
- %retval.0 = phi i8* [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str4, i64 0, i64 0), %sw.default ],
- [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str3, i64 0, i64 0), %sw.bb3 ],
- [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str2, i64 0, i64 0), %sw.bb2 ],
- [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str1, i64 0, i64 0), %sw.bb1 ],
- [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), %entry ]
- ret i8* %retval.0
+ %retval.0 = phi ptr [ @.str4, %sw.default ],
+ [ @.str3, %sw.bb3 ],
+ [ @.str2, %sw.bb2 ],
+ [ @.str1, %sw.bb1 ],
+ [ @.str, %entry ]
+ ret ptr %retval.0
}
diff --git a/llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv64.ll b/llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv64.ll
index 93324fee26ccb..168e5188abff2 100644
--- a/llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv64.ll
+++ b/llvm/test/Transforms/SimplifyCFG/RISCV/switch_to_lookup_table-rv64.ll
@@ -14,7 +14,7 @@ target triple = "riscv64-unknown-elf"
; CHECK: @switch.table.h = private unnamed_addr constant [4 x float] [float 0x40091EB860000000, float 0x3FF3BE76C0000000, float 0x4012449BA0000000, float 0x4001AE1480000000], align 4
; The table for @foostring
-; CHECK: @switch.table.foostring = private unnamed_addr constant [4 x i8*] [i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str2, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str3, i64 0, i64 0)], align 8
+; CHECK: @switch.table.foostring = private unnamed_addr constant [4 x ptr] [ptr @.str, ptr @.str1, ptr @.str2, ptr @.str3], align 8
; A simple int-to-int selection switch.
; It is dense enough to be replaced by table lookup.
@@ -28,8 +28,8 @@ define i32 @f(i32 %c) {
; CHECK-NEXT: [[TMP0:%.*]] = icmp ult i32 [[SWITCH_TABLEIDX]], 7
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
; CHECK: switch.lookup:
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [7 x i32], [7 x i32]* @switch.table.f, i32 0, i32 [[SWITCH_TABLEIDX]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, i32* [[SWITCH_GEP]], align 4
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [7 x i32], ptr @switch.table.f, i32 0, i32 [[SWITCH_TABLEIDX]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i32, ptr [[SWITCH_GEP]], align 4
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32 [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ], [ 15, [[ENTRY:%.*]] ]
@@ -68,8 +68,8 @@ define i8 @char(i32 %c) {
; CHECK-NEXT: [[TMP0:%.*]] = icmp ult i32 [[SWITCH_TABLEIDX]], 9
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
; CHECK: switch.lookup:
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [9 x i8], [9 x i8]* @switch.table.char, i32 0, i32 [[SWITCH_TABLEIDX]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8, i8* [[SWITCH_GEP]], align 1
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [9 x i8], ptr @switch.table.char, i32 0, i32 [[SWITCH_TABLEIDX]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8, ptr [[SWITCH_GEP]], align 1
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i8 [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ], [ 15, [[ENTRY:%.*]] ]
@@ -115,8 +115,8 @@ define void @h(i32 %x) {
; CHECK-NEXT: [[SWITCH_SHIFTAMT:%.*]] = mul i32 [[X]], 8
; CHECK-NEXT: [[SWITCH_DOWNSHIFT:%.*]] = lshr i32 89655594, [[SWITCH_SHIFTAMT]]
; CHECK-NEXT: [[SWITCH_MASKED:%.*]] = trunc i32 [[SWITCH_DOWNSHIFT]] to i8
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x float], [4 x float]* @switch.table.h, i32 0, i32 [[X]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load float, float* [[SWITCH_GEP]], align 4
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x float], ptr @switch.table.h, i32 0, i32 [[X]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load float, ptr [[SWITCH_GEP]], align 4
; CHECK-NEXT: br label [[SW_EPILOG]]
; CHECK: sw.epilog:
; CHECK-NEXT: [[A_0:%.*]] = phi i8 [ [[SWITCH_MASKED]], [[SWITCH_LOOKUP]] ], [ 7, [[ENTRY:%.*]] ]
@@ -154,18 +154,18 @@ sw.epilog:
@.str3 = private unnamed_addr constant [4 x i8] c"qux\00", align 1
@.str4 = private unnamed_addr constant [6 x i8] c"error\00", align 1
-define i8* @foostring(i32 %x) {
+define ptr @foostring(i32 %x) {
; CHECK-LABEL: @foostring(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = icmp ult i32 [[X:%.*]], 4
; CHECK-NEXT: br i1 [[TMP0]], label [[SWITCH_LOOKUP:%.*]], label [[RETURN:%.*]]
; CHECK: switch.lookup:
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x i8*], [4 x i8*]* @switch.table.foostring, i32 0, i32 [[X]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8*, i8** [[SWITCH_GEP]], align 8
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [4 x ptr], ptr @switch.table.foostring, i32 0, i32 [[X]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load ptr, ptr [[SWITCH_GEP]], align 8
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
-; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i8* [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str4, i64 0, i64 0), [[ENTRY:%.*]] ]
-; CHECK-NEXT: ret i8* [[RETVAL_0]]
+; CHECK-NEXT: [[RETVAL_0:%.*]] = phi ptr [ [[SWITCH_LOAD]], [[SWITCH_LOOKUP]] ], [ @.str4, [[ENTRY:%.*]] ]
+; CHECK-NEXT: ret ptr [[RETVAL_0]]
;
entry:
switch i32 %x, label %sw.default [
@@ -181,11 +181,11 @@ sw.bb3: br label %return
sw.default: br label %return
return:
- %retval.0 = phi i8* [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str4, i64 0, i64 0), %sw.default ],
- [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str3, i64 0, i64 0), %sw.bb3 ],
- [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str2, i64 0, i64 0), %sw.bb2 ],
- [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str1, i64 0, i64 0), %sw.bb1 ],
- [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), %entry ]
- ret i8* %retval.0
+ %retval.0 = phi ptr [ @.str4, %sw.default ],
+ [ @.str3, %sw.bb3 ],
+ [ @.str2, %sw.bb2 ],
+ [ @.str1, %sw.bb1 ],
+ [ @.str, %entry ]
+ ret ptr %retval.0
}
diff --git a/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll b/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
index 7e245392974f1..a9fb464f7a09b 100644
--- a/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
+++ b/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
@@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
-define void @test1(i1 %C, i1* %BP) {
+define void @test1(i1 %C, ptr %BP) {
; CHECK-LABEL: @test1(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[C:%.*]], true
@@ -11,13 +11,13 @@ define void @test1(i1 %C, i1* %BP) {
entry:
br i1 %C, label %T, label %F
T:
- store i1 %C, i1* %BP
+ store i1 %C, ptr %BP
unreachable
F:
ret void
}
-define void @test2() personality i32 (...)* @__gxx_personality_v0 {
+define void @test2() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @test2(
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @test2()
@@ -27,7 +27,7 @@ entry:
invoke void @test2( )
to label %N unwind label %U
U:
- %res = landingpad { i8* }
+ %res = landingpad { ptr }
cleanup
unreachable
N:
@@ -61,12 +61,12 @@ T:
;; unreachable control flow because of the undef store of null. Make sure we do
;; the latter.
-define void @test5(i1 %cond, i8* %ptr) {
+define void @test5(i1 %cond, ptr %ptr) {
; CHECK-LABEL: @test5(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[COND:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
-; CHECK-NEXT: store i8 2, i8* [[PTR:%.*]], align 8
+; CHECK-NEXT: store i8 2, ptr [[PTR:%.*]], align 8
; CHECK-NEXT: ret void
;
entry:
@@ -79,26 +79,25 @@ bb1:
br label %bb2
bb2:
- %ptr.2 = phi i8* [ %ptr, %bb3 ], [ null, %bb1 ]
- store i8 2, i8* %ptr.2, align 8
+ %ptr.2 = phi ptr [ %ptr, %bb3 ], [ null, %bb1 ]
+ store i8 2, ptr %ptr.2, align 8
ret void
}
declare void @llvm.assume(i1)
-declare i1 @llvm.type.test(i8*, metadata) nounwind readnone
+declare i1 @llvm.type.test(ptr, metadata) nounwind readnone
;; Same as the above test but make sure the unreachable control flow is still
;; removed in the presence of a type test / assume sequence.
-define void @test5_type_test_assume(i1 %cond, i8* %ptr, [3 x i8*]* %vtable) {
+define void @test5_type_test_assume(i1 %cond, ptr %ptr, ptr %vtable) {
; CHECK-LABEL: @test5_type_test_assume(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[COND:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
-; CHECK-NEXT: [[VTABLEI8:%.*]] = bitcast [3 x i8*]* [[VTABLE:%.*]] to i8*
-; CHECK-NEXT: [[P:%.*]] = call i1 @llvm.type.test(i8* [[VTABLEI8]], metadata !"foo")
+; CHECK-NEXT: [[P:%.*]] = call i1 @llvm.type.test(ptr [[VTABLE:%.*]], metadata !"foo")
; CHECK-NEXT: tail call void @llvm.assume(i1 [[P]])
-; CHECK-NEXT: store i8 2, i8* [[PTR:%.*]], align 8
+; CHECK-NEXT: store i8 2, ptr [[PTR:%.*]], align 8
; CHECK-NEXT: ret void
;
entry:
@@ -111,19 +110,18 @@ bb1:
br label %bb2
bb2:
- %ptr.2 = phi i8* [ %ptr, %bb3 ], [ null, %bb1 ]
- %vtablei8 = bitcast [3 x i8*]* %vtable to i8*
- %p = call i1 @llvm.type.test(i8* %vtablei8, metadata !"foo")
+ %ptr.2 = phi ptr [ %ptr, %bb3 ], [ null, %bb1 ]
+ %p = call i1 @llvm.type.test(ptr %vtable, metadata !"foo")
tail call void @llvm.assume(i1 %p)
- store i8 2, i8* %ptr.2, align 8
+ store i8 2, ptr %ptr.2, align 8
ret void
}
-define void @test5_no_null_opt(i1 %cond, i8* %ptr) #0 {
+define void @test5_no_null_opt(i1 %cond, ptr %ptr) #0 {
; CHECK-LABEL: @test5_no_null_opt(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[DOTPTR:%.*]] = select i1 [[COND:%.*]], i8* null, i8* [[PTR:%.*]]
-; CHECK-NEXT: store i8 2, i8* [[DOTPTR]], align 8
+; CHECK-NEXT: [[DOTPTR:%.*]] = select i1 [[COND:%.*]], ptr null, ptr [[PTR:%.*]]
+; CHECK-NEXT: store i8 2, ptr [[DOTPTR]], align 8
; CHECK-NEXT: ret void
;
entry:
@@ -136,17 +134,17 @@ bb1:
br label %bb2
bb2:
- %ptr.2 = phi i8* [ %ptr, %bb3 ], [ null, %bb1 ]
- store i8 2, i8* %ptr.2, align 8
+ %ptr.2 = phi ptr [ %ptr, %bb3 ], [ null, %bb1 ]
+ store i8 2, ptr %ptr.2, align 8
ret void
}
-define void @test6(i1 %cond, i8* %ptr) {
+define void @test6(i1 %cond, ptr %ptr) {
; CHECK-LABEL: @test6(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[COND:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
-; CHECK-NEXT: store i8 2, i8* [[PTR:%.*]], align 8
+; CHECK-NEXT: store i8 2, ptr [[PTR:%.*]], align 8
; CHECK-NEXT: ret void
;
entry:
@@ -156,16 +154,16 @@ bb1:
br label %bb2
bb2:
- %ptr.2 = phi i8* [ %ptr, %entry ], [ null, %bb1 ]
- store i8 2, i8* %ptr.2, align 8
+ %ptr.2 = phi ptr [ %ptr, %entry ], [ null, %bb1 ]
+ store i8 2, ptr %ptr.2, align 8
ret void
}
-define void @test6_no_null_opt(i1 %cond, i8* %ptr) #0 {
+define void @test6_no_null_opt(i1 %cond, ptr %ptr) #0 {
; CHECK-LABEL: @test6_no_null_opt(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[COND:%.*]], i8* null, i8* [[PTR:%.*]]
-; CHECK-NEXT: store i8 2, i8* [[SPEC_SELECT]], align 8
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[COND:%.*]], ptr null, ptr [[PTR:%.*]]
+; CHECK-NEXT: store i8 2, ptr [[SPEC_SELECT]], align 8
; CHECK-NEXT: ret void
;
entry:
@@ -175,8 +173,8 @@ bb1:
br label %bb2
bb2:
- %ptr.2 = phi i8* [ %ptr, %entry ], [ null, %bb1 ]
- store i8 2, i8* %ptr.2, align 8
+ %ptr.2 = phi ptr [ %ptr, %entry ], [ null, %bb1 ]
+ store i8 2, ptr %ptr.2, align 8
ret void
}
@@ -200,7 +198,7 @@ else:
ret i32 %phi
}
-define void @test8(i1 %X, void ()* %Y) {
+define void @test8(i1 %X, ptr %Y) {
; CHECK-LABEL: @test8(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[X:%.*]], true
@@ -215,15 +213,15 @@ if:
br label %else
else:
- %phi = phi void ()* [ %Y, %entry ], [ null, %if ]
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
call void %phi()
ret void
}
-define void @test8_no_null_opt(i1 %X, void ()* %Y) #0 {
+define void @test8_no_null_opt(i1 %X, ptr %Y) #0 {
; CHECK-LABEL: @test8_no_null_opt(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], void ()* null, void ()* [[Y:%.*]]
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], ptr null, ptr [[Y:%.*]]
; CHECK-NEXT: call void [[SPEC_SELECT]]()
; CHECK-NEXT: ret void
;
@@ -234,23 +232,23 @@ if:
br label %else
else:
- %phi = phi void ()* [ %Y, %entry ], [ null, %if ]
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
call void %phi()
ret void
}
-declare i8* @fn_nonnull_noundef_arg(i8* nonnull noundef %p)
-declare i8* @fn_nonnull_deref_arg(i8* nonnull dereferenceable(4) %p)
-declare i8* @fn_nonnull_deref_or_null_arg(i8* nonnull dereferenceable_or_null(4) %p)
-declare i8* @fn_nonnull_arg(i8* nonnull %p)
-declare i8* @fn_noundef_arg(i8* noundef %p)
+declare ptr @fn_nonnull_noundef_arg(ptr nonnull noundef %p)
+declare ptr @fn_nonnull_deref_arg(ptr nonnull dereferenceable(4) %p)
+declare ptr @fn_nonnull_deref_or_null_arg(ptr nonnull dereferenceable_or_null(4) %p)
+declare ptr @fn_nonnull_arg(ptr nonnull %p)
+declare ptr @fn_noundef_arg(ptr noundef %p)
-define void @test9(i1 %X, i8* %Y) {
+define void @test9(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[X:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
-; CHECK-NEXT: [[TMP1:%.*]] = call i8* @fn_nonnull_noundef_arg(i8* [[Y:%.*]])
+; CHECK-NEXT: [[TMP1:%.*]] = call ptr @fn_nonnull_noundef_arg(ptr [[Y:%.*]])
; CHECK-NEXT: ret void
;
entry:
@@ -260,18 +258,18 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- call i8* @fn_nonnull_noundef_arg(i8* %phi)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ call ptr @fn_nonnull_noundef_arg(ptr %phi)
ret void
}
; Optimizing this code should produce assume.
-define void @test9_deref(i1 %X, i8* %Y) {
+define void @test9_deref(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9_deref(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[X:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
-; CHECK-NEXT: [[TMP1:%.*]] = call i8* @fn_nonnull_deref_arg(i8* [[Y:%.*]])
+; CHECK-NEXT: [[TMP1:%.*]] = call ptr @fn_nonnull_deref_arg(ptr [[Y:%.*]])
; CHECK-NEXT: ret void
;
entry:
@@ -281,18 +279,18 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- call i8* @fn_nonnull_deref_arg(i8* %phi)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ call ptr @fn_nonnull_deref_arg(ptr %phi)
ret void
}
; Optimizing this code should produce assume.
-define void @test9_deref_or_null(i1 %X, i8* %Y) {
+define void @test9_deref_or_null(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9_deref_or_null(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[X:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
-; CHECK-NEXT: [[TMP1:%.*]] = call i8* @fn_nonnull_deref_or_null_arg(i8* [[Y:%.*]])
+; CHECK-NEXT: [[TMP1:%.*]] = call ptr @fn_nonnull_deref_or_null_arg(ptr [[Y:%.*]])
; CHECK-NEXT: ret void
;
entry:
@@ -302,15 +300,15 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- call i8* @fn_nonnull_deref_or_null_arg(i8* %phi)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ call ptr @fn_nonnull_deref_or_null_arg(ptr %phi)
ret void
}
-define void @test9_undef(i1 %X, i8* %Y) {
+define void @test9_undef(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9_undef(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_noundef_arg(i8* [[Y:%.*]])
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_noundef_arg(ptr [[Y:%.*]])
; CHECK-NEXT: ret void
;
entry:
@@ -320,15 +318,15 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ undef, %if ]
- call i8* @fn_noundef_arg(i8* %phi)
+ %phi = phi ptr [ %Y, %entry ], [ undef, %if ]
+ call ptr @fn_noundef_arg(ptr %phi)
ret void
}
-define void @test9_undef_null_defined(i1 %X, i8* %Y) #0 {
+define void @test9_undef_null_defined(i1 %X, ptr %Y) #0 {
; CHECK-LABEL: @test9_undef_null_defined(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_noundef_arg(i8* [[Y:%.*]])
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_noundef_arg(ptr [[Y:%.*]])
; CHECK-NEXT: ret void
;
entry:
@@ -338,17 +336,17 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ undef, %if ]
- call i8* @fn_noundef_arg(i8* %phi)
+ %phi = phi ptr [ %Y, %entry ], [ undef, %if ]
+ call ptr @fn_noundef_arg(ptr %phi)
ret void
}
-define void @test9_null_callsite(i1 %X, i8* %Y) {
+define void @test9_null_callsite(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9_null_callsite(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[X:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
-; CHECK-NEXT: [[TMP1:%.*]] = call i8* @fn_nonnull_arg(i8* noundef nonnull [[Y:%.*]])
+; CHECK-NEXT: [[TMP1:%.*]] = call ptr @fn_nonnull_arg(ptr noundef nonnull [[Y:%.*]])
; CHECK-NEXT: ret void
;
entry:
@@ -358,17 +356,16 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- call i8* @fn_nonnull_arg(i8* nonnull noundef %phi)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ call ptr @fn_nonnull_arg(ptr nonnull noundef %phi)
ret void
}
-define void @test9_gep_mismatch(i1 %X, i8* %Y, i8* %P) {
+define void @test9_gep_mismatch(i1 %X, ptr %Y, ptr %P) {
; CHECK-LABEL: @test9_gep_mismatch(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, i8* [[P:%.*]], i64 0
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_nonnull_noundef_arg(i8* [[GEP]])
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], ptr null, ptr [[Y:%.*]]
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_nonnull_noundef_arg(ptr [[P:%.*]])
; CHECK-NEXT: ret void
;
entry:
@@ -378,19 +375,17 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- %gep = getelementptr inbounds i8, i8* %P, i64 0
- call i8* @fn_nonnull_noundef_arg(i8* %gep)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ call ptr @fn_nonnull_noundef_arg(ptr %P)
ret void
}
-define void @test9_gep_zero(i1 %X, i8* %Y) {
+define void @test9_gep_zero(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9_gep_zero(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[X:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, i8* [[Y:%.*]], i64 0
-; CHECK-NEXT: [[TMP1:%.*]] = call i8* @fn_nonnull_noundef_arg(i8* [[GEP]])
+; CHECK-NEXT: [[TMP1:%.*]] = call ptr @fn_nonnull_noundef_arg(ptr [[Y:%.*]])
; CHECK-NEXT: ret void
;
entry:
@@ -400,20 +395,17 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- %gep = getelementptr inbounds i8, i8* %phi, i64 0
- call i8* @fn_nonnull_noundef_arg(i8* %gep)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ call ptr @fn_nonnull_noundef_arg(ptr %phi)
ret void
}
-define void @test9_gep_bitcast(i1 %X, i32* %Y) {
+define void @test9_gep_bitcast(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9_gep_bitcast(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[X:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i32, i32* [[Y:%.*]], i64 0
-; CHECK-NEXT: [[BC:%.*]] = bitcast i32* [[GEP]] to i8*
-; CHECK-NEXT: [[TMP1:%.*]] = call i8* @fn_nonnull_noundef_arg(i8* [[BC]])
+; CHECK-NEXT: [[TMP1:%.*]] = call ptr @fn_nonnull_noundef_arg(ptr [[Y:%.*]])
; CHECK-NEXT: ret void
;
entry:
@@ -423,19 +415,17 @@ if:
br label %else
else:
- %phi = phi i32* [ %Y, %entry ], [ null, %if ]
- %gep = getelementptr inbounds i32, i32* %phi, i64 0
- %bc = bitcast i32* %gep to i8*
- call i8* @fn_nonnull_noundef_arg(i8* %bc)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ call ptr @fn_nonnull_noundef_arg(ptr %phi)
ret void
}
-define void @test9_gep_nonzero(i1 %X, i8* %Y) {
+define void @test9_gep_nonzero(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9_gep_nonzero(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, i8* [[SPEC_SELECT]], i64 12
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_nonnull_noundef_arg(i8* [[GEP]])
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], ptr null, ptr [[Y:%.*]]
+; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[SPEC_SELECT]], i64 12
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_nonnull_noundef_arg(ptr [[GEP]])
; CHECK-NEXT: ret void
;
entry:
@@ -445,18 +435,18 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- %gep = getelementptr i8, i8* %phi, i64 12
- call i8* @fn_nonnull_noundef_arg(i8* %gep)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ %gep = getelementptr i8, ptr %phi, i64 12
+ call ptr @fn_nonnull_noundef_arg(ptr %gep)
ret void
}
-define void @test9_gep_inbounds_nonzero(i1 %X, i8* %Y) {
+define void @test9_gep_inbounds_nonzero(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9_gep_inbounds_nonzero(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, i8* [[SPEC_SELECT]], i64 12
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_nonnull_noundef_arg(i8* [[GEP]])
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], ptr null, ptr [[Y:%.*]]
+; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, ptr [[SPEC_SELECT]], i64 12
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_nonnull_noundef_arg(ptr [[GEP]])
; CHECK-NEXT: ret void
;
entry:
@@ -466,19 +456,19 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- %gep = getelementptr inbounds i8, i8* %phi, i64 12
- call i8* @fn_nonnull_noundef_arg(i8* %gep)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ %gep = getelementptr inbounds i8, ptr %phi, i64 12
+ call ptr @fn_nonnull_noundef_arg(ptr %gep)
ret void
}
-define void @test9_gep_inbouds_unknown_null(i1 %X, i8* %Y, i64 %I) {
+define void @test9_gep_inbouds_unknown_null(i1 %X, ptr %Y, i64 %I) {
; CHECK-LABEL: @test9_gep_inbouds_unknown_null(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, i8* [[SPEC_SELECT]], i64 [[I:%.*]]
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_nonnull_noundef_arg(i8* [[GEP]])
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], ptr null, ptr [[Y:%.*]]
+; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, ptr [[SPEC_SELECT]], i64 [[I:%.*]]
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_nonnull_noundef_arg(ptr [[GEP]])
; CHECK-NEXT: ret void
;
entry:
@@ -488,18 +478,18 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- %gep = getelementptr inbounds i8, i8* %phi, i64 %I
- call i8* @fn_nonnull_noundef_arg(i8* %gep)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ %gep = getelementptr inbounds i8, ptr %phi, i64 %I
+ call ptr @fn_nonnull_noundef_arg(ptr %gep)
ret void
}
-define void @test9_gep_unknown_null(i1 %X, i8* %Y, i64 %I) {
+define void @test9_gep_unknown_null(i1 %X, ptr %Y, i64 %I) {
; CHECK-LABEL: @test9_gep_unknown_null(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, i8* [[SPEC_SELECT]], i64 [[I:%.*]]
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_nonnull_noundef_arg(i8* [[GEP]])
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], ptr null, ptr [[Y:%.*]]
+; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[SPEC_SELECT]], i64 [[I:%.*]]
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_nonnull_noundef_arg(ptr [[GEP]])
; CHECK-NEXT: ret void
;
entry:
@@ -509,17 +499,17 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- %gep = getelementptr i8, i8* %phi, i64 %I
- call i8* @fn_nonnull_noundef_arg(i8* %gep)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ %gep = getelementptr i8, ptr %phi, i64 %I
+ call ptr @fn_nonnull_noundef_arg(ptr %gep)
ret void
}
-define void @test9_gep_unknown_undef(i1 %X, i8* %Y, i64 %I) {
+define void @test9_gep_unknown_undef(i1 %X, ptr %Y, i64 %I) {
; CHECK-LABEL: @test9_gep_unknown_undef(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, i8* [[Y:%.*]], i64 [[I:%.*]]
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_noundef_arg(i8* [[GEP]])
+; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[Y:%.*]], i64 [[I:%.*]]
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_noundef_arg(ptr [[GEP]])
; CHECK-NEXT: ret void
;
entry:
@@ -529,17 +519,17 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ undef, %if ]
- %gep = getelementptr i8, i8* %phi, i64 %I
- call i8* @fn_noundef_arg(i8* %gep)
+ %phi = phi ptr [ %Y, %entry ], [ undef, %if ]
+ %gep = getelementptr i8, ptr %phi, i64 %I
+ call ptr @fn_noundef_arg(ptr %gep)
ret void
}
-define void @test9_missing_noundef(i1 %X, i8* %Y) {
+define void @test9_missing_noundef(i1 %X, ptr %Y) {
; CHECK-LABEL: @test9_missing_noundef(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_nonnull_arg(i8* [[SPEC_SELECT]])
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], ptr null, ptr [[Y:%.*]]
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_nonnull_arg(ptr [[SPEC_SELECT]])
; CHECK-NEXT: ret void
;
entry:
@@ -549,16 +539,16 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- call i8* @fn_nonnull_arg(i8* %phi)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ call ptr @fn_nonnull_arg(ptr %phi)
ret void
}
-define void @test9_null_defined(i1 %X, i8* %Y) #0 {
+define void @test9_null_defined(i1 %X, ptr %Y) #0 {
; CHECK-LABEL: @test9_null_defined(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], i8* null, i8* [[Y:%.*]]
-; CHECK-NEXT: [[TMP0:%.*]] = call i8* @fn_nonnull_noundef_arg(i8* [[SPEC_SELECT]])
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[X:%.*]], ptr null, ptr [[Y:%.*]]
+; CHECK-NEXT: [[TMP0:%.*]] = call ptr @fn_nonnull_noundef_arg(ptr [[SPEC_SELECT]])
; CHECK-NEXT: ret void
;
entry:
@@ -568,8 +558,8 @@ if:
br label %else
else:
- %phi = phi i8* [ %Y, %entry ], [ null, %if ]
- call i8* @fn_nonnull_noundef_arg(i8* %phi)
+ %phi = phi ptr [ %Y, %entry ], [ null, %if ]
+ call ptr @fn_nonnull_noundef_arg(ptr %phi)
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/2010-03-30-InvokeCrash.ll b/llvm/test/Transforms/SimplifyCFG/X86/2010-03-30-InvokeCrash.ll
index 29f74e49b5653..5305d31f498d2 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/2010-03-30-InvokeCrash.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/2010-03-30-InvokeCrash.ll
@@ -5,7 +5,7 @@ target triple = "x86_64-unknown-linux-gnu"
declare void @bar(i32)
-define void @foo() personality i32 (...)* @__gxx_personality_v0 {
+define void @foo() personality ptr @__gxx_personality_v0 {
entry:
invoke void @bar(i32 undef)
to label %r unwind label %u
@@ -14,9 +14,9 @@ r: ; preds = %entry
ret void
u: ; preds = %entry
- %val = landingpad { i8*, i32 }
+ %val = landingpad { ptr, i32 }
cleanup
- resume { i8*, i32 } %val
+ resume { ptr, i32 } %val
}
declare i32 @__gxx_personality_v0(...)
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/MagicPointer.ll b/llvm/test/Transforms/SimplifyCFG/X86/MagicPointer.ll
index 72acb2328a340..413406f921be6 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/MagicPointer.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/MagicPointer.ll
@@ -5,20 +5,20 @@
target datalayout = "e-p:64:64:64-p1:16:16:16-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin10.0.0"
- at .str = private constant [5 x i8] c"null\00" ; <[5 x i8]*> [#uses=2]
- at .str1 = private constant [4 x i8] c"one\00" ; <[4 x i8]*> [#uses=2]
- at .str2 = private constant [4 x i8] c"two\00" ; <[4 x i8]*> [#uses=2]
- at .str3 = private constant [5 x i8] c"four\00" ; <[5 x i8]*> [#uses=2]
+ at .str = private constant [5 x i8] c"null\00" ; <ptr> [#uses=2]
+ at .str1 = private constant [4 x i8] c"one\00" ; <ptr> [#uses=2]
+ at .str2 = private constant [4 x i8] c"two\00" ; <ptr> [#uses=2]
+ at .str3 = private constant [5 x i8] c"four\00" ; <ptr> [#uses=2]
- at .str_as1 = private addrspace(1) constant [5 x i8] c"null\00" ; <[5 x i8]*> [#uses=2]
- at .str1_as1 = private addrspace(1) constant [4 x i8] c"one\00" ; <[4 x i8]*> [#uses=2]
- at .str2_as1 = private addrspace(1) constant [4 x i8] c"two\00" ; <[4 x i8]*> [#uses=2]
- at .str3_as1 = private addrspace(1) constant [5 x i8] c"four\00" ; <[5 x i8]*> [#uses=2]
+ at .str_as1 = private addrspace(1) constant [5 x i8] c"null\00" ; <ptr> [#uses=2]
+ at .str1_as1 = private addrspace(1) constant [4 x i8] c"one\00" ; <ptr> [#uses=2]
+ at .str2_as1 = private addrspace(1) constant [4 x i8] c"two\00" ; <ptr> [#uses=2]
+ at .str3_as1 = private addrspace(1) constant [5 x i8] c"four\00" ; <ptr> [#uses=2]
-declare i32 @puts(i8*)
-declare i32 @puts_as1(i8 addrspace(1)*)
+declare i32 @puts(ptr)
+declare i32 @puts_as1(ptr addrspace(1))
-define void @f(i8* %x) nounwind ssp {
+define void @f(ptr %x) nounwind ssp {
; CHECK-LABEL: @f(
; CHECK: switch i64 %magicptr
; CHECK: i64 0, label
@@ -29,43 +29,43 @@ define void @f(i8* %x) nounwind ssp {
; CHECK: }
entry:
- %tobool = icmp eq i8* %x, null ; <i1> [#uses=1]
+ %tobool = icmp eq ptr %x, null ; <i1> [#uses=1]
br i1 %tobool, label %if.then, label %if.else
if.then: ; preds = %entry
- %call = call i32 @puts(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
+ %call = call i32 @puts(ptr @.str) nounwind ; <i32> [#uses=0]
br label %if.end21
if.else: ; preds = %entry
- %cmp = icmp eq i8* %x, inttoptr (i64 1 to i8*) ; <i1> [#uses=1]
+ %cmp = icmp eq ptr %x, inttoptr (i64 1 to ptr) ; <i1> [#uses=1]
br i1 %cmp, label %if.then2, label %if.else4
if.then2: ; preds = %if.else
- %call3 = call i32 @puts(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str1, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
+ %call3 = call i32 @puts(ptr @.str1) nounwind ; <i32> [#uses=0]
br label %if.end20
if.else4: ; preds = %if.else
- %cmp6 = icmp eq i8* %x, inttoptr (i64 2 to i8*) ; <i1> [#uses=1]
+ %cmp6 = icmp eq ptr %x, inttoptr (i64 2 to ptr) ; <i1> [#uses=1]
br i1 %cmp6, label %if.then9, label %lor.lhs.false
lor.lhs.false: ; preds = %if.else4
- %cmp8 = icmp eq i8* %x, inttoptr (i64 3 to i8*) ; <i1> [#uses=1]
+ %cmp8 = icmp eq ptr %x, inttoptr (i64 3 to ptr) ; <i1> [#uses=1]
br i1 %cmp8, label %if.then9, label %if.else11
if.then9: ; preds = %lor.lhs.false, %if.else4
- %call10 = call i32 @puts(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str2, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
+ %call10 = call i32 @puts(ptr @.str2) nounwind ; <i32> [#uses=0]
br label %if.end19
if.else11: ; preds = %lor.lhs.false
- %cmp13 = icmp eq i8* %x, inttoptr (i64 4 to i8*) ; <i1> [#uses=1]
+ %cmp13 = icmp eq ptr %x, inttoptr (i64 4 to ptr) ; <i1> [#uses=1]
br i1 %cmp13, label %if.then14, label %if.else16
if.then14: ; preds = %if.else11
- %call15 = call i32 @puts(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str3, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
+ %call15 = call i32 @puts(ptr @.str3) nounwind ; <i32> [#uses=0]
br label %if.end
if.else16: ; preds = %if.else11
- %call18 = call i32 @puts(i8* %x) nounwind ; <i32> [#uses=0]
+ %call18 = call i32 @puts(ptr %x) nounwind ; <i32> [#uses=0]
br label %if.end
if.end: ; preds = %if.else16, %if.then14
@@ -83,9 +83,9 @@ if.end21: ; preds = %if.end20, %if.then
; Is it useful to test a version where the ptrtoints are to the same
; size?
-define void @f_as1(i8 addrspace(1)* %x) nounwind ssp {
+define void @f_as1(ptr addrspace(1) %x) nounwind ssp {
; CHECK-LABEL: @f_as1(
-; CHECK: ptrtoint i8 addrspace(1)* %x to i16
+; CHECK: ptrtoint ptr addrspace(1) %x to i16
; CHECK: switch i16 %magicptr
; CHECK: i16 0, label
; CHECK: i16 1, label
@@ -95,43 +95,43 @@ define void @f_as1(i8 addrspace(1)* %x) nounwind ssp {
; CHECK: }
entry:
- %tobool = icmp eq i8 addrspace(1)* %x, null ; <i1> [#uses=1]
+ %tobool = icmp eq ptr addrspace(1) %x, null ; <i1> [#uses=1]
br i1 %tobool, label %if.then, label %if.else
if.then: ; preds = %entry
- %call = call i32 @puts_as1(i8 addrspace(1)* getelementptr inbounds ([5 x i8], [5 x i8] addrspace(1)* @.str_as1, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
+ %call = call i32 @puts_as1(ptr addrspace(1) @.str_as1) nounwind ; <i32> [#uses=0]
br label %if.end21
if.else: ; preds = %entry
- %cmp = icmp eq i8 addrspace(1)* %x, inttoptr (i64 1 to i8 addrspace(1)*) ; <i1> [#uses=1]
+ %cmp = icmp eq ptr addrspace(1) %x, inttoptr (i64 1 to ptr addrspace(1)) ; <i1> [#uses=1]
br i1 %cmp, label %if.then2, label %if.else4
if.then2: ; preds = %if.else
- %call3 = call i32 @puts_as1(i8 addrspace(1)* getelementptr inbounds ([4 x i8], [4 x i8] addrspace(1)* @.str1_as1, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
+ %call3 = call i32 @puts_as1(ptr addrspace(1) @.str1_as1) nounwind ; <i32> [#uses=0]
br label %if.end20
if.else4: ; preds = %if.else
- %cmp6 = icmp eq i8 addrspace(1)* %x, inttoptr (i64 2 to i8 addrspace(1)*) ; <i1> [#uses=1]
+ %cmp6 = icmp eq ptr addrspace(1) %x, inttoptr (i64 2 to ptr addrspace(1)) ; <i1> [#uses=1]
br i1 %cmp6, label %if.then9, label %lor.lhs.false
lor.lhs.false: ; preds = %if.else4
- %cmp8 = icmp eq i8 addrspace(1)* %x, inttoptr (i64 3 to i8 addrspace(1)*) ; <i1> [#uses=1]
+ %cmp8 = icmp eq ptr addrspace(1) %x, inttoptr (i64 3 to ptr addrspace(1)) ; <i1> [#uses=1]
br i1 %cmp8, label %if.then9, label %if.else11
if.then9: ; preds = %lor.lhs.false, %if.else4
- %call10 = call i32 @puts_as1(i8 addrspace(1)* getelementptr inbounds ([4 x i8], [4 x i8] addrspace(1)* @.str2_as1, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
+ %call10 = call i32 @puts_as1(ptr addrspace(1) @.str2_as1) nounwind ; <i32> [#uses=0]
br label %if.end19
if.else11: ; preds = %lor.lhs.false
- %cmp13 = icmp eq i8 addrspace(1)* %x, inttoptr (i64 4 to i8 addrspace(1)*) ; <i1> [#uses=1]
+ %cmp13 = icmp eq ptr addrspace(1) %x, inttoptr (i64 4 to ptr addrspace(1)) ; <i1> [#uses=1]
br i1 %cmp13, label %if.then14, label %if.else16
if.then14: ; preds = %if.else11
- %call15 = call i32 @puts_as1(i8 addrspace(1)* getelementptr inbounds ([5 x i8], [5 x i8] addrspace(1)* @.str3_as1, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
+ %call15 = call i32 @puts_as1(ptr addrspace(1) @.str3_as1) nounwind ; <i32> [#uses=0]
br label %if.end
if.else16: ; preds = %if.else11
- %call18 = call i32 @puts_as1(i8 addrspace(1)* %x) nounwind ; <i32> [#uses=0]
+ %call18 = call i32 @puts_as1(ptr addrspace(1) %x) nounwind ; <i32> [#uses=0]
br label %if.end
if.end: ; preds = %if.else16, %if.then14
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll b/llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll
index fa3349d50b2c2..c47c655d64156 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll
@@ -2,30 +2,28 @@
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
- at GV = external constant i64*
+ at GV = external constant ptr
-define i64* @test1(i1 %cond, i8* %P) {
+define ptr @test1(i1 %cond, ptr %P) {
entry:
br i1 %cond, label %if, label %then
then:
- %bc = bitcast i8* %P to i64*
br label %join
if:
- %load = load i64*, i64** @GV, align 8, !dereferenceable !0
+ %load = load ptr, ptr @GV, align 8, !dereferenceable !0
br label %join
join:
- %phi = phi i64* [ %bc, %then ], [ %load, %if ]
- ret i64* %phi
+ %phi = phi ptr [ %P, %then ], [ %load, %if ]
+ ret ptr %phi
}
-; CHECK-LABEL: define i64* @test1(
-; CHECK: %[[bc:.*]] = bitcast i8* %P to i64*
-; CHECK: %[[load:.*]] = load i64*, i64** @GV, align 8{{$}}
-; CHECK: %[[phi:.*]] = select i1 %cond, i64* %[[load]], i64* %[[bc]]
-; CHECK: ret i64* %[[phi]]
+; CHECK-LABEL: define ptr @test1(
+; CHECK: %[[load:.*]] = load ptr, ptr @GV, align 8{{$}}
+; CHECK: %[[phi:.*]] = select i1 %cond, ptr %[[load]], ptr %P
+; CHECK: ret ptr %[[phi]]
!0 = !{i64 8}
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/PR30210.ll b/llvm/test/Transforms/SimplifyCFG/X86/PR30210.ll
index e6e307c6d17e1..8c04399cdf07f 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/PR30210.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/PR30210.ll
@@ -3,7 +3,7 @@
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-declare i32* @fn1(i32* returned)
+declare ptr @fn1(ptr returned)
define i32 @test1(i1 %B) {
; CHECK-LABEL: @test1(
@@ -27,14 +27,14 @@ for.cond4.preheader.split.us: ; preds = %for.cond4.preheader
unreachable
for.cond4: ; preds = %for.end, %for.cond4.preheader
- %phi = phi i32* [ %call, %for.end ], [ undef, %for.cond4.preheader ]
- %call = call i32* @fn1(i32* %phi)
+ %phi = phi ptr [ %call, %for.end ], [ undef, %for.cond4.preheader ]
+ %call = call ptr @fn1(ptr %phi)
br label %for.cond5
for.cond5: ; preds = %for.cond5, %for.cond4
br i1 %B, label %for.cond5, label %for.end
for.end: ; preds = %for.cond5
- %load = load i32, i32* %call, align 4
+ %load = load i32, ptr %call, align 4
br label %for.cond4
}
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll b/llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll
index 48db457460d1c..44797074388c3 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll
@@ -64,68 +64,68 @@ bb3:
ret float %t5
}
-define i8* @test4(i1* %dummy, i8* %a, i8* %b) {
+define ptr @test4(ptr %dummy, ptr %a, ptr %b) {
; Test that we don't speculate an arbitrarily large number of unfolded constant
; expressions.
; CHECK-LABEL: @test4(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[COND1:%.*]] = load volatile i1, i1* [[DUMMY:%.*]], align 1
+; CHECK-NEXT: [[COND1:%.*]] = load volatile i1, ptr [[DUMMY:%.*]], align 1
; CHECK-NEXT: br i1 [[COND1]], label [[IF:%.*]], label [[END:%.*]]
; CHECK: if:
-; CHECK-NEXT: [[COND2:%.*]] = load volatile i1, i1* [[DUMMY]], align 1
+; CHECK-NEXT: [[COND2:%.*]] = load volatile i1, ptr [[DUMMY]], align 1
; CHECK-NEXT: br i1 [[COND2]], label [[THEN:%.*]], label [[END]]
; CHECK: then:
; CHECK-NEXT: br label [[END]]
; CHECK: end:
-; CHECK-NEXT: [[X1:%.*]] = phi i8* [ [[A:%.*]], [[ENTRY:%.*]] ], [ [[B:%.*]], [[IF]] ], [ inttoptr (i64 1 to i8*), [[THEN]] ]
-; CHECK-NEXT: [[X2:%.*]] = phi i8* [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 2 to i8*), [[THEN]] ]
-; CHECK-NEXT: [[X3:%.*]] = phi i8* [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 3 to i8*), [[THEN]] ]
-; CHECK-NEXT: [[X4:%.*]] = phi i8* [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 4 to i8*), [[THEN]] ]
-; CHECK-NEXT: [[X5:%.*]] = phi i8* [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 5 to i8*), [[THEN]] ]
-; CHECK-NEXT: [[X6:%.*]] = phi i8* [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 6 to i8*), [[THEN]] ]
-; CHECK-NEXT: [[X7:%.*]] = phi i8* [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 7 to i8*), [[THEN]] ]
-; CHECK-NEXT: [[X8:%.*]] = phi i8* [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 8 to i8*), [[THEN]] ]
-; CHECK-NEXT: [[X9:%.*]] = phi i8* [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 9 to i8*), [[THEN]] ]
-; CHECK-NEXT: [[X10:%.*]] = phi i8* [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 10 to i8*), [[THEN]] ]
-; CHECK-NEXT: ret i8* [[X10]]
+; CHECK-NEXT: [[X1:%.*]] = phi ptr [ [[A:%.*]], [[ENTRY:%.*]] ], [ [[B:%.*]], [[IF]] ], [ inttoptr (i64 1 to ptr), [[THEN]] ]
+; CHECK-NEXT: [[X2:%.*]] = phi ptr [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 2 to ptr), [[THEN]] ]
+; CHECK-NEXT: [[X3:%.*]] = phi ptr [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 3 to ptr), [[THEN]] ]
+; CHECK-NEXT: [[X4:%.*]] = phi ptr [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 4 to ptr), [[THEN]] ]
+; CHECK-NEXT: [[X5:%.*]] = phi ptr [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 5 to ptr), [[THEN]] ]
+; CHECK-NEXT: [[X6:%.*]] = phi ptr [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 6 to ptr), [[THEN]] ]
+; CHECK-NEXT: [[X7:%.*]] = phi ptr [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 7 to ptr), [[THEN]] ]
+; CHECK-NEXT: [[X8:%.*]] = phi ptr [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 8 to ptr), [[THEN]] ]
+; CHECK-NEXT: [[X9:%.*]] = phi ptr [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 9 to ptr), [[THEN]] ]
+; CHECK-NEXT: [[X10:%.*]] = phi ptr [ [[A]], [[ENTRY]] ], [ [[B]], [[IF]] ], [ inttoptr (i64 10 to ptr), [[THEN]] ]
+; CHECK-NEXT: ret ptr [[X10]]
;
entry:
- %cond1 = load volatile i1, i1* %dummy
+ %cond1 = load volatile i1, ptr %dummy
br i1 %cond1, label %if, label %end
if:
- %cond2 = load volatile i1, i1* %dummy
+ %cond2 = load volatile i1, ptr %dummy
br i1 %cond2, label %then, label %end
then:
br label %end
end:
- %x1 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 1 to i8*), %then ]
- %x2 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 2 to i8*), %then ]
- %x3 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 3 to i8*), %then ]
- %x4 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 4 to i8*), %then ]
- %x5 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 5 to i8*), %then ]
- %x6 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 6 to i8*), %then ]
- %x7 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 7 to i8*), %then ]
- %x8 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 8 to i8*), %then ]
- %x9 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 9 to i8*), %then ]
- %x10 = phi i8* [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 10 to i8*), %then ]
-
- ret i8* %x10
+ %x1 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 1 to ptr), %then ]
+ %x2 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 2 to ptr), %then ]
+ %x3 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 3 to ptr), %then ]
+ %x4 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 4 to ptr), %then ]
+ %x5 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 5 to ptr), %then ]
+ %x6 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 6 to ptr), %then ]
+ %x7 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 7 to ptr), %then ]
+ %x8 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 8 to ptr), %then ]
+ %x9 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 9 to ptr), %then ]
+ %x10 = phi ptr [ %a, %entry ], [ %b, %if ], [ inttoptr (i64 10 to ptr), %then ]
+
+ ret ptr %x10
}
-define i32* @test5(i32 %a, i32 %b, i32 %c, i32* dereferenceable(10) %ptr1, i32* dereferenceable(10) %ptr2, i32** dereferenceable(10) align 8 %ptr3) nofree nosync {
+define ptr @test5(i32 %a, i32 %b, i32 %c, ptr dereferenceable(10) %ptr1, ptr dereferenceable(10) %ptr2, ptr dereferenceable(10) align 8 %ptr3) nofree nosync {
; CHECK-LABEL: @test5(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[T1:%.*]] = icmp eq i32 [[B:%.*]], 0
; CHECK-NEXT: [[T2:%.*]] = icmp sgt i32 [[C:%.*]], 1
-; CHECK-NEXT: [[T4_SEL:%.*]] = select i1 [[T1]], i32* [[PTR2:%.*]], i32* [[PTR1:%.*]]
+; CHECK-NEXT: [[T4_SEL:%.*]] = select i1 [[T1]], ptr [[PTR2:%.*]], ptr [[PTR1:%.*]]
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[T1]], i1 [[T2]], i1 false
-; CHECK-NEXT: [[T3:%.*]] = load i32*, i32** [[PTR3:%.*]], align 8
-; CHECK-NEXT: [[T4:%.*]] = select i1 [[OR_COND]], i32* [[T3]], i32* [[T4_SEL]]
-; CHECK-NEXT: ret i32* [[T4]]
+; CHECK-NEXT: [[T3:%.*]] = load ptr, ptr [[PTR3:%.*]], align 8
+; CHECK-NEXT: [[T4:%.*]] = select i1 [[OR_COND]], ptr [[T3]], ptr [[T4_SEL]]
+; CHECK-NEXT: ret ptr [[T4]]
;
entry:
%t1 = icmp eq i32 %b, 0
@@ -136,12 +136,12 @@ bb1:
br i1 %t2, label %bb2, label %bb3
bb2:
- %t3 = load i32*, i32** %ptr3, !dereferenceable !{i64 10}
+ %t3 = load ptr, ptr %ptr3, !dereferenceable !{i64 10}
br label %bb3
bb3:
- %t4 = phi i32* [ %ptr1, %entry ], [ %ptr2, %bb1 ], [ %t3, %bb2 ]
- ret i32* %t4
+ %t4 = phi ptr [ %ptr1, %entry ], [ %ptr2, %bb1 ], [ %t3, %bb2 ]
+ ret ptr %t4
}
define float @spec_select_fp5(float %a, float %b, float %c) {
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/bug-25299.ll b/llvm/test/Transforms/SimplifyCFG/X86/bug-25299.ll
index aa1c28ba2522b..f72e58392f9c7 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/bug-25299.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/bug-25299.ll
@@ -13,7 +13,7 @@ entry:
to label %continue unwind label %unwind
unwind: ; preds = %entry
- %tmp101 = landingpad { i8*, i32 }
+ %tmp101 = landingpad { ptr, i32 }
cleanup
br i1 %B, label %resume, label %then
@@ -21,9 +21,9 @@ then: ; preds = %cleanup1
br label %resume
resume: ; preds = %cleanup2, %then, %cleanup1, %unwind
- %tmp104 = phi { i8*, i32 } [ %tmp101, %then ], [ %tmp106, %cleanup2 ], [ %tmp101, %unwind ]
-;CHECK-NOT: resume { i8*, i32 } %tmp104
- resume { i8*, i32 } %tmp104
+ %tmp104 = phi { ptr, i32 } [ %tmp101, %then ], [ %tmp106, %cleanup2 ], [ %tmp101, %unwind ]
+;CHECK-NOT: resume { ptr, i32 } %tmp104
+ resume { ptr, i32 } %tmp104
continue: ; preds = %entry, %continue
;CHECK: continue: ; preds = %entry, %continue
@@ -32,7 +32,7 @@ continue: ; preds = %entry, %continue
to label %continue unwind label %cleanup2
cleanup2: ; preds = %continue
- %tmp106 = landingpad { i8*, i32 }
+ %tmp106 = landingpad { ptr, i32 }
cleanup
br label %resume
}
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/combine-parallel-mem-md.ll b/llvm/test/Transforms/SimplifyCFG/X86/combine-parallel-mem-md.ll
index 310fd45ab0b59..8c5733e5babed 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/combine-parallel-mem-md.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/combine-parallel-mem-md.ll
@@ -3,44 +3,44 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: norecurse nounwind uwtable
-define void @Test(i32* nocapture %res, i32* nocapture readnone %c, i32* nocapture readonly %d, i32* nocapture readonly %p) #0 {
+define void @Test(ptr nocapture %res, ptr nocapture readnone %c, ptr nocapture readonly %d, ptr nocapture readonly %p) #0 {
entry:
br label %for.body
; CHECK-LABEL: @Test
-; CHECK: load i32, i32* {{.*}}, align 4, !llvm.access.group !0
-; CHECK: load i32, i32* {{.*}}, align 4, !llvm.access.group !0
+; CHECK: load i32, ptr {{.*}}, align 4, !llvm.access.group !0
+; CHECK: load i32, ptr {{.*}}, align 4, !llvm.access.group !0
; CHECK: store i32 {{.*}}, align 4, !llvm.access.group !0
; CHECK-NOT: load
; CHECK-NOT: store
for.body: ; preds = %cond.end, %entry
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %cond.end ]
- %arrayidx = getelementptr inbounds i32, i32* %p, i64 %indvars.iv
- %0 = load i32, i32* %arrayidx, align 4, !llvm.access.group !10
+ %arrayidx = getelementptr inbounds i32, ptr %p, i64 %indvars.iv
+ %0 = load i32, ptr %arrayidx, align 4, !llvm.access.group !10
%cmp1 = icmp eq i32 %0, 0
br i1 %cmp1, label %cond.true, label %cond.false
cond.false: ; preds = %for.body
- %arrayidx3 = getelementptr inbounds i32, i32* %res, i64 %indvars.iv
- %v = load i32, i32* %arrayidx3, align 4, !llvm.access.group !10
- %arrayidx7 = getelementptr inbounds i32, i32* %d, i64 %indvars.iv
- %1 = load i32, i32* %arrayidx7, align 4, !llvm.access.group !10
+ %arrayidx3 = getelementptr inbounds i32, ptr %res, i64 %indvars.iv
+ %v = load i32, ptr %arrayidx3, align 4, !llvm.access.group !10
+ %arrayidx7 = getelementptr inbounds i32, ptr %d, i64 %indvars.iv
+ %1 = load i32, ptr %arrayidx7, align 4, !llvm.access.group !10
%add = add nsw i32 %1, %v
br label %cond.end
cond.true: ; preds = %for.body
- %arrayidx4 = getelementptr inbounds i32, i32* %res, i64 %indvars.iv
- %w = load i32, i32* %arrayidx4, align 4, !llvm.access.group !10
- %arrayidx8 = getelementptr inbounds i32, i32* %d, i64 %indvars.iv
- %2 = load i32, i32* %arrayidx8, align 4, !llvm.access.group !10
+ %arrayidx4 = getelementptr inbounds i32, ptr %res, i64 %indvars.iv
+ %w = load i32, ptr %arrayidx4, align 4, !llvm.access.group !10
+ %arrayidx8 = getelementptr inbounds i32, ptr %d, i64 %indvars.iv
+ %2 = load i32, ptr %arrayidx8, align 4, !llvm.access.group !10
%add2 = add nsw i32 %2, %w
br label %cond.end
cond.end: ; preds = %for.body, %cond.false
%cond = phi i32 [ %add, %cond.false ], [ %add2, %cond.true ]
- %arrayidx9 = getelementptr inbounds i32, i32* %res, i64 %indvars.iv
- store i32 %cond, i32* %arrayidx9, align 4, !llvm.access.group !10
+ %arrayidx9 = getelementptr inbounds i32, ptr %res, i64 %indvars.iv
+ store i32 %cond, ptr %arrayidx9, align 4, !llvm.access.group !10
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%exitcond = icmp eq i64 %indvars.iv.next, 16
br i1 %exitcond, label %for.end, label %for.body, !llvm.loop !0
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/critedge-assume.ll b/llvm/test/Transforms/SimplifyCFG/X86/critedge-assume.ll
index 1d6fdb10072b4..58ca8df8ff6d6 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/critedge-assume.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/critedge-assume.ll
@@ -18,12 +18,12 @@ target triple = "x86_64-unknown-linux-gnu"
%class.F = type { i8 }
%class.B = type { i8 }
%class.A = type { %class.C }
-%class.C = type { i32 (...)** }
+%class.C = type { ptr }
-define void @foo(%class.F* %this, %class.B* %out) {
+define void @foo(ptr %this, ptr %out) {
entry:
- %call = tail call i32 @_ZNK1F5beginEv(%class.F* %this)
- %call2 = tail call i32 @_ZNK1F3endEv(%class.F* %this)
+ %call = tail call i32 @_ZNK1F5beginEv(ptr %this)
+ %call2 = tail call i32 @_ZNK1F3endEv(ptr %this)
%cmp.i22 = icmp eq i32 %call, %call2
br i1 %cmp.i22, label %while.end, label %while.body.preheader
@@ -32,20 +32,18 @@ while.body.preheader:
while.body:
%frame_node.sroa.0.023 = phi i32 [ %inc.i, %_ZN10unique_ptrD2Ev.exit ], [ %call, %while.body.preheader ]
- %call8 = tail call i8* @_Znwm(i64 8)
+ %call8 = tail call ptr @_Znwm(i64 8)
%inc.i = add nsw i32 %frame_node.sroa.0.023, 1
%cmp = icmp eq i32 %inc.i, %call2
br i1 %cmp, label %_ZN10unique_ptrD2Ev.exit, label %if.then
if.then:
- tail call void @_ZN1B6appendEv(%class.B* %out)
+ tail call void @_ZN1B6appendEv(ptr %out)
br label %_ZN10unique_ptrD2Ev.exit
_ZN10unique_ptrD2Ev.exit:
- %x1 = bitcast i8* %call8 to void (%class.A*)***
- %vtable.i.i = load void (%class.A*)**, void (%class.A*)*** %x1, align 8
- %x2 = bitcast void (%class.A*)** %vtable.i.i to i8*
- %x3 = tail call i1 @llvm.type.test(i8* %x2, metadata !"foo")
+ %vtable.i.i = load ptr, ptr %call8, align 8
+ %x3 = tail call i1 @llvm.type.test(ptr %vtable.i.i, metadata !"foo")
; CHECK: call void @llvm.assume
; CHECK: call void @llvm.assume
tail call void @llvm.assume(i1 %x3) #5
@@ -58,21 +56,21 @@ while.end:
ret void
}
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture)
-declare i32 @_ZNK1F5beginEv(%class.F*)
+declare i32 @_ZNK1F5beginEv(ptr)
-declare i32 @_ZNK1F3endEv(%class.F*)
+declare i32 @_ZNK1F3endEv(ptr)
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1)
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1)
-declare noalias nonnull i8* @_Znwm(i64)
+declare noalias nonnull ptr @_Znwm(i64)
-declare void @_ZN1B6appendEv(%class.B*)
+declare void @_ZN1B6appendEv(ptr)
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture)
-declare i1 @llvm.type.test(i8*, metadata)
+declare i1 @llvm.type.test(ptr, metadata)
declare void @llvm.assume(i1)
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/empty-cleanuppad.ll b/llvm/test/Transforms/SimplifyCFG/X86/empty-cleanuppad.ll
index a08c841bb5990..cd102d3c4ee97 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/empty-cleanuppad.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/empty-cleanuppad.ll
@@ -17,7 +17,7 @@ target triple = "x86_64-pc-windows-msvc18.0.0"
; In this case, both cleanup pads can be eliminated and the invoke can be
; converted to a call.
;
-define void @f1() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+define void @f1() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f1(
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @g()
@@ -55,7 +55,7 @@ ehcleanup.1: ; preds = %ehcleanup
; should unwind to the caller (that is, exception handling continues with the
; parent frame of the caller).
;
-define void @f2() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+define void @f2() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f2(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[B:%.*]] = alloca [[STRUCT_S2:%.*]], align 1
@@ -63,12 +63,12 @@ define void @f2() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*
; CHECK-NEXT: to label [[TRY_CONT:%.*]] unwind label [[EHCLEANUP:%.*]]
; CHECK: ehcleanup:
; CHECK-NEXT: [[TMP0:%.*]] = cleanuppad within none []
-; CHECK-NEXT: call void @"\01??1S2@@QEAA at XZ"(%struct.S2* [[B]])
+; CHECK-NEXT: call void @"\01??1S2@@QEAA at XZ"(ptr [[B]])
; CHECK-NEXT: cleanupret from [[TMP0]] unwind label [[CATCH_DISPATCH:%.*]]
; CHECK: catch.dispatch:
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch] unwind to caller
; CHECK: catch:
-; CHECK-NEXT: [[TMP1:%.*]] = catchpad within [[CS1]] [i8* null, i32 64, i8* null]
+; CHECK-NEXT: [[TMP1:%.*]] = catchpad within [[CS1]] [ptr null, i32 64, ptr null]
; CHECK-NEXT: catchret from [[TMP1]] to label [[TRY_CONT]]
; CHECK: try.cont:
; CHECK-NEXT: ret void
@@ -82,14 +82,14 @@ invoke.cont: ; preds = %entry
ehcleanup: ; preds = %entry
%0 = cleanuppad within none []
- call void @"\01??1S2@@QEAA at XZ"(%struct.S2* %b)
+ call void @"\01??1S2@@QEAA at XZ"(ptr %b)
cleanupret from %0 unwind label %catch.dispatch
catch.dispatch: ; preds = %ehcleanup
%cs1 = catchswitch within none [label %catch] unwind label %ehcleanup.1
catch: ; preds = %catch.dispatch
- %1 = catchpad within %cs1 [i8* null, i32 u0x40, i8* null]
+ %1 = catchpad within %cs1 [ptr null, i32 u0x40, ptr null]
catchret from %1 to label %catchret.dest
catchret.dest: ; preds = %catch
@@ -119,7 +119,7 @@ ehcleanup.1:
; In this case the inner cleanup pad should be eliminated and the invoke of g()
; should unwind directly to the catchpad.
-define void @f3() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+define void @f3() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f3(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[A:%.*]] = alloca [[STRUCT_S2:%.*]], align 1
@@ -128,13 +128,13 @@ define void @f3() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*
; CHECK: catch.dispatch:
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch] unwind label [[EHCLEANUP_1:%.*]]
; CHECK: catch:
-; CHECK-NEXT: [[CP2:%.*]] = catchpad within [[CS1]] [i8* null, i32 64, i8* null]
+; CHECK-NEXT: [[CP2:%.*]] = catchpad within [[CS1]] [ptr null, i32 64, ptr null]
; CHECK-NEXT: catchret from [[CP2]] to label [[TRY_CONT]]
; CHECK: try.cont:
; CHECK-NEXT: ret void
; CHECK: ehcleanup.1:
; CHECK-NEXT: [[CP3:%.*]] = cleanuppad within none []
-; CHECK-NEXT: call void @"\01??1S2@@QEAA at XZ"(%struct.S2* [[A]])
+; CHECK-NEXT: call void @"\01??1S2@@QEAA at XZ"(ptr [[A]])
; CHECK-NEXT: cleanupret from [[CP3]] unwind to caller
;
entry:
@@ -152,7 +152,7 @@ catch.dispatch: ; preds = %ehcleanup
%cs1 = catchswitch within none [label %catch] unwind label %ehcleanup.1
catch: ; preds = %catch.dispatch
- %cp2 = catchpad within %cs1 [i8* null, i32 u0x40, i8* null]
+ %cp2 = catchpad within %cs1 [ptr null, i32 u0x40, ptr null]
catchret from %cp2 to label %catchret.dest
catchret.dest: ; preds = %catch
@@ -163,7 +163,7 @@ try.cont: ; preds = %catchret.dest, %inv
ehcleanup.1:
%cp3 = cleanuppad within none []
- call void @"\01??1S2@@QEAA at XZ"(%struct.S2* %a)
+ call void @"\01??1S2@@QEAA at XZ"(ptr %a)
cleanupret from %cp3 unwind to caller
}
@@ -186,7 +186,7 @@ ehcleanup.1:
; Note: The cleanuppad simplification will insert an unconditional branch here
; but it will be eliminated, placing the following invoke in the entry BB.
;
-define void @f4() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+define void @f4() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f4(
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @g()
@@ -195,7 +195,7 @@ define void @f4() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*
; CHECK: catch.dispatch:
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch] unwind to caller
; CHECK: catch:
-; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [i8* null, i32 64, i8* null]
+; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [ptr null, i32 64, ptr null]
; CHECK-NEXT: catchret from [[TMP0]] to label [[TRY_CONT]]
; CHECK: try.cont:
; CHECK-NEXT: ret void
@@ -212,7 +212,7 @@ catch.dispatch: ; preds = %invoke.cont
%cs1 = catchswitch within none [label %catch] unwind label %ehcleanup
catch: ; preds = %catch.dispatch
- %0 = catchpad within %cs1 [i8* null, i32 u0x40, i8* null]
+ %0 = catchpad within %cs1 [ptr null, i32 u0x40, ptr null]
catchret from %0 to label %try.cont
try.cont: ; preds = %catch, %invoke.cont
@@ -242,7 +242,7 @@ ehcleanup:
; In this case, the cleanup pad should be eliminated and the PHI node in the
; cleanup pad should be sunk into the catch dispatch block.
;
-define i32 @f6() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+define i32 @f6() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f6(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @g()
@@ -254,7 +254,7 @@ define i32 @f6() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*)
; CHECK-NEXT: [[STATE_0:%.*]] = phi i32 [ 2, [[INVOKE_CONT]] ], [ 1, [[ENTRY:%.*]] ]
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch] unwind to caller
; CHECK: catch:
-; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [i8* null, i32 64, i8* null]
+; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [ptr null, i32 64, ptr null]
; CHECK-NEXT: catchret from [[TMP0]] to label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32 [ [[STATE_0]], [[CATCH:%.*]] ], [ 0, [[INVOKE_CONT]] ]
@@ -277,7 +277,7 @@ catch.dispatch: ; preds = %ehcleanup
%cs1 = catchswitch within none [label %catch] unwind to caller
catch: ; preds = %catch.dispatch
- %1 = catchpad within %cs1 [i8* null, i32 u0x40, i8* null]
+ %1 = catchpad within %cs1 [ptr null, i32 u0x40, ptr null]
catchret from %1 to label %return
return: ; preds = %invoke.cont, %catch
@@ -306,7 +306,7 @@ return: ; preds = %invoke.cont, %catch
; In this case, the cleanup pad should be eliminated and the PHI node in the
; cleanup pad should be merged with the PHI node in the catch dispatch block.
;
-define i32 @f7() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+define i32 @f7() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f7(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @g()
@@ -321,7 +321,7 @@ define i32 @f7() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*)
; CHECK-NEXT: [[STATE_1:%.*]] = phi i32 [ 1, [[ENTRY:%.*]] ], [ 3, [[INVOKE_CONT_1]] ], [ 2, [[INVOKE_CONT]] ]
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch] unwind to caller
; CHECK: catch:
-; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [i8* null, i32 64, i8* null]
+; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [ptr null, i32 64, ptr null]
; CHECK-NEXT: catchret from [[TMP0]] to label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: [[RETVAL_0:%.*]] = phi i32 [ [[STATE_1]], [[CATCH:%.*]] ], [ 0, [[INVOKE_CONT_1]] ]
@@ -349,7 +349,7 @@ catch.dispatch: ; preds = %ehcleanup, %entry
%cs1 = catchswitch within none [label %catch] unwind to caller
catch: ; preds = %catch.dispatch
- %1 = catchpad within %cs1 [i8* null, i32 u0x40, i8* null]
+ %1 = catchpad within %cs1 [ptr null, i32 u0x40, ptr null]
catchret from %1 to label %return
return: ; preds = %invoke.cont.1, %catch
@@ -384,7 +384,7 @@ return: ; preds = %invoke.cont.1, %cat
; should have an incoming value entry for path from 'foo' that references the
; PHI node itself.
;
-define void @f8() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+define void @f8() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f8(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @g()
@@ -396,7 +396,7 @@ define void @f8() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*
; CHECK-NEXT: [[X:%.*]] = phi i32 [ 2, [[INVOKE_CONT]] ], [ 1, [[ENTRY:%.*]] ], [ [[X]], [[CATCH_CONT:%.*]] ]
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch] unwind to caller
; CHECK: catch:
-; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [i8* null, i32 64, i8* null]
+; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [ptr null, i32 64, ptr null]
; CHECK-NEXT: call void @use_x(i32 [[X]])
; CHECK-NEXT: catchret from [[TMP0]] to label [[CATCH_CONT]]
; CHECK: catch.cont:
@@ -422,7 +422,7 @@ catch.dispatch: ; preds = %ehcleanup, %catch.c
%cs1 = catchswitch within none [label %catch] unwind to caller
catch: ; preds = %catch.dispatch
- %1 = catchpad within %cs1 [i8* null, i32 u0x40, i8* null]
+ %1 = catchpad within %cs1 [ptr null, i32 u0x40, ptr null]
call void @use_x(i32 %x)
catchret from %1 to label %catch.cont
@@ -433,46 +433,44 @@ catch.cont: ; preds = %catch
return: ; preds = %invoke.cont, %catch.cont
ret void
}
-define i32 @f9() personality i32 (...)* @__CxxFrameHandler3 {
+define i32 @f9() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f9(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[S:%.*]] = alloca i8, align 1
-; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull [[S]])
-; CHECK-NEXT: [[BC:%.*]] = bitcast i8* [[S]] to %struct.S2*
-; CHECK-NEXT: invoke void @"\01??1S2@@QEAA at XZ"(%struct.S2* [[BC]])
+; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 1, ptr nonnull [[S]])
+; CHECK-NEXT: invoke void @"\01??1S2@@QEAA at XZ"(ptr [[S]])
; CHECK-NEXT: to label [[TRY_CONT:%.*]] unwind label [[CATCH_DISPATCH:%.*]]
; CHECK: catch.dispatch:
; CHECK-NEXT: [[CATCH_SWITCH:%.*]] = catchswitch within none [label %catch] unwind to caller
; CHECK: catch:
-; CHECK-NEXT: [[CATCH_PAD:%.*]] = catchpad within [[CATCH_SWITCH]] [i8* null, i32 0, i8* null]
+; CHECK-NEXT: [[CATCH_PAD:%.*]] = catchpad within [[CATCH_SWITCH]] [ptr null, i32 0, ptr null]
; CHECK-NEXT: catchret from [[CATCH_PAD]] to label [[TRY_CONT]]
; CHECK: try.cont:
; CHECK-NEXT: ret i32 0
;
entry:
%s = alloca i8, align 1
- call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %s)
- %bc = bitcast i8* %s to %struct.S2*
- invoke void @"\01??1S2@@QEAA at XZ"(%struct.S2* %bc)
+ call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %s)
+ invoke void @"\01??1S2@@QEAA at XZ"(ptr %s)
to label %try.cont unwind label %ehcleanup
ehcleanup:
%cleanup.pad = cleanuppad within none []
- call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %s)
+ call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %s)
cleanupret from %cleanup.pad unwind label %catch.dispatch
catch.dispatch:
%catch.switch = catchswitch within none [label %catch] unwind to caller
catch:
- %catch.pad = catchpad within %catch.switch [i8* null, i32 0, i8* null]
+ %catch.pad = catchpad within %catch.switch [ptr null, i32 0, ptr null]
catchret from %catch.pad to label %try.cont
try.cont:
ret i32 0
}
-define void @f10(i32 %V) personality i32 (...)* @__CxxFrameHandler3 {
+define void @f10(i32 %V) personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f10(
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @g()
@@ -501,7 +499,7 @@ cleanupret2:
; This case tests the handling of an empty cleanup pad that
; contains a lifetime_end intrinsic and does not dominate its
; successor.
-define void @f11() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+define void @f11() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: @f11(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @g()
@@ -515,7 +513,7 @@ define void @f11() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8
; CHECK: catch.dispatch:
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch] unwind to caller
; CHECK: catch:
-; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [i8* null, i32 64, i8* null]
+; CHECK-NEXT: [[TMP0:%.*]] = catchpad within [[CS1]] [ptr null, i32 64, ptr null]
; CHECK-NEXT: catchret from [[TMP0]] to label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: ret void
@@ -533,16 +531,16 @@ invoke.cont2: ; preds = %invoke.cont
to label %return unwind label %catch.dispatch
ehcleanup: ; preds = %invoke.cont, %entry
- %x = phi i8* [ undef, %invoke.cont ], [ undef, %entry ]
+ %x = phi ptr [ undef, %invoke.cont ], [ undef, %entry ]
%0 = cleanuppad within none []
- call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %x)
+ call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %x)
cleanupret from %0 unwind label %catch.dispatch
catch.dispatch: ; preds = %ehcleanup, %invoke.cont
%cs1 = catchswitch within none [label %catch] unwind to caller
catch: ; preds = %catch.dispatch
- %1 = catchpad within %cs1 [i8* null, i32 u0x40, i8* null]
+ %1 = catchpad within %cs1 [ptr null, i32 u0x40, ptr null]
catchret from %1 to label %return
return: ; preds = %invoke.cont, %catch.cont
@@ -551,11 +549,11 @@ return: ; preds = %invoke.cont, %catch
%struct.S = type { i8 }
%struct.S2 = type { i8 }
-declare void @"\01??1S2@@QEAA at XZ"(%struct.S2*)
+declare void @"\01??1S2@@QEAA at XZ"(ptr)
declare void @g()
declare void @use_x(i32 %x)
declare i32 @__CxxFrameHandler3(...)
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture)
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture)
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/invalidate-dom.ll b/llvm/test/Transforms/SimplifyCFG/X86/invalidate-dom.ll
index 3347a014ca1d2..a937d9c65017a 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/invalidate-dom.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/invalidate-dom.ll
@@ -9,11 +9,11 @@ target triple = "x86_64-unknown-linux-gnu"
@f = external global i32, align 4
@g = external global i32, align 4
-define i32* @a(i32 %h) #0 {
+define ptr @a(i32 %h) #0 {
entry:
%h.addr = alloca i32, align 4
- store i32 %h, i32* %h.addr, align 4
- %tmp0 = load i32, i32* %h.addr, align 4
+ store i32 %h, ptr %h.addr, align 4
+ %tmp0 = load i32, ptr %h.addr, align 4
switch i32 %tmp0, label %sw.default [
i32 4, label %sw.bb
i32 3, label %sw.bb1
@@ -31,8 +31,8 @@ sw.bb1: ; preds = %entry
sw.bb3: ; preds = %entry
%call4 = call i32 (...) @c()
%conv = sext i32 %call4 to i64
- %tmp1 = inttoptr i64 %conv to i32*
- ret i32* %tmp1
+ %tmp1 = inttoptr i64 %conv to ptr
+ ret ptr %tmp1
sw.default: ; preds = %entry
unreachable
@@ -48,41 +48,41 @@ entry:
define internal i32 @j() #0 {
entry:
%i = alloca i32, align 4
- store i32 0, i32* %i, align 4
+ store i32 0, ptr %i, align 4
br label %for.cond
for.cond: ; preds = %for.body, %entry
- %tmp0 = load i32, i32* %i, align 4
- %tmp1 = load i32, i32* @f, align 4
+ %tmp0 = load i32, ptr %i, align 4
+ %tmp1 = load i32, ptr @f, align 4
%cmp = icmp ult i32 %tmp0, %tmp1
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
- %tmp2 = load i32, i32* @f, align 4
- %call3 = call i32* @a(i32 %tmp2)
+ %tmp2 = load i32, ptr @f, align 4
+ %call3 = call ptr @a(i32 %tmp2)
ret i32 undef
for.body: ; preds = %for.cond
%call = call i32 (...) @c()
%call1 = call i32 (...) @c()
%call2 = call i32 (...) @c()
- %tmp3 = load i32, i32* @b, align 4
- %tmp4 = load i32, i32* @g, align 4
+ %tmp3 = load i32, ptr @b, align 4
+ %tmp4 = load i32, ptr @g, align 4
%sub = sub nsw i32 %tmp4, %tmp3
- store i32 %sub, i32* @g, align 4
- %tmp5 = load i32, i32* %i, align 4
+ store i32 %sub, ptr @g, align 4
+ %tmp5 = load i32, ptr %i, align 4
%inc = add i32 %tmp5, 1
- store i32 %inc, i32* %i, align 4
+ store i32 %inc, ptr %i, align 4
br label %for.cond
}
declare i32 @c(...) #0
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2
attributes #0 = { "use-soft-float"="false" }
attributes #1 = { "target-cpu"="x86-64" }
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/merge-cleanuppads.ll b/llvm/test/Transforms/SimplifyCFG/X86/merge-cleanuppads.ll
index ec7f133a05e7c..6e6c97f12c86f 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/merge-cleanuppads.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/merge-cleanuppads.ll
@@ -3,7 +3,7 @@ target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc18.0.0"
; Function Attrs: uwtable
-define void @test1() #0 personality i32 (...)* @__CxxFrameHandler3 {
+define void @test1() #0 personality ptr @__CxxFrameHandler3 {
entry:
invoke void @may_throw(i32 3)
to label %invoke.cont unwind label %ehcleanup
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad-debuginfo.ll b/llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad-debuginfo.ll
index 295bda14a1c6d..801e81e6f49f2 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad-debuginfo.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad-debuginfo.ll
@@ -6,17 +6,17 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
target triple = "x86_64-unknown-linux-gnu"
; More interesting test, here we can merge the invokes.
-define void @t1_mergeable_invoke() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t1_mergeable_invoke() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t1_mergeable_invoke(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond(), !dbg [[DBG12:![0-9]+]]
; CHECK-NEXT: call void @llvm.dbg.value(metadata i1 [[C0]], metadata [[META9:![0-9]+]], metadata !DIExpression()), !dbg [[DBG12]]
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]], !dbg [[DBG13:![0-9]+]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup, !dbg [[DBG14:![0-9]+]]
; CHECK-NEXT: call void @destructor(), !dbg [[DBG15:![0-9]+]]
-; CHECK-NEXT: resume { i8*, i32 } [[EH]], !dbg [[DBG16:![0-9]+]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]], !dbg [[DBG16:![0-9]+]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond(), !dbg [[DBG17:![0-9]+]]
; CHECK-NEXT: call void @llvm.dbg.value(metadata i1 [[C1]], metadata [[META11:![0-9]+]], metadata !DIExpression()), !dbg [[DBG17]]
@@ -41,9 +41,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad.ll b/llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad.ll
index 9a41ca8e9ba14..c29451ae2ca06 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/merge-compatible-invokes-of-landingpad.ll
@@ -6,7 +6,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16
target triple = "x86_64-unknown-linux-gnu"
; Simple test, nothing interesting happens here.
-define void @t0_noop() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t0_noop() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t0_noop(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C:%.*]] = call i1 @cond()
@@ -17,10 +17,10 @@ define void @t0_noop() personality i8* bitcast (i32 (...)* @__gxx_personality_v0
; CHECK: invoke.cont:
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.end:
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: ret void
@@ -36,9 +36,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.end:
call void @sideeffect()
@@ -46,16 +46,16 @@ if.end:
}
; More interesting test, here we can merge the invokes.
-define void @t1_mergeable_invoke() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t1_mergeable_invoke() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t1_mergeable_invoke(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -79,9 +79,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -99,16 +99,16 @@ if.end:
}
; normal block is shared, but it is unreachable, so we are fine.
-define void @t2_shared_normal_dest() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t2_shared_normal_dest() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t2_shared_normal_dest(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -132,9 +132,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -149,7 +149,7 @@ if.end:
}
; shared normal destination is not unreachable.
-define void @t3_shared_identical_normal_dest() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t3_shared_identical_normal_dest() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t3_shared_identical_normal_dest(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -158,10 +158,10 @@ define void @t3_shared_identical_normal_dest() personality i8* bitcast (i32 (...
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -184,9 +184,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -201,7 +201,7 @@ if.end:
}
; normal destinations are not unreachable and not shared and can not be merged.
-define void @t4_normal_dests() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t4_normal_dests() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t4_normal_dests(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -213,10 +213,10 @@ define void @t4_normal_dests() personality i8* bitcast (i32 (...)* @__gxx_person
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
@@ -242,9 +242,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -263,7 +263,7 @@ if.end:
}
; Invokes lead to
diff erent landing pads.
-define void @t5_
diff erent_landingpads() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t5_
diff erent_landingpads() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t5_
diff erent_landingpads(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -274,10 +274,10 @@ define void @t5_
diff erent_landingpads() personality i8* bitcast (i32 (...)* @__g
; CHECK: invoke.cont0:
; CHECK-NEXT: unreachable
; CHECK: common.resume:
-; CHECK-NEXT: [[COMMON_RESUME_OP:%.*]] = phi { i8*, i32 } [ [[EH0:%.*]], [[LPAD0]] ], [ [[EH1:%.*]], [[LPAD1:%.*]] ]
-; CHECK-NEXT: resume { i8*, i32 } [[COMMON_RESUME_OP]]
+; CHECK-NEXT: [[COMMON_RESUME_OP:%.*]] = phi { ptr, i32 } [ [[EH0:%.*]], [[LPAD0]] ], [ [[EH1:%.*]], [[LPAD1:%.*]] ]
+; CHECK-NEXT: resume { ptr, i32 } [[COMMON_RESUME_OP]]
; CHECK: lpad0:
-; CHECK-NEXT: [[EH0]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH0]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
; CHECK-NEXT: br label [[COMMON_RESUME:%.*]]
@@ -290,7 +290,7 @@ define void @t5_
diff erent_landingpads() personality i8* bitcast (i32 (...)* @__g
; CHECK: invoke.cont2:
; CHECK-NEXT: unreachable
; CHECK: lpad1:
-; CHECK-NEXT: [[EH1]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH1]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @another_destructor()
; CHECK-NEXT: br label [[COMMON_RESUME]]
@@ -309,9 +309,9 @@ invoke.cont0:
unreachable
lpad0:
- %eh0 = landingpad { i8*, i32 } cleanup
+ %eh0 = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh0
+ resume { ptr, i32 } %eh0
if.else:
%c1 = call i1 @cond()
@@ -324,9 +324,9 @@ invoke.cont2:
unreachable
lpad1:
- %eh1 = landingpad { i8*, i32 } cleanup
+ %eh1 = landingpad { ptr, i32 } cleanup
call void @another_destructor()
- resume { i8*, i32 } %eh1
+ resume { ptr, i32 } %eh1
if.end:
call void @sideeffect()
@@ -334,7 +334,7 @@ if.end:
}
; The invoked functions are
diff erent
-define void @t6_
diff erent_invokes() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t6_
diff erent_invokes() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t6_
diff erent_invokes(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -345,10 +345,10 @@ define void @t6_
diff erent_invokes() personality i8* bitcast (i32 (...)* @__gxx_p
; CHECK: invoke.cont0:
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
@@ -372,9 +372,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -392,7 +392,7 @@ if.end:
}
; Merging of this invoke is disallowed
-define void @t7_nomerge0() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t7_nomerge0() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t7_nomerge0(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -403,10 +403,10 @@ define void @t7_nomerge0() personality i8* bitcast (i32 (...)* @__gxx_personalit
; CHECK: invoke.cont0:
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
@@ -430,9 +430,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -448,7 +448,7 @@ if.end:
call void @sideeffect()
ret void
}
-define void @t8_nomerge1() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t8_nomerge1() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t8_nomerge1(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -459,10 +459,10 @@ define void @t8_nomerge1() personality i8* bitcast (i32 (...)* @__gxx_personalit
; CHECK: invoke.cont0:
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
@@ -486,9 +486,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -504,7 +504,7 @@ if.end:
call void @sideeffect()
ret void
}
-define void @t9_nomerge2() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t9_nomerge2() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t9_nomerge2(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -515,10 +515,10 @@ define void @t9_nomerge2() personality i8* bitcast (i32 (...)* @__gxx_personalit
; CHECK: invoke.cont0:
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
@@ -542,9 +542,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -562,7 +562,7 @@ if.end:
}
; Just don't deal with inlineasm.
-define void @t10_inlineasm() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t10_inlineasm() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t10_inlineasm(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -573,10 +573,10 @@ define void @t10_inlineasm() personality i8* bitcast (i32 (...)* @__gxx_personal
; CHECK: invoke.cont0:
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
@@ -600,9 +600,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -620,7 +620,7 @@ if.end:
}
; landingpad has PHI nodes, and the incoming values are incompatible.
-define void @t11_phi_in_landingpad_incompatible_incoming_values() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t11_phi_in_landingpad_incompatible_incoming_values() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t11_phi_in_landingpad_incompatible_incoming_values(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -632,11 +632,11 @@ define void @t11_phi_in_landingpad_incompatible_incoming_values() personality i8
; CHECK-NEXT: unreachable
; CHECK: lpad:
; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ 0, [[IF_THEN0]] ], [ 1, [[IF_THEN1:%.*]] ]
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @consume(i32 [[PHI]])
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1]], label [[IF_END:%.*]]
@@ -661,10 +661,10 @@ invoke.cont0:
lpad:
%phi = phi i32 [ 0, %if.then0 ], [ 1, %if.then1 ]
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @consume(i32 %phi)
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -682,16 +682,16 @@ if.end:
}
; It is okay for the invoke to take arguments
-define void @t12_arguments_are_fine() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t12_arguments_are_fine() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t12_arguments_are_fine(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -715,9 +715,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -735,16 +735,16 @@ if.end:
}
; It is okay for the invoke to take
diff erent arguments
-define void @t13_
diff erent_arguments_are_fine() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t13_
diff erent_arguments_are_fine() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t13_
diff erent_arguments_are_fine(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -769,9 +769,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -789,16 +789,16 @@ if.end:
}
; There can be more than two invokes in a set
-define void @t14_three_invokes() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t14_three_invokes() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t14_three_invokes(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN2_INVOKE:%.*]], label [[IF_ELSE0:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else0:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN2_INVOKE]], label [[IF_ELSE1:%.*]]
@@ -825,9 +825,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else0:
%c1 = call i1 @cond()
@@ -855,16 +855,16 @@ if.end:
}
; If not all invokes of landingpad are compatible then we still merge compatible ones.
-define void @t15_three_invokes_only_two_compatible() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t15_three_invokes_only_two_compatible() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t15_three_invokes_only_two_compatible(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE0:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else0:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_ELSE1:%.*]]
@@ -896,9 +896,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else0:
%c1 = call i1 @cond()
@@ -926,16 +926,16 @@ if.end:
}
; We succeed in merging invokes into two sets
-define void @t16_four_invokes_forming_two_sets() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t16_four_invokes_forming_two_sets() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t16_four_invokes_forming_two_sets(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE0:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else0:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_ELSE1:%.*]]
@@ -970,9 +970,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else0:
%c1 = call i1 @cond()
@@ -1010,7 +1010,7 @@ if.end:
}
; Attributes must match
-define void @t17_mismatched_attrs_prevent_merge() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t17_mismatched_attrs_prevent_merge() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t17_mismatched_attrs_prevent_merge(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1021,10 +1021,10 @@ define void @t17_mismatched_attrs_prevent_merge() personality i8* bitcast (i32 (
; CHECK: invoke.cont0:
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
@@ -1048,9 +1048,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1068,16 +1068,16 @@ if.end:
}
; Common attributes are preserved
-define void @t18_attributes_are_preserved() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t18_attributes_are_preserved() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t18_attributes_are_preserved(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -1101,9 +1101,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1121,16 +1121,16 @@ if.end:
}
; Fully identical operand bundles are good.
-define void @t19_compatible_operand_bundle() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t19_compatible_operand_bundle() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t19_compatible_operand_bundle(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -1154,9 +1154,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1174,7 +1174,7 @@ if.end:
}
; Operand bundles must be compatible, else we can't merge.
-define void @t20_incompatible_operand_bundle() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t20_incompatible_operand_bundle() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t20_incompatible_operand_bundle(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1185,10 +1185,10 @@ define void @t20_incompatible_operand_bundle() personality i8* bitcast (i32 (...
; CHECK: invoke.cont0:
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
@@ -1212,9 +1212,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1232,16 +1232,16 @@ if.end:
}
; We need to PHI together the arguments of the operand bundles.
-define void @t21_semicompatible_operand_bundle() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t21_semicompatible_operand_bundle() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t21_semicompatible_operand_bundle(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -1266,9 +1266,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1287,16 +1287,16 @@ if.end:
; Even though the normal destinations are unreachable,
; they may have (dead) PHI nodes, so we must cleanup them.
-define void @t22_dead_phi_in_normal_dest() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t22_dead_phi_in_normal_dest() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t22_dead_phi_in_normal_dest(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -1317,9 +1317,9 @@ if.then0:
invoke void @maybe_throw() to label %invoke.cont0 unwind label %lpad
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1342,18 +1342,18 @@ if.end:
}
; landingpad has PHI nodes, and out of three invokes, only two have compatible incoming values.
-define void @t23_phi_in_landingpad_compatible_incoming_values() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t23_phi_in_landingpad_compatible_incoming_values() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t23_phi_in_landingpad_compatible_incoming_values(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE0:%.*]]
; CHECK: lpad:
; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ -1, [[IF_THEN2:%.*]] ], [ 0, [[IF_THEN1_INVOKE]] ]
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @consume(i32 [[PHI]])
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else0:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_ELSE1:%.*]]
@@ -1386,10 +1386,10 @@ invoke.cont0:
lpad:
%phi = phi i32 [ 0, %if.then0 ], [ 0, %if.then1 ], [ -1, %if.then2 ]
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @consume(i32 %phi)
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else0:
%c1 = call i1 @cond()
@@ -1418,7 +1418,7 @@ if.end:
; landingpad has two PHI nodes, but depending on which PHI you look,
; the invoke sets would be
diff erent, so we can't merge invokes here.
-define void @t24_phi_in_landingpad_semi_compatible_incoming_values() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t24_phi_in_landingpad_semi_compatible_incoming_values() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t24_phi_in_landingpad_semi_compatible_incoming_values(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1431,12 +1431,12 @@ define void @t24_phi_in_landingpad_semi_compatible_incoming_values() personality
; CHECK: lpad:
; CHECK-NEXT: [[PHI0:%.*]] = phi i32 [ 0, [[IF_THEN0]] ], [ 0, [[IF_THEN1:%.*]] ], [ -1, [[IF_THEN2:%.*]] ]
; CHECK-NEXT: [[PHI1:%.*]] = phi i32 [ 0, [[IF_THEN0]] ], [ 1, [[IF_THEN1]] ], [ 1, [[IF_THEN2]] ]
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @consume(i32 [[PHI0]])
; CHECK-NEXT: call void @consume(i32 [[PHI1]])
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else0:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1]], label [[IF_ELSE1:%.*]]
@@ -1470,11 +1470,11 @@ invoke.cont0:
lpad:
%phi0 = phi i32 [ 0, %if.then0 ], [ 0, %if.then1 ], [ -1, %if.then2 ]
%phi1= phi i32 [ 0, %if.then0 ], [ 1, %if.then1 ], [ 1, %if.then2 ]
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @consume(i32 %phi0)
call void @consume(i32 %phi1)
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else0:
%c1 = call i1 @cond()
@@ -1502,7 +1502,7 @@ if.end:
}
; The normal destinations are shared, but the incoming values are incompatible.
-define void @t25_incompatible_phis_in_normal_destination() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t25_incompatible_phis_in_normal_destination() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t25_incompatible_phis_in_normal_destination(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1516,10 +1516,10 @@ define void @t25_incompatible_phis_in_normal_destination() personality i8* bitca
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1]], label [[IF_END:%.*]]
@@ -1544,9 +1544,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1561,7 +1561,7 @@ if.end:
}
; shared normal destination has PHI nodes, and out of three invokes, only two have compatible incoming values.
-define void @t26_phi_in_normal_dest_compatible_incoming_values() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t26_phi_in_normal_dest_compatible_incoming_values() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t26_phi_in_normal_dest_compatible_incoming_values(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1572,10 +1572,10 @@ define void @t26_phi_in_normal_dest_compatible_incoming_values() personality i8*
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else0:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_ELSE1:%.*]]
@@ -1606,9 +1606,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else0:
%c1 = call i1 @cond()
@@ -1630,7 +1630,7 @@ if.end:
}
; Invokes return values, but they are unused.
-define void @t27_invoke_ret_value_is_used() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t27_invoke_ret_value_is_used() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t27_invoke_ret_value_is_used(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1639,10 +1639,10 @@ define void @t27_invoke_ret_value_is_used() personality i8* bitcast (i32 (...)*
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -1665,9 +1665,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1682,7 +1682,7 @@ if.end:
}
; Invokes return values, and they are used in a phi node, making the incoming values incompatible.
-define void @t28_invoke_ret_value_is_used_in_phi_node() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t28_invoke_ret_value_is_used_in_phi_node() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t28_invoke_ret_value_is_used_in_phi_node(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1692,10 +1692,10 @@ define void @t28_invoke_ret_value_is_used_in_phi_node() personality i8* bitcast
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -1720,9 +1720,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1737,7 +1737,7 @@ if.end:
}
; out of three invokes, two share normal destination and another one has unreachable destination
-define void @t29_common_normal_destination_and_unreachable_normal_destination() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t29_common_normal_destination_and_unreachable_normal_destination() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t29_common_normal_destination_and_unreachable_normal_destination(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1746,10 +1746,10 @@ define void @t29_common_normal_destination_and_unreachable_normal_destination()
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else0:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_ELSE1:%.*]]
@@ -1780,9 +1780,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else0:
%c1 = call i1 @cond()
@@ -1807,7 +1807,7 @@ if.end:
}
; normal destinations are not unreachable and
diff erent but could be merged
-define void @t30_completely_
diff erent_normal_dests() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t30_completely_
diff erent_normal_dests() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t30_completely_
diff erent_normal_dests(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1819,10 +1819,10 @@ define void @t30_completely_
diff erent_normal_dests() personality i8* bitcast (i3
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1:%.*]], label [[IF_END:%.*]]
@@ -1848,9 +1848,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1871,16 +1871,16 @@ if.end:
; Even though the normal destinations are unreachable,
; they may have (dead) PHI nodes with incompatible incoming values,
; so we must cleanup them.
-define void @t31_incompatible_dead_phi_in_normal_dest() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t31_incompatible_dead_phi_in_normal_dest() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t31_incompatible_dead_phi_in_normal_dest(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -1901,9 +1901,9 @@ if.then0:
invoke void @maybe_throw() to label %invoke.cont unwind label %lpad
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1923,7 +1923,7 @@ if.end:
; Invokes return values, and they are used in a phi node, making the incoming values incompatible,
; second phi has compatible incoming values
-define void @t32_invoke_ret_value_is_used_in_phi_node_other_phi_is_fine() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t32_invoke_ret_value_is_used_in_phi_node_other_phi_is_fine() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t32_invoke_ret_value_is_used_in_phi_node_other_phi_is_fine(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1934,10 +1934,10 @@ define void @t32_invoke_ret_value_is_used_in_phi_node_other_phi_is_fine() person
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -1964,9 +1964,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -1982,7 +1982,7 @@ if.end:
; Invokes return values, and they are used in a phi node, making the incoming values incompatible,
; second phi has incompatible incoming values.
-define void @t33_invoke_ret_value_is_used_in_phi_node_other_phi_is_bad() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t33_invoke_ret_value_is_used_in_phi_node_other_phi_is_bad() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t33_invoke_ret_value_is_used_in_phi_node_other_phi_is_bad(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -1998,10 +1998,10 @@ define void @t33_invoke_ret_value_is_used_in_phi_node_other_phi_is_bad() persona
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1]], label [[IF_END:%.*]]
@@ -2028,9 +2028,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -2046,7 +2046,7 @@ if.end:
; Invokes return values, and they are used in a phi node, but when coming from
diff erent invokes,
; the incoming value isn't always the invoke, which is not okay.
-define void @t34_invoke_ret_value_maybe_incompatibly_used_in_phi_node() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t34_invoke_ret_value_maybe_incompatibly_used_in_phi_node() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t34_invoke_ret_value_maybe_incompatibly_used_in_phi_node(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
@@ -2062,10 +2062,10 @@ define void @t34_invoke_ret_value_maybe_incompatibly_used_in_phi_node() personal
; CHECK-NEXT: call void @sideeffect()
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1]], label [[IF_END:%.*]]
@@ -2092,9 +2092,9 @@ invoke.cont:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -2109,16 +2109,16 @@ if.end:
}
; Two mergeable indirect calls, with identical callees.
-define void @t35_identical_indirect_callees(void()* %callee) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t35_identical_indirect_callees(ptr %callee) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t35_identical_indirect_callees(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
@@ -2142,9 +2142,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -2162,21 +2162,21 @@ if.end:
}
; Two mergeable indirect calls, with
diff erent callees.
-define void @t36_
diff erent_indirect_callees(void()* %callee0, void()* %callee1) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t36_
diff erent_indirect_callees(ptr %callee0, ptr %callee1) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t36_
diff erent_indirect_callees(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
; CHECK: if.then1.invoke:
-; CHECK-NEXT: [[TMP0:%.*]] = phi void ()* [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY:%.*]] ]
+; CHECK-NEXT: [[TMP0:%.*]] = phi ptr [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY:%.*]] ]
; CHECK-NEXT: invoke void [[TMP0]]()
; CHECK-NEXT: to label [[IF_THEN1_CONT:%.*]] unwind label [[LPAD:%.*]]
; CHECK: if.then1.cont:
@@ -2196,9 +2196,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -2216,16 +2216,16 @@ if.end:
}
; Don't merge direct invoke with indirect ones.
-define void @t37_three_invokes_two_indirect_one_direct(void()* %callee) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t37_three_invokes_two_indirect_one_direct(ptr %callee) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t37_three_invokes_two_indirect_one_direct(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE0:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else0:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_ELSE1:%.*]]
@@ -2257,9 +2257,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else0:
%c1 = call i1 @cond()
@@ -2287,22 +2287,22 @@ if.end:
}
; For indirect invokes,
diff erent arguments are fine.
-define void @t38_
diff erent_arguments_and_operand_bundes_are_fine(void(i32)* %callee0, void(i32)* %callee1) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t38_
diff erent_arguments_and_operand_bundes_are_fine(ptr %callee0, ptr %callee1) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t38_
diff erent_arguments_and_operand_bundes_are_fine(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
; CHECK: if.then1.invoke:
; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ 42, [[IF_ELSE]] ], [ 0, [[ENTRY:%.*]] ]
-; CHECK-NEXT: [[TMP1:%.*]] = phi void (i32)* [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY]] ]
+; CHECK-NEXT: [[TMP1:%.*]] = phi ptr [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY]] ]
; CHECK-NEXT: invoke void [[TMP1]](i32 [[TMP0]])
; CHECK-NEXT: to label [[IF_THEN1_CONT:%.*]] unwind label [[LPAD:%.*]]
; CHECK: if.then1.cont:
@@ -2322,9 +2322,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -2342,22 +2342,22 @@ if.end:
}
; For indirect invokes,
diff erent operand bundle arguments are fine.
-define void @t39_
diff erent_arguments_and_operand_bundes_are_fine(void()* %callee0, void()* %callee1) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t39_
diff erent_arguments_and_operand_bundes_are_fine(ptr %callee0, ptr %callee1) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t39_
diff erent_arguments_and_operand_bundes_are_fine(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
; CHECK: if.then1.invoke:
; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ 0, [[IF_ELSE]] ], [ 42, [[ENTRY:%.*]] ]
-; CHECK-NEXT: [[TMP1:%.*]] = phi void ()* [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY]] ]
+; CHECK-NEXT: [[TMP1:%.*]] = phi ptr [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY]] ]
; CHECK-NEXT: invoke void [[TMP1]]() [ "abc"(i32 [[TMP0]]) ]
; CHECK-NEXT: to label [[IF_THEN1_CONT:%.*]] unwind label [[LPAD:%.*]]
; CHECK: if.then1.cont:
@@ -2377,9 +2377,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
@@ -2397,23 +2397,23 @@ if.end:
}
; For indirect invokes, both
diff erent arguments and operand bundle arguments are fine.
-define void @t40_
diff erent_arguments_and_operand_bundes_are_fine(void(i32)* %callee0, void(i32)* %callee1) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @t40_
diff erent_arguments_and_operand_bundes_are_fine(ptr %callee0, ptr %callee1) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @t40_
diff erent_arguments_and_operand_bundes_are_fine(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[C0:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C0]], label [[IF_THEN1_INVOKE:%.*]], label [[IF_ELSE:%.*]]
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @destructor()
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
; CHECK: if.else:
; CHECK-NEXT: [[C1:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[C1]], label [[IF_THEN1_INVOKE]], label [[IF_END:%.*]]
; CHECK: if.then1.invoke:
; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ 42, [[IF_ELSE]] ], [ 0, [[ENTRY:%.*]] ]
; CHECK-NEXT: [[TMP1:%.*]] = phi i32 [ 0, [[IF_ELSE]] ], [ 42, [[ENTRY]] ]
-; CHECK-NEXT: [[TMP2:%.*]] = phi void (i32)* [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY]] ]
+; CHECK-NEXT: [[TMP2:%.*]] = phi ptr [ [[CALLEE1:%.*]], [[IF_ELSE]] ], [ [[CALLEE0:%.*]], [[ENTRY]] ]
; CHECK-NEXT: invoke void [[TMP2]](i32 [[TMP0]]) [ "abc"(i32 [[TMP1]]) ]
; CHECK-NEXT: to label [[IF_THEN1_CONT:%.*]] unwind label [[LPAD:%.*]]
; CHECK: if.then1.cont:
@@ -2433,9 +2433,9 @@ invoke.cont0:
unreachable
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @destructor()
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
if.else:
%c1 = call i1 @cond()
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/merge-cond-stores-cost.ll b/llvm/test/Transforms/SimplifyCFG/X86/merge-cond-stores-cost.ll
index 2edf2fa47a562..244400925c9eb 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/merge-cond-stores-cost.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/merge-cond-stores-cost.ll
@@ -1,21 +1,21 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -mtriple=x86_64-unknown-unknown < %s -simplifycfg-merge-cond-stores=true -simplifycfg-merge-cond-stores-aggressively=false -phi-node-folding-threshold=2 -S | FileCheck %s
-define void @test_costly(i32* %p, i32 %a, i32 %b, i32 %c, i32 %d) {
+define void @test_costly(ptr %p, i32 %a, i32 %b, i32 %c, i32 %d) {
; CHECK-LABEL: @test_costly(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[X1:%.*]] = icmp eq i32 [[A:%.*]], 0
; CHECK-NEXT: br i1 [[X1]], label [[FALLTHROUGH:%.*]], label [[YES1:%.*]]
; CHECK: yes1:
; CHECK-NEXT: [[VAL0:%.*]] = sdiv i32 [[D:%.*]], [[C:%.*]]
-; CHECK-NEXT: store i32 [[VAL0]], i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 [[VAL0]], ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[FALLTHROUGH]]
; CHECK: fallthrough:
; CHECK-NEXT: [[X2:%.*]] = icmp eq i32 [[B:%.*]], 0
; CHECK-NEXT: br i1 [[X2]], label [[END:%.*]], label [[YES2:%.*]]
; CHECK: yes2:
; CHECK-NEXT: [[VAL1:%.*]] = sdiv i32 [[C]], [[D]]
-; CHECK-NEXT: store i32 [[VAL1]], i32* [[P]], align 4
+; CHECK-NEXT: store i32 [[VAL1]], ptr [[P]], align 4
; CHECK-NEXT: br label [[END]]
; CHECK: end:
; CHECK-NEXT: ret void
@@ -26,7 +26,7 @@ entry:
yes1:
%val0 = sdiv i32 %d, %c
- store i32 %val0, i32* %p
+ store i32 %val0, ptr %p
br label %fallthrough
fallthrough:
@@ -35,7 +35,7 @@ fallthrough:
yes2:
%val1 = sdiv i32 %c, %d
- store i32 %val1, i32* %p
+ store i32 %val1, ptr %p
br label %end
end:
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll b/llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll
index e5683b9355040..52dc284c79594 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll
@@ -33,9 +33,8 @@
; CHECK-LABEL: entry
; CHECK: %foo = alloca i32, align 4
; CHECK: %face = alloca i8, align 1
-; CHECK: %foo.0..sroa_cast = bitcast i32* %foo to i8*
-; CHECK: store volatile i32 0, i32* %foo, align 4
-; CHECK: %foo.0. = load volatile i32, i32* %foo, align 4, !dbg !16
+; CHECK: store volatile i32 0, ptr %foo, align 4
+; CHECK: %foo.0. = load volatile i32, ptr %foo, align 4, !dbg !16
; CHECK: %cmp = icmp eq i32 %foo.0., 4, !dbg !16
; CHECK: %frombool = zext i1 %cmp to i8, !dbg !16
; CHECK: call void @llvm.dbg.value(metadata i8 %frombool, metadata !13, metadata !DIExpression()), !dbg !16
@@ -53,9 +52,8 @@ define dso_local i32 @main() local_unnamed_addr #0 !dbg !7 {
entry:
%foo = alloca i32, align 4
%face = alloca i8, align 1
- %foo.0..sroa_cast = bitcast i32* %foo to i8*
- store volatile i32 0, i32* %foo, align 4
- %foo.0. = load volatile i32, i32* %foo, align 4, !dbg !26
+ store volatile i32 0, ptr %foo, align 4
+ %foo.0. = load volatile i32, ptr %foo, align 4, !dbg !26
%cmp = icmp eq i32 %foo.0., 4, !dbg !26
%frombool = zext i1 %cmp to i8, !dbg !26
call void @llvm.dbg.value(metadata i8 %frombool, metadata !15, metadata !DIExpression()), !dbg !26
@@ -72,8 +70,8 @@ if.else: ; preds = %entry
if.end: ; preds = %if.else, %if.then
%beards.0 = phi i32 [ 8, %if.then ], [ 4, %if.else ]
- store volatile i8 %frombool, i8* %face, align 1
- %face.0. = load volatile i8, i8* %face, align 1
+ store volatile i8 %frombool, ptr %face, align 1
+ %face.0. = load volatile i8, ptr %face, align 1
%0 = and i8 %face.0., 1
%tobool3 = icmp eq i8 %0, 0
%cond4 = select i1 %tobool3, i32 0, i32 %beards.0
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/remove-debug-2.ll b/llvm/test/Transforms/SimplifyCFG/X86/remove-debug-2.ll
index 5aaaade050ce2..ebf07263456dd 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/remove-debug-2.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/remove-debug-2.ll
@@ -26,18 +26,18 @@ target triple = "x86_64-unknown-linux-gnu"
define i32 @foo(i32) !dbg !6 {
%2 = alloca i32, align 4
%3 = alloca i32, align 4
- store i32 %0, i32* %2, align 4
- store i32 1, i32* %3, align 4, !dbg !14
- %4 = load i32, i32* %2, align 4, !dbg !15
+ store i32 %0, ptr %2, align 4
+ store i32 1, ptr %3, align 4, !dbg !14
+ %4 = load i32, ptr %2, align 4, !dbg !15
%5 = icmp ne i32 %4, 0, !dbg !15
br i1 %5, label %6, label %7, !dbg !17
; <label>:6: ; preds = %1
- store i32 0, i32* %3, align 4, !dbg !18
+ store i32 0, ptr %3, align 4, !dbg !18
br label %7, !dbg !19
; <label>:7: ; preds = %6, %1
- %8 = load i32, i32* %3, align 4, !dbg !20
+ %8 = load i32, ptr %3, align 4, !dbg !20
ret i32 %8, !dbg !21
}
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/remove-debug.ll b/llvm/test/Transforms/SimplifyCFG/X86/remove-debug.ll
index b4bfb6f05a76f..0bc0d4a92a23c 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/remove-debug.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/remove-debug.ll
@@ -26,25 +26,25 @@ target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: uwtable
define void @_Z3fooi(i32) #0 !dbg !6 {
-; CHECK: load i32, i32* %2, align 4, !dbg ![[LOAD:[0-9]+]], !tbaa
-; CHECK: store i32 %5, i32* @x, align 4, !dbg ![[BAR:[0-9]+]], !tbaa
+; CHECK: load i32, ptr %2, align 4, !dbg ![[LOAD:[0-9]+]], !tbaa
+; CHECK: store i32 %5, ptr @x, align 4, !dbg ![[BAR:[0-9]+]], !tbaa
; CHECK: call void @_Z3barv(), !dbg ![[BAR]]
; CHECK: call void @_Z3bazv(), !dbg ![[BAZ:[0-9]+]]
%2 = alloca i32, align 4
- store i32 %0, i32* %2, align 4, !tbaa !8
- %3 = load i32, i32* %2, align 4, !dbg !12, !tbaa !8
+ store i32 %0, ptr %2, align 4, !tbaa !8
+ %3 = load i32, ptr %2, align 4, !dbg !12, !tbaa !8
%4 = icmp eq i32 %3, 0, !dbg !13
br i1 %4, label %5, label %7, !dbg !12
; <label>:5:
- %6 = load i32, i32* %2, align 4, !dbg !14, !tbaa !8
- store i32 %6, i32* @x, align 4, !dbg !15, !tbaa !8
+ %6 = load i32, ptr %2, align 4, !dbg !14, !tbaa !8
+ store i32 %6, ptr @x, align 4, !dbg !15, !tbaa !8
call void @_Z3barv(), !dbg !16
br label %9, !dbg !17
; <label>:7:
- %8 = load i32, i32* %2, align 4, !dbg !18, !tbaa !8
- store i32 %8, i32* @x, align 4, !dbg !19, !tbaa !8
+ %8 = load i32, ptr %2, align 4, !dbg !18, !tbaa !8
+ store i32 %8, ptr @x, align 4, !dbg !19, !tbaa !8
call void @_Z3barv(), !dbg !20
call void @_Z3bazv(), !dbg !21
br label %9
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll b/llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll
index 8ed868f885fa1..844aa40b5cc4d 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll
@@ -98,12 +98,12 @@ if.end:
}
-define i32 @test4(i1 zeroext %flag, i32 %x, i32* %y) {
+define i32 @test4(i1 zeroext %flag, i32 %x, ptr %y) {
; CHECK-LABEL: @test4(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[FLAG:%.*]], i32 5, i32 7
; CHECK-NEXT: [[B:%.*]] = add i32 [[X:%.*]], [[DOT]]
-; CHECK-NEXT: store i32 [[B]], i32* [[Y:%.*]], align 4
+; CHECK-NEXT: store i32 [[B]], ptr [[Y:%.*]], align 4
; CHECK-NEXT: ret i32 1
;
entry:
@@ -111,12 +111,12 @@ entry:
if.then:
%a = add i32 %x, 5
- store i32 %a, i32* %y
+ store i32 %a, ptr %y
br label %if.end
if.else:
%b = add i32 %x, 7
- store i32 %b, i32* %y
+ store i32 %b, ptr %y
br label %if.end
if.end:
@@ -124,17 +124,17 @@ if.end:
}
-define i32 @test5(i1 zeroext %flag, i32 %x, i32* %y) {
+define i32 @test5(i1 zeroext %flag, i32 %x, ptr %y) {
; CHECK-LABEL: @test5(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
; CHECK-NEXT: [[A:%.*]] = add i32 [[X:%.*]], 5
-; CHECK-NEXT: store volatile i32 [[A]], i32* [[Y:%.*]], align 4
+; CHECK-NEXT: store volatile i32 [[A]], ptr [[Y:%.*]], align 4
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
; CHECK-NEXT: [[B:%.*]] = add i32 [[X]], 7
-; CHECK-NEXT: store i32 [[B]], i32* [[Y]], align 4
+; CHECK-NEXT: store i32 [[B]], ptr [[Y]], align 4
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret i32 1
@@ -144,12 +144,12 @@ entry:
if.then:
%a = add i32 %x, 5
- store volatile i32 %a, i32* %y
+ store volatile i32 %a, ptr %y
br label %if.end
if.else:
%b = add i32 %x, 7
- store i32 %b, i32* %y
+ store i32 %b, ptr %y
br label %if.end
if.end:
@@ -157,12 +157,12 @@ if.end:
}
-define i32 @test6(i1 zeroext %flag, i32 %x, i32* %y) {
+define i32 @test6(i1 zeroext %flag, i32 %x, ptr %y) {
; CHECK-LABEL: @test6(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[FLAG:%.*]], i32 5, i32 7
; CHECK-NEXT: [[B:%.*]] = add i32 [[X:%.*]], [[DOT]]
-; CHECK-NEXT: store volatile i32 [[B]], i32* [[Y:%.*]], align 4
+; CHECK-NEXT: store volatile i32 [[B]], ptr [[Y:%.*]], align 4
; CHECK-NEXT: ret i32 1
;
entry:
@@ -170,12 +170,12 @@ entry:
if.then:
%a = add i32 %x, 5
- store volatile i32 %a, i32* %y
+ store volatile i32 %a, ptr %y
br label %if.end
if.else:
%b = add i32 %x, 7
- store volatile i32 %b, i32* %y
+ store volatile i32 %b, ptr %y
br label %if.end
if.end:
@@ -183,28 +183,28 @@ if.end:
}
-define i32 @test7(i1 zeroext %flag, i32 %x, i32* %y) {
+define i32 @test7(i1 zeroext %flag, i32 %x, ptr %y) {
; CHECK-LABEL: @test7(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[FLAG:%.*]], i32 5, i32 7
-; CHECK-NEXT: [[W:%.*]] = load volatile i32, i32* [[Y:%.*]], align 4
+; CHECK-NEXT: [[W:%.*]] = load volatile i32, ptr [[Y:%.*]], align 4
; CHECK-NEXT: [[B:%.*]] = add i32 [[W]], [[DOT]]
-; CHECK-NEXT: store volatile i32 [[B]], i32* [[Y]], align 4
+; CHECK-NEXT: store volatile i32 [[B]], ptr [[Y]], align 4
; CHECK-NEXT: ret i32 1
;
entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- %z = load volatile i32, i32* %y
+ %z = load volatile i32, ptr %y
%a = add i32 %z, 5
- store volatile i32 %a, i32* %y
+ store volatile i32 %a, ptr %y
br label %if.end
if.else:
- %w = load volatile i32, i32* %y
+ %w = load volatile i32, ptr %y
%b = add i32 %w, 7
- store volatile i32 %b, i32* %y
+ store volatile i32 %b, ptr %y
br label %if.end
if.end:
@@ -214,36 +214,36 @@ if.end:
; %z and %w are in
diff erent blocks. We shouldn't sink the add because
; there may be intervening memory instructions.
-define i32 @test8(i1 zeroext %flag, i32 %x, i32* %y) {
+define i32 @test8(i1 zeroext %flag, i32 %x, ptr %y) {
; CHECK-LABEL: @test8(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[Z:%.*]] = load volatile i32, i32* [[Y:%.*]], align 4
+; CHECK-NEXT: [[Z:%.*]] = load volatile i32, ptr [[Y:%.*]], align 4
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
; CHECK-NEXT: [[A:%.*]] = add i32 [[Z]], 5
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
-; CHECK-NEXT: [[W:%.*]] = load volatile i32, i32* [[Y]], align 4
+; CHECK-NEXT: [[W:%.*]] = load volatile i32, ptr [[Y]], align 4
; CHECK-NEXT: [[B:%.*]] = add i32 [[W]], 7
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: [[B_SINK:%.*]] = phi i32 [ [[B]], [[IF_ELSE]] ], [ [[A]], [[IF_THEN]] ]
-; CHECK-NEXT: store volatile i32 [[B_SINK]], i32* [[Y]], align 4
+; CHECK-NEXT: store volatile i32 [[B_SINK]], ptr [[Y]], align 4
; CHECK-NEXT: ret i32 1
;
entry:
- %z = load volatile i32, i32* %y
+ %z = load volatile i32, ptr %y
br i1 %flag, label %if.then, label %if.else
if.then:
%a = add i32 %z, 5
- store volatile i32 %a, i32* %y
+ store volatile i32 %a, ptr %y
br label %if.end
if.else:
- %w = load volatile i32, i32* %y
+ %w = load volatile i32, ptr %y
%b = add i32 %w, 7
- store volatile i32 %b, i32* %y
+ store volatile i32 %b, ptr %y
br label %if.end
if.end:
@@ -252,40 +252,40 @@ if.end:
; The extra store in %if.then means %z and %w are not equivalent.
-define i32 @test9(i1 zeroext %flag, i32 %x, i32* %y, i32* %p) {
+define i32 @test9(i1 zeroext %flag, i32 %x, ptr %y, ptr %p) {
; CHECK-LABEL: @test9(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: store i32 7, i32* [[P:%.*]], align 4
-; CHECK-NEXT: [[Z:%.*]] = load volatile i32, i32* [[Y:%.*]], align 4
-; CHECK-NEXT: store i32 6, i32* [[P]], align 4
+; CHECK-NEXT: store i32 7, ptr [[P:%.*]], align 4
+; CHECK-NEXT: [[Z:%.*]] = load volatile i32, ptr [[Y:%.*]], align 4
+; CHECK-NEXT: store i32 6, ptr [[P]], align 4
; CHECK-NEXT: [[A:%.*]] = add i32 [[Z]], 5
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
-; CHECK-NEXT: [[W:%.*]] = load volatile i32, i32* [[Y]], align 4
+; CHECK-NEXT: [[W:%.*]] = load volatile i32, ptr [[Y]], align 4
; CHECK-NEXT: [[B:%.*]] = add i32 [[W]], 7
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: [[B_SINK:%.*]] = phi i32 [ [[B]], [[IF_ELSE]] ], [ [[A]], [[IF_THEN]] ]
-; CHECK-NEXT: store volatile i32 [[B_SINK]], i32* [[Y]], align 4
+; CHECK-NEXT: store volatile i32 [[B_SINK]], ptr [[Y]], align 4
; CHECK-NEXT: ret i32 1
;
entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- store i32 7, i32* %p
- %z = load volatile i32, i32* %y
- store i32 6, i32* %p
+ store i32 7, ptr %p
+ %z = load volatile i32, ptr %y
+ store i32 6, ptr %p
%a = add i32 %z, 5
- store volatile i32 %a, i32* %y
+ store volatile i32 %a, ptr %y
br label %if.end
if.else:
- %w = load volatile i32, i32* %y
+ %w = load volatile i32, ptr %y
%b = add i32 %w, 7
- store volatile i32 %b, i32* %y
+ store volatile i32 %b, ptr %y
br label %if.end
if.end:
@@ -296,21 +296,20 @@ if.end:
%struct.anon = type { i32, i32 }
; The GEP indexes a struct type so cannot have a variable last index.
-define i32 @test10(i1 zeroext %flag, i32 %x, i32* %y, %struct.anon* %s) {
+define i32 @test10(i1 zeroext %flag, i32 %x, ptr %y, ptr %s) {
; CHECK-LABEL: @test10(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
; CHECK-NEXT: [[DUMMY:%.*]] = add i32 [[X:%.*]], 5
-; CHECK-NEXT: [[GEPA:%.*]] = getelementptr inbounds [[STRUCT_ANON:%.*]], %struct.anon* [[S:%.*]], i32 0, i32 0
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
; CHECK-NEXT: [[DUMMY1:%.*]] = add i32 [[X]], 6
-; CHECK-NEXT: [[GEPB:%.*]] = getelementptr inbounds [[STRUCT_ANON]], %struct.anon* [[S]], i32 0, i32 1
+; CHECK-NEXT: [[GEPB:%.*]] = getelementptr inbounds [[STRUCT_ANON:%.*]], ptr [[S:%.*]], i32 0, i32 1
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
-; CHECK-NEXT: [[GEPB_SINK:%.*]] = phi i32* [ [[GEPB]], [[IF_ELSE]] ], [ [[GEPA]], [[IF_THEN]] ]
-; CHECK-NEXT: store volatile i32 [[X]], i32* [[GEPB_SINK]], align 4
+; CHECK-NEXT: [[GEPB_SINK:%.*]] = phi ptr [ [[GEPB]], [[IF_ELSE]] ], [ [[S]], [[IF_THEN]] ]
+; CHECK-NEXT: store volatile i32 [[X]], ptr [[GEPB_SINK]], align 4
; CHECK-NEXT: ret i32 1
;
entry:
@@ -318,14 +317,13 @@ entry:
if.then:
%dummy = add i32 %x, 5
- %gepa = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 0
- store volatile i32 %x, i32* %gepa
+ store volatile i32 %x, ptr %s
br label %if.end
if.else:
%dummy1 = add i32 %x, 6
- %gepb = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 1
- store volatile i32 %x, i32* %gepb
+ %gepb = getelementptr inbounds %struct.anon, ptr %s, i32 0, i32 1
+ store volatile i32 %x, ptr %gepb
br label %if.end
if.end:
@@ -409,28 +407,28 @@ declare i32 @llvm.cttz.i32(i32 %x, i1 immarg) readnone
; The TBAA metadata should be properly combined.
-define i32 @test13(i1 zeroext %flag, i32 %x, i32* %y) {
+define i32 @test13(i1 zeroext %flag, i32 %x, ptr %y) {
; CHECK-LABEL: @test13(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[FLAG:%.*]], i32 5, i32 7
-; CHECK-NEXT: [[W:%.*]] = load volatile i32, i32* [[Y:%.*]], align 4
+; CHECK-NEXT: [[W:%.*]] = load volatile i32, ptr [[Y:%.*]], align 4
; CHECK-NEXT: [[B:%.*]] = add i32 [[W]], [[DOT]]
-; CHECK-NEXT: store volatile i32 [[B]], i32* [[Y]], align 4, !tbaa [[TBAA4:![0-9]+]]
+; CHECK-NEXT: store volatile i32 [[B]], ptr [[Y]], align 4, !tbaa [[TBAA4:![0-9]+]]
; CHECK-NEXT: ret i32 1
;
entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- %z = load volatile i32, i32* %y
+ %z = load volatile i32, ptr %y
%a = add i32 %z, 5
- store volatile i32 %a, i32* %y, !tbaa !3
+ store volatile i32 %a, ptr %y, !tbaa !3
br label %if.end
if.else:
- %w = load volatile i32, i32* %y
+ %w = load volatile i32, ptr %y
%b = add i32 %w, 7
- store volatile i32 %b, i32* %y, !tbaa !4
+ store volatile i32 %b, ptr %y, !tbaa !4
br label %if.end
if.end:
@@ -471,14 +469,14 @@ declare i32 @bar(i32)
; The load should be commoned.
-define i32 @test14(i1 zeroext %flag, i32 %w, i32 %x, i32 %y, %struct.anon* %s) {
+define i32 @test14(i1 zeroext %flag, i32 %w, i32 %x, i32 %y, ptr %s) {
; CHECK-LABEL: @test14(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[FLAG:%.*]], i32 1, i32 4
; CHECK-NEXT: [[DOT2:%.*]] = select i1 [[FLAG]], i32 56, i32 57
; CHECK-NEXT: [[DUMMY2:%.*]] = add i32 [[X:%.*]], [[DOT]]
-; CHECK-NEXT: [[GEPB:%.*]] = getelementptr inbounds [[STRUCT_ANON:%.*]], %struct.anon* [[S:%.*]], i32 0, i32 1
-; CHECK-NEXT: [[SV2:%.*]] = load i32, i32* [[GEPB]], align 4
+; CHECK-NEXT: [[GEPB:%.*]] = getelementptr inbounds [[STRUCT_ANON:%.*]], ptr [[S:%.*]], i32 0, i32 1
+; CHECK-NEXT: [[SV2:%.*]] = load i32, ptr [[GEPB]], align 4
; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i32 [[SV2]], [[DOT2]]
; CHECK-NEXT: ret i32 1
;
@@ -487,15 +485,15 @@ entry:
if.then:
%dummy = add i32 %x, 1
- %gepa = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 1
- %sv1 = load i32, i32* %gepa
+ %gepa = getelementptr inbounds %struct.anon, ptr %s, i32 0, i32 1
+ %sv1 = load i32, ptr %gepa
%cmp1 = icmp eq i32 %sv1, 56
br label %if.end
if.else:
%dummy2 = add i32 %x, 4
- %gepb = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 1
- %sv2 = load i32, i32* %gepb
+ %gepb = getelementptr inbounds %struct.anon, ptr %s, i32 0, i32 1
+ %sv2 = load i32, ptr %gepb
%cmp2 = icmp eq i32 %sv2, 57
call void @llvm.dbg.value(metadata i32 0, metadata !9, metadata !DIExpression()), !dbg !11
br label %if.end
@@ -519,22 +517,21 @@ declare void @llvm.dbg.value(metadata, metadata, metadata)
; The load should be commoned.
-define i32 @test15(i1 zeroext %flag, i32 %w, i32 %x, i32 %y, %struct.anon* %s) {
+define i32 @test15(i1 zeroext %flag, i32 %w, i32 %x, i32 %y, ptr %s) {
; CHECK-LABEL: @test15(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
; CHECK-NEXT: [[DUMMY:%.*]] = add i32 [[X:%.*]], 1
-; CHECK-NEXT: [[GEPA:%.*]] = getelementptr inbounds [[STRUCT_ANON:%.*]], %struct.anon* [[S:%.*]], i32 0, i32 0
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
; CHECK-NEXT: [[DUMMY2:%.*]] = add i32 [[X]], 4
-; CHECK-NEXT: [[GEPB:%.*]] = getelementptr inbounds [[STRUCT_ANON]], %struct.anon* [[S]], i32 0, i32 1
+; CHECK-NEXT: [[GEPB:%.*]] = getelementptr inbounds [[STRUCT_ANON:%.*]], ptr [[S:%.*]], i32 0, i32 1
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
-; CHECK-NEXT: [[GEPB_SINK:%.*]] = phi i32* [ [[GEPB]], [[IF_ELSE]] ], [ [[GEPA]], [[IF_THEN]] ]
+; CHECK-NEXT: [[GEPB_SINK:%.*]] = phi ptr [ [[GEPB]], [[IF_ELSE]] ], [ [[S]], [[IF_THEN]] ]
; CHECK-NEXT: [[DOTSINK:%.*]] = phi i64 [ 57, [[IF_ELSE]] ], [ 56, [[IF_THEN]] ]
-; CHECK-NEXT: [[SV2:%.*]] = load i32, i32* [[GEPB_SINK]], align 4
+; CHECK-NEXT: [[SV2:%.*]] = load i32, ptr [[GEPB_SINK]], align 4
; CHECK-NEXT: [[EXT2:%.*]] = zext i32 [[SV2]] to i64
; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i64 [[EXT2]], [[DOTSINK]]
; CHECK-NEXT: ret i32 1
@@ -544,16 +541,15 @@ entry:
if.then:
%dummy = add i32 %x, 1
- %gepa = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 0
- %sv1 = load i32, i32* %gepa
+ %sv1 = load i32, ptr %s
%ext1 = zext i32 %sv1 to i64
%cmp1 = icmp eq i64 %ext1, 56
br label %if.end
if.else:
%dummy2 = add i32 %x, 4
- %gepb = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 1
- %sv2 = load i32, i32* %gepb
+ %gepb = getelementptr inbounds %struct.anon, ptr %s, i32 0, i32 1
+ %sv2 = load i32, ptr %gepb
%ext2 = zext i32 %sv2 to i64
%cmp2 = icmp eq i64 %ext2, 57
br label %if.end
@@ -564,38 +560,38 @@ if.end:
}
-define zeroext i1 @test_crash(i1 zeroext %flag, i32* %i4, i32* %m, i32* %n) {
+define zeroext i1 @test_crash(i1 zeroext %flag, ptr %i4, ptr %m, ptr %n) {
; CHECK-LABEL: @test_crash(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: [[TMP1:%.*]] = load i32, i32* [[I4:%.*]], align 4
+; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr [[I4:%.*]], align 4
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
-; CHECK-NEXT: [[TMP3:%.*]] = load i32, i32* [[M:%.*]], align 4
-; CHECK-NEXT: [[TMP4:%.*]] = load i32, i32* [[N:%.*]], align 4
+; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[M:%.*]], align 4
+; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[N:%.*]], align 4
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: [[TMP4_SINK:%.*]] = phi i32 [ [[TMP4]], [[IF_ELSE]] ], [ -1, [[IF_THEN]] ]
; CHECK-NEXT: [[TMP3_SINK:%.*]] = phi i32 [ [[TMP3]], [[IF_ELSE]] ], [ [[TMP1]], [[IF_THEN]] ]
; CHECK-NEXT: [[TMP5:%.*]] = add i32 [[TMP3_SINK]], [[TMP4_SINK]]
-; CHECK-NEXT: store i32 [[TMP5]], i32* [[I4]], align 4
+; CHECK-NEXT: store i32 [[TMP5]], ptr [[I4]], align 4
; CHECK-NEXT: ret i1 true
;
entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- %tmp1 = load i32, i32* %i4
+ %tmp1 = load i32, ptr %i4
%tmp2 = add i32 %tmp1, -1
- store i32 %tmp2, i32* %i4
+ store i32 %tmp2, ptr %i4
br label %if.end
if.else:
- %tmp3 = load i32, i32* %m
- %tmp4 = load i32, i32* %n
+ %tmp3 = load i32, ptr %m
+ %tmp4 = load i32, ptr %n
%tmp5 = add i32 %tmp3, %tmp4
- store i32 %tmp5, i32* %i4
+ store i32 %tmp5, ptr %i4
br label %if.end
if.end:
@@ -648,7 +644,7 @@ if.end:
}
-define zeroext i1 @test16a(i1 zeroext %flag, i1 zeroext %flag2, i32 %blksA, i32 %blksB, i32 %nblks, i8* %p) {
+define zeroext i1 @test16a(i1 zeroext %flag, i1 zeroext %flag2, i32 %blksA, i32 %blksB, i32 %nblks, ptr %p) {
; CHECK-LABEL: @test16a(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
@@ -664,7 +660,7 @@ define zeroext i1 @test16a(i1 zeroext %flag, i1 zeroext %flag2, i32 %blksA, i32
; CHECK: if.end.sink.split:
; CHECK-NEXT: [[CMP2_SINK:%.*]] = phi i1 [ [[CMP2]], [[IF_THEN2]] ], [ [[CMP]], [[IF_THEN]] ]
; CHECK-NEXT: [[FROMBOOL3:%.*]] = zext i1 [[CMP2_SINK]] to i8
-; CHECK-NEXT: store i8 [[FROMBOOL3]], i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 [[FROMBOOL3]], ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret i1 true
@@ -675,7 +671,7 @@ entry:
if.then:
%cmp = icmp uge i32 %blksA, %nblks
%frombool1 = zext i1 %cmp to i8
- store i8 %frombool1, i8* %p
+ store i8 %frombool1, ptr %p
br label %if.end
if.else:
@@ -685,7 +681,7 @@ if.then2:
%add = add i32 %nblks, %blksB
%cmp2 = icmp ule i32 %add, %blksA
%frombool3 = zext i1 %cmp2 to i8
- store i8 %frombool3, i8* %p
+ store i8 %frombool3, ptr %p
br label %if.end
if.end:
@@ -805,10 +801,10 @@ define i32 @test_pr30188(i1 zeroext %flag, i32 %x) {
; CHECK-NEXT: [[Z:%.*]] = alloca i32, align 4
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: store i32 [[X:%.*]], i32* [[Y]], align 4
+; CHECK-NEXT: store i32 [[X:%.*]], ptr [[Y]], align 4
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
-; CHECK-NEXT: store i32 [[X]], i32* [[Z]], align 4
+; CHECK-NEXT: store i32 [[X]], ptr [[Z]], align 4
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret i32 1
@@ -819,11 +815,11 @@ entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- store i32 %x, i32* %y
+ store i32 %x, ptr %y
br label %if.end
if.else:
- store i32 %x, i32* %z
+ store i32 %x, ptr %z
br label %if.end
if.end:
@@ -839,14 +835,14 @@ define i32 @test_pr30188a(i1 zeroext %flag, i32 %x) {
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
; CHECK-NEXT: call void @g()
-; CHECK-NEXT: [[ONE:%.*]] = load i32, i32* [[Y]], align 4
+; CHECK-NEXT: [[ONE:%.*]] = load i32, ptr [[Y]], align 4
; CHECK-NEXT: [[TWO:%.*]] = add i32 [[ONE]], 2
-; CHECK-NEXT: store i32 [[TWO]], i32* [[Y]], align 4
+; CHECK-NEXT: store i32 [[TWO]], ptr [[Y]], align 4
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
-; CHECK-NEXT: [[THREE:%.*]] = load i32, i32* [[Z]], align 4
+; CHECK-NEXT: [[THREE:%.*]] = load i32, ptr [[Z]], align 4
; CHECK-NEXT: [[FOUR:%.*]] = add i32 [[THREE]], 2
-; CHECK-NEXT: store i32 [[FOUR]], i32* [[Y]], align 4
+; CHECK-NEXT: store i32 [[FOUR]], ptr [[Y]], align 4
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret i32 1
@@ -858,15 +854,15 @@ entry:
if.then:
call void @g()
- %one = load i32, i32* %y
+ %one = load i32, ptr %y
%two = add i32 %one, 2
- store i32 %two, i32* %y
+ store i32 %two, ptr %y
br label %if.end
if.else:
- %three = load i32, i32* %z
+ %three = load i32, ptr %z
%four = add i32 %three, 2
- store i32 %four, i32* %y
+ store i32 %four, ptr %y
br label %if.end
if.end:
@@ -917,7 +913,7 @@ define zeroext i1 @test_pr30244(i1 zeroext %flag, i1 zeroext %flag2, i32 %blksA,
; CHECK: if.then:
; CHECK-NEXT: [[CMP:%.*]] = icmp uge i32 [[BLKSA:%.*]], [[NBLKS:%.*]]
; CHECK-NEXT: [[FROMBOOL1:%.*]] = zext i1 [[CMP]] to i8
-; CHECK-NEXT: store i8 [[FROMBOOL1]], i8* [[P]], align 1
+; CHECK-NEXT: store i8 [[FROMBOOL1]], ptr [[P]], align 1
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
; CHECK-NEXT: br i1 [[FLAG2:%.*]], label [[IF_THEN2:%.*]], label [[IF_END]]
@@ -925,7 +921,7 @@ define zeroext i1 @test_pr30244(i1 zeroext %flag, i1 zeroext %flag2, i32 %blksA,
; CHECK-NEXT: [[ADD:%.*]] = add i32 [[NBLKS]], [[BLKSB:%.*]]
; CHECK-NEXT: [[CMP2:%.*]] = icmp ule i32 [[ADD]], [[BLKSA]]
; CHECK-NEXT: [[FROMBOOL3:%.*]] = zext i1 [[CMP2]] to i8
-; CHECK-NEXT: store i8 [[FROMBOOL3]], i8* [[P]], align 1
+; CHECK-NEXT: store i8 [[FROMBOOL3]], ptr [[P]], align 1
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret i1 true
@@ -937,7 +933,7 @@ entry:
if.then:
%cmp = icmp uge i32 %blksA, %nblks
%frombool1 = zext i1 %cmp to i8
- store i8 %frombool1, i8* %p
+ store i8 %frombool1, ptr %p
br label %if.end
if.else:
@@ -947,7 +943,7 @@ if.then2:
%add = add i32 %nblks, %blksB
%cmp2 = icmp ule i32 %add, %blksA
%frombool3 = zext i1 %cmp2 to i8
- store i8 %frombool3, i8* %p
+ store i8 %frombool3, ptr %p
br label %if.end
if.end:
@@ -1093,18 +1089,18 @@ if.end:
ret i32 1
}
-declare void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* nocapture, i8 addrspace(1)* nocapture readonly, i64, i1)
+declare void @llvm.memcpy.p1.p1.i64(ptr addrspace(1) nocapture, ptr addrspace(1) nocapture readonly, i64, i1)
; Make sure a memcpy size isn't replaced with a variable
-define void @no_replace_memcpy_size(i1 zeroext %flag, i8 addrspace(1)* %dst, i8 addrspace(1)* %src) {
+define void @no_replace_memcpy_size(i1 zeroext %flag, ptr addrspace(1) %dst, ptr addrspace(1) %src) {
; CHECK-LABEL: @no_replace_memcpy_size(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: call void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* [[DST:%.*]], i8 addrspace(1)* [[SRC:%.*]], i64 1024, i1 false)
+; CHECK-NEXT: call void @llvm.memcpy.p1.p1.i64(ptr addrspace(1) [[DST:%.*]], ptr addrspace(1) [[SRC:%.*]], i64 1024, i1 false)
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
-; CHECK-NEXT: call void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* [[DST]], i8 addrspace(1)* [[SRC]], i64 4096, i1 false)
+; CHECK-NEXT: call void @llvm.memcpy.p1.p1.i64(ptr addrspace(1) [[DST]], ptr addrspace(1) [[SRC]], i64 4096, i1 false)
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret void
@@ -1113,29 +1109,29 @@ entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- call void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* %dst, i8 addrspace(1)* %src, i64 1024, i1 false)
+ call void @llvm.memcpy.p1.p1.i64(ptr addrspace(1) %dst, ptr addrspace(1) %src, i64 1024, i1 false)
br label %if.end
if.else:
- call void @llvm.memcpy.p1i8.p1i8.i64(i8 addrspace(1)* %dst, i8 addrspace(1)* %src, i64 4096, i1 false)
+ call void @llvm.memcpy.p1.p1.i64(ptr addrspace(1) %dst, ptr addrspace(1) %src, i64 4096, i1 false)
br label %if.end
if.end:
ret void
}
-declare void @llvm.memmove.p1i8.p1i8.i64(i8 addrspace(1)* nocapture, i8 addrspace(1)* nocapture readonly, i64, i1)
+declare void @llvm.memmove.p1.p1.i64(ptr addrspace(1) nocapture, ptr addrspace(1) nocapture readonly, i64, i1)
; Make sure a memmove size isn't replaced with a variable
-define void @no_replace_memmove_size(i1 zeroext %flag, i8 addrspace(1)* %dst, i8 addrspace(1)* %src) {
+define void @no_replace_memmove_size(i1 zeroext %flag, ptr addrspace(1) %dst, ptr addrspace(1) %src) {
; CHECK-LABEL: @no_replace_memmove_size(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: call void @llvm.memmove.p1i8.p1i8.i64(i8 addrspace(1)* [[DST:%.*]], i8 addrspace(1)* [[SRC:%.*]], i64 1024, i1 false)
+; CHECK-NEXT: call void @llvm.memmove.p1.p1.i64(ptr addrspace(1) [[DST:%.*]], ptr addrspace(1) [[SRC:%.*]], i64 1024, i1 false)
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
-; CHECK-NEXT: call void @llvm.memmove.p1i8.p1i8.i64(i8 addrspace(1)* [[DST]], i8 addrspace(1)* [[SRC]], i64 4096, i1 false)
+; CHECK-NEXT: call void @llvm.memmove.p1.p1.i64(ptr addrspace(1) [[DST]], ptr addrspace(1) [[SRC]], i64 4096, i1 false)
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret void
@@ -1144,29 +1140,29 @@ entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- call void @llvm.memmove.p1i8.p1i8.i64(i8 addrspace(1)* %dst, i8 addrspace(1)* %src, i64 1024, i1 false)
+ call void @llvm.memmove.p1.p1.i64(ptr addrspace(1) %dst, ptr addrspace(1) %src, i64 1024, i1 false)
br label %if.end
if.else:
- call void @llvm.memmove.p1i8.p1i8.i64(i8 addrspace(1)* %dst, i8 addrspace(1)* %src, i64 4096, i1 false)
+ call void @llvm.memmove.p1.p1.i64(ptr addrspace(1) %dst, ptr addrspace(1) %src, i64 4096, i1 false)
br label %if.end
if.end:
ret void
}
-declare void @llvm.memset.p1i8.i64(i8 addrspace(1)* nocapture, i8, i64, i1)
+declare void @llvm.memset.p1.i64(ptr addrspace(1) nocapture, i8, i64, i1)
; Make sure a memset size isn't replaced with a variable
-define void @no_replace_memset_size(i1 zeroext %flag, i8 addrspace(1)* %dst) {
+define void @no_replace_memset_size(i1 zeroext %flag, ptr addrspace(1) %dst) {
; CHECK-LABEL: @no_replace_memset_size(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: call void @llvm.memset.p1i8.i64(i8 addrspace(1)* [[DST:%.*]], i8 0, i64 1024, i1 false)
+; CHECK-NEXT: call void @llvm.memset.p1.i64(ptr addrspace(1) [[DST:%.*]], i8 0, i64 1024, i1 false)
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
-; CHECK-NEXT: call void @llvm.memset.p1i8.i64(i8 addrspace(1)* [[DST]], i8 0, i64 4096, i1 false)
+; CHECK-NEXT: call void @llvm.memset.p1.i64(ptr addrspace(1) [[DST]], i8 0, i64 4096, i1 false)
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret void
@@ -1175,11 +1171,11 @@ entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- call void @llvm.memset.p1i8.i64(i8 addrspace(1)* %dst, i8 0, i64 1024, i1 false)
+ call void @llvm.memset.p1.i64(ptr addrspace(1) %dst, i8 0, i64 1024, i1 false)
br label %if.end
if.else:
- call void @llvm.memset.p1i8.i64(i8 addrspace(1)* %dst, i8 0, i64 4096, i1 false)
+ call void @llvm.memset.p1.i64(ptr addrspace(1) %dst, i8 0, i64 4096, i1 false)
br label %if.end
if.end:
@@ -1223,7 +1219,7 @@ if.end:
declare i32 @call_target()
-define void @test_operand_bundles(i1 %cond, i32* %ptr) {
+define void @test_operand_bundles(i1 %cond, ptr %ptr) {
; CHECK-LABEL: @test_operand_bundles(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[COND:%.*]], label [[LEFT:%.*]], label [[RIGHT:%.*]]
@@ -1235,7 +1231,7 @@ define void @test_operand_bundles(i1 %cond, i32* %ptr) {
; CHECK-NEXT: br label [[MERGE]]
; CHECK: merge:
; CHECK-NEXT: [[VAL1_SINK:%.*]] = phi i32 [ [[VAL1]], [[RIGHT]] ], [ [[VAL0]], [[LEFT]] ]
-; CHECK-NEXT: store i32 [[VAL1_SINK]], i32* [[PTR:%.*]], align 4
+; CHECK-NEXT: store i32 [[VAL1_SINK]], ptr [[PTR:%.*]], align 4
; CHECK-NEXT: ret void
;
entry:
@@ -1243,12 +1239,12 @@ entry:
left:
%val0 = call i32 @call_target() [ "deopt"(i32 10) ]
- store i32 %val0, i32* %ptr
+ store i32 %val0, ptr %ptr
br label %merge
right:
%val1 = call i32 @call_target() [ "deopt"(i32 20) ]
- store i32 %val1, i32* %ptr
+ store i32 %val1, ptr %ptr
br label %merge
merge:
@@ -1349,12 +1345,10 @@ define i32 @test_not_sink_lifetime_marker(i1 zeroext %flag, i32 %x) {
; CHECK-NEXT: [[Z:%.*]] = alloca i32, align 4
; CHECK-NEXT: br i1 [[FLAG:%.*]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: [[Y_CAST:%.*]] = bitcast i32* [[Y]] to i8*
-; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 4, i8* [[Y_CAST]])
+; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 4, ptr [[Y]])
; CHECK-NEXT: br label [[IF_END:%.*]]
; CHECK: if.else:
-; CHECK-NEXT: [[Z_CAST:%.*]] = bitcast i32* [[Z]] to i8*
-; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 4, i8* [[Z_CAST]])
+; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 4, ptr [[Z]])
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret i32 1
@@ -1365,13 +1359,11 @@ entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- %y.cast = bitcast i32* %y to i8*
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %y.cast)
+ call void @llvm.lifetime.end.p0(i64 4, ptr %y)
br label %if.end
if.else:
- %z.cast = bitcast i32* %z to i8*
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %z.cast)
+ call void @llvm.lifetime.end.p0(i64 4, ptr %z)
br label %if.end
if.end:
@@ -1404,10 +1396,10 @@ end:
ret void
}
-define void @indirect_caller(i1 %c, i32 %v, void (i32)* %foo, void (i32)* %bar) {
+define void @indirect_caller(i1 %c, i32 %v, ptr %foo, ptr %bar) {
; CHECK-LABEL: @indirect_caller(
; CHECK-NEXT: end:
-; CHECK-NEXT: [[FOO_BAR:%.*]] = select i1 [[C:%.*]], void (i32)* [[FOO:%.*]], void (i32)* [[BAR:%.*]]
+; CHECK-NEXT: [[FOO_BAR:%.*]] = select i1 [[C:%.*]], ptr [[FOO:%.*]], ptr [[BAR:%.*]]
; CHECK-NEXT: tail call void [[FOO_BAR]](i32 [[V:%.*]])
; CHECK-NEXT: ret void
;
@@ -1425,9 +1417,9 @@ end:
ret void
}
-define void @maybe_indirect_caller(void ()* %fun) {
+define void @maybe_indirect_caller(ptr %fun) {
; CHECK-LABEL: @maybe_indirect_caller(
-; CHECK-NEXT: [[C:%.*]] = icmp eq void ()* [[FUN:%.*]], @direct_callee
+; CHECK-NEXT: [[C:%.*]] = icmp eq ptr [[FUN:%.*]], @direct_callee
; CHECK-NEXT: br i1 [[C]], label [[IF_TRUE_DIRECT_TARG:%.*]], label [[IF_FALSE_ORIG_INDIRECT:%.*]]
; CHECK: if.true.direct_targ:
; CHECK-NEXT: tail call void @direct_callee()
@@ -1438,7 +1430,7 @@ define void @maybe_indirect_caller(void ()* %fun) {
; CHECK: if.end.icp:
; CHECK-NEXT: ret void
;
- %c = icmp eq void ()* %fun, @direct_callee
+ %c = icmp eq ptr %fun, @direct_callee
br i1 %c, label %if.true.direct_targ, label %if.false.orig_indirect
if.true.direct_targ:
@@ -1452,9 +1444,9 @@ if.false.orig_indirect:
if.end.icp:
ret void
}
-define void @maybe_indirect_caller2(void ()* %fun) {
+define void @maybe_indirect_caller2(ptr %fun) {
; CHECK-LABEL: @maybe_indirect_caller2(
-; CHECK-NEXT: [[C:%.*]] = icmp eq void ()* [[FUN:%.*]], @direct_callee
+; CHECK-NEXT: [[C:%.*]] = icmp eq ptr [[FUN:%.*]], @direct_callee
; CHECK-NEXT: br i1 [[C]], label [[IF_TRUE_DIRECT_TARG:%.*]], label [[IF_FALSE_ORIG_INDIRECT:%.*]]
; CHECK: if.false.orig_indirect:
; CHECK-NEXT: tail call void [[FUN]]()
@@ -1465,7 +1457,7 @@ define void @maybe_indirect_caller2(void ()* %fun) {
; CHECK: if.end.icp:
; CHECK-NEXT: ret void
;
- %c = icmp eq void ()* %fun, @direct_callee
+ %c = icmp eq ptr %fun, @direct_callee
br i1 %c, label %if.true.direct_targ, label %if.false.orig_indirect
if.false.orig_indirect:
@@ -1483,8 +1475,8 @@ declare void @direct_callee()
declare void @direct_callee2()
declare void @direct_callee3()
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture)
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture)
define void @creating_too_many_phis(i1 %cond, i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, i32 %g, i32 %h) {
; CHECK-LABEL: @creating_too_many_phis(
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-bitcast.ll b/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-bitcast.ll
index d1c2185c7c330..ec42efb12aad1 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-bitcast.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-bitcast.ll
@@ -6,14 +6,14 @@ target triple = "x86_64-unknown-linux-gnu"
@alloc1 = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c"B" }>, align 1
@alloc2 = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c"C" }>, align 1
-define { [0 x i8]*, i64 } @switch_to_lookup_bitcast(i8 %0) unnamed_addr {
+define { ptr, i64 } @switch_to_lookup_bitcast(i8 %0) unnamed_addr {
; CHECK-LABEL: @switch_to_lookup_bitcast(
; CHECK-NEXT: start:
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [3 x [0 x i8]*], [3 x [0 x i8]*]* @switch.table.switch_to_lookup_bitcast, i32 0, i8 [[TMP0:%.*]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load [0 x i8]*, [0 x i8]** [[SWITCH_GEP]], align 8
-; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* [[SWITCH_LOAD]], 0
-; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { [0 x i8]*, i64 } [[TMP1]], i64 1, 1
-; CHECK-NEXT: ret { [0 x i8]*, i64 } [[TMP2]]
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [3 x ptr], ptr @switch.table.switch_to_lookup_bitcast, i32 0, i8 [[TMP0:%.*]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load ptr, ptr [[SWITCH_GEP]], align 8
+; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { ptr, i64 } undef, ptr [[SWITCH_LOAD]], 0
+; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { ptr, i64 } [[TMP1]], i64 1, 1
+; CHECK-NEXT: ret { ptr, i64 } [[TMP2]]
;
start:
switch i8 %0, label %default [
@@ -35,8 +35,8 @@ default:
unreachable
end:
- %.sroa.0.0 = phi [0 x i8]* [ bitcast (<{ [1 x i8] }>* @alloc0 to [0 x i8]*), %bb0 ], [ bitcast (<{ [1 x i8] }>* @alloc1 to [0 x i8]*), %bb1 ], [ bitcast (<{ [1 x i8] }>* @alloc2 to [0 x i8]*), %bb2 ]
- %1 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %.sroa.0.0, 0
- %2 = insertvalue { [0 x i8]*, i64 } %1, i64 1, 1
- ret { [0 x i8]*, i64 } %2
+ %.sroa.0.0 = phi ptr [ @alloc0, %bb0 ], [ @alloc1, %bb1 ], [ @alloc2, %bb2 ]
+ %1 = insertvalue { ptr, i64 } undef, ptr %.sroa.0.0, 0
+ %2 = insertvalue { ptr, i64 } %1, i64 1, 1
+ ret { ptr, i64 } %2
}
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-gep.ll b/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-gep.ll
index b6d0064983fc5..395eddf1ef5c8 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-gep.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-gep.ll
@@ -6,14 +6,14 @@ target triple = "x86_64-unknown-linux-gnu"
@alloc1 = private unnamed_addr constant <{ [2 x i8] }> <{ [2 x i8] c"B2" }>, align 1
@alloc2 = private unnamed_addr constant <{ [2 x i8] }> <{ [2 x i8] c"C3" }>, align 1
-define { i8*, i64 } @switch_to_lookup_gep(i8 %0) unnamed_addr {
+define { ptr, i64 } @switch_to_lookup_gep(i8 %0) unnamed_addr {
; CHECK-LABEL: @switch_to_lookup_gep(
; CHECK-NEXT: start:
-; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [3 x i8*], [3 x i8*]* @switch.table.switch_to_lookup_gep, i32 0, i8 [[TMP0:%.*]]
-; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load i8*, i8** [[SWITCH_GEP]], align 8
-; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i8*, i64 } undef, i8* [[SWITCH_LOAD]], 0
-; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { i8*, i64 } [[TMP1]], i64 1, 1
-; CHECK-NEXT: ret { i8*, i64 } [[TMP2]]
+; CHECK-NEXT: [[SWITCH_GEP:%.*]] = getelementptr inbounds [3 x ptr], ptr @switch.table.switch_to_lookup_gep, i32 0, i8 [[TMP0:%.*]]
+; CHECK-NEXT: [[SWITCH_LOAD:%.*]] = load ptr, ptr [[SWITCH_GEP]], align 8
+; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { ptr, i64 } undef, ptr [[SWITCH_LOAD]], 0
+; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { ptr, i64 } [[TMP1]], i64 1, 1
+; CHECK-NEXT: ret { ptr, i64 } [[TMP2]]
;
start:
switch i8 %0, label %default [
@@ -35,13 +35,13 @@ default:
unreachable
end:
- %.sroa.0.0 = phi i8* [ getelementptr inbounds (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc0, i32 0, i32 0, i32 1), %bb0 ], [ getelementptr inbounds (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc1, i32 0, i32 0, i32 1), %bb1 ], [ getelementptr inbounds (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc2, i32 0, i32 0, i32 1), %bb2 ]
- %1 = insertvalue { i8*, i64 } undef, i8* %.sroa.0.0, 0
- %2 = insertvalue { i8*, i64 } %1, i64 1, 1
- ret { i8*, i64 } %2
+ %.sroa.0.0 = phi ptr [ getelementptr inbounds (<{ [2 x i8] }>, ptr @alloc0, i32 0, i32 0, i32 1), %bb0 ], [ getelementptr inbounds (<{ [2 x i8] }>, ptr @alloc1, i32 0, i32 0, i32 1), %bb1 ], [ getelementptr inbounds (<{ [2 x i8] }>, ptr @alloc2, i32 0, i32 0, i32 1), %bb2 ]
+ %1 = insertvalue { ptr, i64 } undef, ptr %.sroa.0.0, 0
+ %2 = insertvalue { ptr, i64 } %1, i64 1, 1
+ ret { ptr, i64 } %2
}
-define { i8*, i64 } @switch_to_lookup_gep_oob(i8 %0) unnamed_addr {
+define { ptr, i64 } @switch_to_lookup_gep_oob(i8 %0) unnamed_addr {
; CHECK-LABEL: @switch_to_lookup_gep_oob(
; CHECK-NEXT: start:
; CHECK-NEXT: switch i8 [[TMP0:%.*]], label [[DEFAULT:%.*]] [
@@ -56,10 +56,10 @@ define { i8*, i64 } @switch_to_lookup_gep_oob(i8 %0) unnamed_addr {
; CHECK: default:
; CHECK-NEXT: unreachable
; CHECK: end:
-; CHECK-NEXT: [[DOTSROA_0_0:%.*]] = phi i8* [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc1, i32 0, i32 0, i32 4), [[BB1]] ], [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc2, i32 0, i32 0, i32 4), [[BB2]] ], [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc0, i32 0, i32 0, i32 4), [[START:%.*]] ]
-; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i8*, i64 } undef, i8* [[DOTSROA_0_0]], 0
-; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { i8*, i64 } [[TMP1]], i64 1, 1
-; CHECK-NEXT: ret { i8*, i64 } [[TMP2]]
+; CHECK-NEXT: [[DOTSROA_0_0:%.*]] = phi ptr [ getelementptr (<{ [2 x i8] }>, ptr @alloc1, i32 0, i32 0, i32 4), [[BB1]] ], [ getelementptr (<{ [2 x i8] }>, ptr @alloc2, i32 0, i32 0, i32 4), [[BB2]] ], [ getelementptr (<{ [2 x i8] }>, ptr @alloc0, i32 0, i32 0, i32 4), [[START:%.*]] ]
+; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { ptr, i64 } undef, ptr [[DOTSROA_0_0]], 0
+; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { ptr, i64 } [[TMP1]], i64 1, 1
+; CHECK-NEXT: ret { ptr, i64 } [[TMP2]]
;
start:
switch i8 %0, label %default [
@@ -81,13 +81,13 @@ default:
unreachable
end:
- %.sroa.0.0 = phi i8* [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc0, i32 0, i32 0, i32 4), %bb0 ], [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc1, i32 0, i32 0, i32 4), %bb1 ], [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc2, i32 0, i32 0, i32 4), %bb2 ]
- %1 = insertvalue { i8*, i64 } undef, i8* %.sroa.0.0, 0
- %2 = insertvalue { i8*, i64 } %1, i64 1, 1
- ret { i8*, i64 } %2
+ %.sroa.0.0 = phi ptr [ getelementptr (<{ [2 x i8] }>, ptr @alloc0, i32 0, i32 0, i32 4), %bb0 ], [ getelementptr (<{ [2 x i8] }>, ptr @alloc1, i32 0, i32 0, i32 4), %bb1 ], [ getelementptr (<{ [2 x i8] }>, ptr @alloc2, i32 0, i32 0, i32 4), %bb2 ]
+ %1 = insertvalue { ptr, i64 } undef, ptr %.sroa.0.0, 0
+ %2 = insertvalue { ptr, i64 } %1, i64 1, 1
+ ret { ptr, i64 } %2
}
-define { i8*, i64 } @switch_to_lookup_gep_ptrtoint(i8 %0) unnamed_addr {
+define { ptr, i64 } @switch_to_lookup_gep_ptrtoint(i8 %0) unnamed_addr {
; CHECK-LABEL: @switch_to_lookup_gep_ptrtoint(
; CHECK-NEXT: start:
; CHECK-NEXT: switch i8 [[TMP0:%.*]], label [[DEFAULT:%.*]] [
@@ -102,10 +102,10 @@ define { i8*, i64 } @switch_to_lookup_gep_ptrtoint(i8 %0) unnamed_addr {
; CHECK: default:
; CHECK-NEXT: unreachable
; CHECK: end:
-; CHECK-NEXT: [[DOTSROA_0_0:%.*]] = phi i8* [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc1, i32 0, i32 0, i64 ptrtoint (<{ [2 x i8] }>* @alloc0 to i64)), [[BB1]] ], [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc2, i32 0, i32 0, i64 ptrtoint (<{ [2 x i8] }>* @alloc0 to i64)), [[BB2]] ], [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc0, i32 0, i32 0, i64 ptrtoint (<{ [2 x i8] }>* @alloc0 to i64)), [[START:%.*]] ]
-; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i8*, i64 } undef, i8* [[DOTSROA_0_0]], 0
-; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { i8*, i64 } [[TMP1]], i64 1, 1
-; CHECK-NEXT: ret { i8*, i64 } [[TMP2]]
+; CHECK-NEXT: [[DOTSROA_0_0:%.*]] = phi ptr [ getelementptr (<{ [2 x i8] }>, ptr @alloc1, i32 0, i32 0, i64 ptrtoint (ptr @alloc0 to i64)), [[BB1]] ], [ getelementptr (<{ [2 x i8] }>, ptr @alloc2, i32 0, i32 0, i64 ptrtoint (ptr @alloc0 to i64)), [[BB2]] ], [ getelementptr (<{ [2 x i8] }>, ptr @alloc0, i32 0, i32 0, i64 ptrtoint (ptr @alloc0 to i64)), [[START:%.*]] ]
+; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { ptr, i64 } undef, ptr [[DOTSROA_0_0]], 0
+; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { ptr, i64 } [[TMP1]], i64 1, 1
+; CHECK-NEXT: ret { ptr, i64 } [[TMP2]]
;
start:
switch i8 %0, label %default [
@@ -127,8 +127,8 @@ default:
unreachable
end:
- %.sroa.0.0 = phi i8* [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc0, i32 0, i32 0, i64 ptrtoint (<{ [2 x i8] }>* @alloc0 to i64)), %bb0 ], [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc1, i32 0, i32 0, i64 ptrtoint (<{ [2 x i8] }>* @alloc0 to i64)), %bb1 ], [ getelementptr (<{ [2 x i8] }>, <{ [2 x i8] }>* @alloc2, i32 0, i32 0, i64 ptrtoint (<{ [2 x i8] }>* @alloc0 to i64)), %bb2 ]
- %1 = insertvalue { i8*, i64 } undef, i8* %.sroa.0.0, 0
- %2 = insertvalue { i8*, i64 } %1, i64 1, 1
- ret { i8*, i64 } %2
+ %.sroa.0.0 = phi ptr [ getelementptr (<{ [2 x i8] }>, ptr @alloc0, i32 0, i32 0, i64 ptrtoint (ptr @alloc0 to i64)), %bb0 ], [ getelementptr (<{ [2 x i8] }>, ptr @alloc1, i32 0, i32 0, i64 ptrtoint (ptr @alloc0 to i64)), %bb1 ], [ getelementptr (<{ [2 x i8] }>, ptr @alloc2, i32 0, i32 0, i64 ptrtoint (ptr @alloc0 to i64)), %bb2 ]
+ %1 = insertvalue { ptr, i64 } undef, ptr %.sroa.0.0, 0
+ %2 = insertvalue { ptr, i64 } %1, i64 1, 1
+ ret { ptr, i64 } %2
}
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-globals.ll b/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-globals.ll
index 7c72240805584..7c97827d108d0 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-globals.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-globals.ll
@@ -13,12 +13,12 @@ define i1 @zot(i32 %arg) {
; CHECK-NEXT: %0 = icmp ult i32 %arg, 3
; CHECK-NEXT: br i1 %0, label %switch.lookup, label %bb6
; CHECK: switch.lookup:
-; CHECK-NEXT: %switch.gep = getelementptr inbounds [3 x %struct.ham*], [3 x %struct.ham*]* @switch.table.zot, i32 0, i32 %arg
-; CHECK-NEXT: %switch.load = load %struct.ham*, %struct.ham** %switch.gep, align 8
+; CHECK-NEXT: %switch.gep = getelementptr inbounds [3 x ptr], ptr @switch.table.zot, i32 0, i32 %arg
+; CHECK-NEXT: %switch.load = load ptr, ptr %switch.gep, align 8
; CHECK-NEXT: br label %bb6
; CHECK: bb6:
-; CHECK-NEXT: %tmp7 = phi %struct.ham* [ %switch.load, %switch.lookup ], [ null, %bb ]
-; CHECK-NEXT: %tmp8 = icmp eq %struct.ham* %tmp7, bitcast (i32* getelementptr inbounds ([75 x { i32, i32, i32, i8, i8 }], [75 x { i32, i32, i32, i8, i8 }]* @global, i64 1, i64 0, i32 0) to %struct.ham*)
+; CHECK-NEXT: %tmp7 = phi ptr [ %switch.load, %switch.lookup ], [ null, %bb ]
+; CHECK-NEXT: %tmp8 = icmp eq ptr %tmp7, getelementptr inbounds ([75 x { i32, i32, i32, i8, i8 }], ptr @global, i64 1, i64 0, i32 0)
; CHECK-NEXT: ret i1 %tmp8
;
bb:
@@ -37,7 +37,7 @@ bb5: ; preds = %bb3
br label %bb6
bb6: ; preds = %bb5, %bb3, %bb1, %bb
- %tmp7 = phi %struct.ham* [ null, %bb5 ], [ bitcast (i32* getelementptr inbounds ([75 x { i32, i32, i32, i8, i8 }], [75 x { i32, i32, i32, i8, i8 }]* @global, i64 0, i64 6, i32 0) to %struct.ham*), %bb ], [ null, %bb1 ], [ null, %bb3 ]
- %tmp8 = icmp eq %struct.ham* %tmp7, bitcast (i32* getelementptr inbounds ([75 x { i32, i32, i32, i8, i8 }], [75 x { i32, i32, i32, i8, i8 }]* @global, i64 1, i64 0, i32 0) to %struct.ham*)
+ %tmp7 = phi ptr [ null, %bb5 ], [ getelementptr inbounds ([75 x { i32, i32, i32, i8, i8 }], ptr @global, i64 0, i64 6, i32 0), %bb ], [ null, %bb1 ], [ null, %bb3 ]
+ %tmp8 = icmp eq ptr %tmp7, getelementptr inbounds ([75 x { i32, i32, i32, i8, i8 }], ptr @global, i64 1, i64 0, i32 0)
ret i1 %tmp8
}
diff --git a/llvm/test/Transforms/SimplifyCFG/X86/unreachable-blocks.ll b/llvm/test/Transforms/SimplifyCFG/X86/unreachable-blocks.ll
index fb4ed40371f18..8815b1c08fde4 100644
--- a/llvm/test/Transforms/SimplifyCFG/X86/unreachable-blocks.ll
+++ b/llvm/test/Transforms/SimplifyCFG/X86/unreachable-blocks.ll
@@ -10,12 +10,12 @@ entry:
while_block: ; preds = %and_if_cont2, %and_if_cont
%newlen = sub i32 %newlen, 1
- %newptr = getelementptr i8, i8* %newptr, i64 1
+ %newptr = getelementptr i8, ptr %newptr, i64 1
%test = icmp sgt i32 %newlen, 0
br i1 %test, label %and_if1, label %and_if_cont2
and_if1: ; preds = %while_block
- %char = load i8, i8* %newptr
+ %char = load i8, ptr %newptr
%test2 = icmp ule i8 %char, 32
br label %and_if_cont2
diff --git a/llvm/test/Transforms/SimplifyCFG/annotations.ll b/llvm/test/Transforms/SimplifyCFG/annotations.ll
index f94624e12d6f5..9a9aca05629f9 100644
--- a/llvm/test/Transforms/SimplifyCFG/annotations.ll
+++ b/llvm/test/Transforms/SimplifyCFG/annotations.ll
@@ -2,11 +2,11 @@
; The branch in %cont has !annotation metadata. Make sure generated AND
; has !annotation metadata.
-define i32 @test_preserve_and(i8* %a, i8* %b, i8* %c, i8* %d) {
+define i32 @test_preserve_and(ptr %a, ptr %b, ptr %c, ptr %d) {
; CHECK-LABEL: define {{.*}} @test_preserve_and({{.*}}
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[C_1:%.*]] = icmp ult i8* [[A:%.*]], [[B:%.*]], !annotation !0
-; CHECK-NEXT: [[C_2:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]], !annotation !0
+; CHECK-NEXT: [[C_1:%.*]] = icmp ult ptr [[A:%.*]], [[B:%.*]], !annotation !0
+; CHECK-NEXT: [[C_2:%.*]] = icmp uge ptr [[C:%.*]], [[D:%.*]], !annotation !0
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[C_1]], i1 [[C_2]], i1 false, !annotation !0
; CHECK-NEXT: br i1 [[OR_COND]], label [[CONT1:%.*]], label [[TRAP:%.*]], !annotation !0
; CHECK: trap: ; preds = %entry
@@ -17,11 +17,11 @@ define i32 @test_preserve_and(i8* %a, i8* %b, i8* %c, i8* %d) {
; CHECK-NEXT: ret i32 0
;
entry:
- %c.1 = icmp ult i8* %a, %b, !annotation !0
+ %c.1 = icmp ult ptr %a, %b, !annotation !0
br i1 %c.1, label %cont, label %trap, !annotation !0
cont: ; preds = %entry
- %c.2 = icmp uge i8* %c, %d, !annotation !0
+ %c.2 = icmp uge ptr %c, %d, !annotation !0
br i1 %c.2, label %cont1, label %trap, !annotation !0
trap: ; preds = %cont, %entry
@@ -35,11 +35,11 @@ cont1: ; preds = %cont
; The branch in %cont has !annotation metadata. Make sure generated OR
; has !annotation metadata.
-define i32 @test_preserve_or(i8* %a, i8* %b, i8* %c, i8* %d) {
+define i32 @test_preserve_or(ptr %a, ptr %b, ptr %c, ptr %d) {
; CHECK-LABEL: define {{.*}} @test_preserve_or({{.*}}
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[C_1:%.*]] = icmp uge i8* [[A:%.*]], [[B:%.*]], !annotation !0
-; CHECK-NEXT: [[C_2:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]], !annotation !0
+; CHECK-NEXT: [[C_1:%.*]] = icmp uge ptr [[A:%.*]], [[B:%.*]], !annotation !0
+; CHECK-NEXT: [[C_2:%.*]] = icmp uge ptr [[C:%.*]], [[D:%.*]], !annotation !0
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[C_1]], i1 true, i1 [[C_2]], !annotation !0
; CHECK-NEXT: br i1 [[OR_COND]], label [[TRAP:%.*]], label [[CONT1:%.*]], !annotation !0
; CHECK: trap: ; preds = %entry
@@ -50,11 +50,11 @@ define i32 @test_preserve_or(i8* %a, i8* %b, i8* %c, i8* %d) {
; CHECK-NEXT: ret i32 0
;
entry:
- %c.1 = icmp ult i8* %a, %b, !annotation !0
+ %c.1 = icmp ult ptr %a, %b, !annotation !0
br i1 %c.1, label %cont, label %trap, !annotation !0
cont: ; preds = %entry
- %c.2 = icmp uge i8* %c, %d, !annotation !0
+ %c.2 = icmp uge ptr %c, %d, !annotation !0
br i1 %c.2, label %trap, label %cont1, !annotation !0
trap: ; preds = %cont, %entry
@@ -68,13 +68,13 @@ cont1: ; preds = %cont
; The branch in %cont has !annotation metadata. Make sure generated negation
; and OR have !annotation metadata.
-define i32 @test_preserve_or_not(i8* %a, i8* %b, i8* %c, i8* %d) {
+define i32 @test_preserve_or_not(ptr %a, ptr %b, ptr %c, ptr %d) {
; CHECK-LABEL: define {{.*}} @test_preserve_or_not({{.*}}
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[C_1:%.*]] = icmp ult i8* [[A:%.*]], [[B:%.*]], !annotation !0
+; CHECK-NEXT: [[C_1:%.*]] = icmp ult ptr [[A:%.*]], [[B:%.*]], !annotation !0
; CHECK-NEXT: [[C_2:%.*]] = xor i1 [[C_1]], true
; CHECK-NEXT: [[C_2_NOT:%.*]] = xor i1 [[C_2]], true, !annotation !0
-; CHECK-NEXT: [[C_3:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]], !annotation !0
+; CHECK-NEXT: [[C_3:%.*]] = icmp uge ptr [[C:%.*]], [[D:%.*]], !annotation !0
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[C_2_NOT]], i1 true, i1 [[C_3]], !annotation !0
; CHECK-NEXT: br i1 [[OR_COND]], label [[TRAP:%.*]], label [[CONT1:%.*]], !annotation !0
; CHECK: trap: ; preds = %entry
@@ -85,12 +85,12 @@ define i32 @test_preserve_or_not(i8* %a, i8* %b, i8* %c, i8* %d) {
; CHECK-NEXT: ret i32 0
;
entry:
- %c.1 = icmp ult i8* %a, %b, !annotation !0
+ %c.1 = icmp ult ptr %a, %b, !annotation !0
%c.2 = xor i1 %c.1, true
br i1 %c.2, label %cont, label %trap, !annotation !0
cont: ; preds = %entry
- %c.3 = icmp uge i8* %c, %d, !annotation !0
+ %c.3 = icmp uge ptr %c, %d, !annotation !0
br i1 %c.3, label %trap, label %cont1, !annotation !0
trap: ; preds = %cont, %entry
@@ -105,13 +105,13 @@ cont1: ; preds = %cont
; The branch in %cont has no !annotation metadata. Make sure generated negation
; and OR do not have !annotation metadata.
-define i32 @test_or_not_no_annotation(i8* %a, i8* %b, i8* %c, i8* %d) {
+define i32 @test_or_not_no_annotation(ptr %a, ptr %b, ptr %c, ptr %d) {
; CHECK-LABEL: define {{.*}} @test_or_not_no_annotation({{.*}}
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[C_1:%.*]] = icmp ult i8* [[A:%.*]], [[B:%.*]], !annotation !0
+; CHECK-NEXT: [[C_1:%.*]] = icmp ult ptr [[A:%.*]], [[B:%.*]], !annotation !0
; CHECK-NEXT: [[C_2:%.*]] = xor i1 [[C_1]], true
; CHECK-NEXT: [[C_2_NOT:%.*]] = xor i1 [[C_2]], true
-; CHECK-NEXT: [[C_3:%.*]] = icmp uge i8* [[C:%.*]], [[D:%.*]], !annotation !0
+; CHECK-NEXT: [[C_3:%.*]] = icmp uge ptr [[C:%.*]], [[D:%.*]], !annotation !0
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[C_2_NOT]], i1 true, i1 [[C_3]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[TRAP:%.*]], label [[CONT1:%.*]], !annotation !0
; CHECK: trap: ; preds = %entry
@@ -122,12 +122,12 @@ define i32 @test_or_not_no_annotation(i8* %a, i8* %b, i8* %c, i8* %d) {
; CHECK-NEXT: ret i32 0
;
entry:
- %c.1 = icmp ult i8* %a, %b, !annotation !0
+ %c.1 = icmp ult ptr %a, %b, !annotation !0
%c.2 = xor i1 %c.1, true
br i1 %c.2, label %cont, label %trap, !annotation !0
cont: ; preds = %entry
- %c.3 = icmp uge i8* %c, %d, !annotation !0
+ %c.3 = icmp uge ptr %c, %d, !annotation !0
br i1 %c.3, label %trap, label %cont1
trap: ; preds = %cont, %entry
diff --git a/llvm/test/Transforms/SimplifyCFG/attr-convergent.ll b/llvm/test/Transforms/SimplifyCFG/attr-convergent.ll
index 99b232c6908ba..41828b86fa1d8 100644
--- a/llvm/test/Transforms/SimplifyCFG/attr-convergent.ll
+++ b/llvm/test/Transforms/SimplifyCFG/attr-convergent.ll
@@ -5,12 +5,12 @@
;
; CHECK: call void @barrier
; CHECK-NOT: call void @barrier
-define void @check(i1 %cond, i32* %out) {
+define void @check(i1 %cond, ptr %out) {
entry:
br i1 %cond, label %if.then, label %if.end
if.then:
- store i32 5, i32* %out
+ store i32 5, ptr %out
br label %if.end
if.end:
diff --git a/llvm/test/Transforms/SimplifyCFG/attr-noduplicate.ll b/llvm/test/Transforms/SimplifyCFG/attr-noduplicate.ll
index 037b0cf84879b..46fc914ee20c1 100644
--- a/llvm/test/Transforms/SimplifyCFG/attr-noduplicate.ll
+++ b/llvm/test/Transforms/SimplifyCFG/attr-noduplicate.ll
@@ -6,15 +6,15 @@
; CHECK-LABEL: @noduplicate
; CHECK: call void @barrier
; CHECK-NOT: call void @barrier
-define void @noduplicate(i32 %cond, i32* %out) {
+define void @noduplicate(i32 %cond, ptr %out) {
entry:
- %out1 = getelementptr i32, i32* %out, i32 1
- %out2 = getelementptr i32, i32* %out, i32 2
+ %out1 = getelementptr i32, ptr %out, i32 1
+ %out2 = getelementptr i32, ptr %out, i32 2
%cmp = icmp eq i32 %cond, 0
br i1 %cmp, label %if.then, label %if.end
if.then:
- store i32 5, i32* %out
+ store i32 5, ptr %out
br label %if.end
if.end:
@@ -22,12 +22,12 @@ if.end:
br i1 %cmp, label %cond.end, label %cond.false
cond.false:
- store i32 5, i32* %out1
+ store i32 5, ptr %out1
br label %cond.end
cond.end:
%value = phi i32 [ 1, %cond.false ], [ 0, %if.end ]
- store i32 %value, i32* %out2
+ store i32 %value, ptr %out2
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/basictest.ll b/llvm/test/Transforms/SimplifyCFG/basictest.ll
index ebf3287e533ce..9db5c08b48d50 100644
--- a/llvm/test/Transforms/SimplifyCFG/basictest.ll
+++ b/llvm/test/Transforms/SimplifyCFG/basictest.ll
@@ -106,9 +106,9 @@ define i8 @test6f() {
; CHECK-LABEL: @test6f(
; CHECK-NEXT: bb0:
; CHECK-NEXT: [[R:%.*]] = alloca i8, align 1
-; CHECK-NEXT: [[TMP:%.*]] = call i8 @test6g(i8* [[R]])
+; CHECK-NEXT: [[TMP:%.*]] = call i8 @test6g(ptr [[R]])
; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i8 [[TMP]], 0
-; CHECK-NEXT: [[TMP3:%.*]] = load i8, i8* [[R]], align 1
+; CHECK-NEXT: [[TMP3:%.*]] = load i8, ptr [[R]], align 1
; CHECK-NEXT: [[TMP4:%.*]] = icmp eq i8 [[TMP3]], 1
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[TMP1]], i1 true, i1 [[TMP4]]
; CHECK-NEXT: [[TMP6:%.*]] = select i1 [[OR_COND]], i8 0, i8 1
@@ -117,11 +117,11 @@ define i8 @test6f() {
bb0:
%r = alloca i8, align 1
- %tmp = call i8 @test6g(i8* %r)
+ %tmp = call i8 @test6g(ptr %r)
%tmp1 = icmp eq i8 %tmp, 0
br i1 %tmp1, label %bb2, label %bb1
bb1:
- %tmp3 = load i8, i8* %r, align 1, !range !2, !tbaa !10, !dbg !5
+ %tmp3 = load i8, ptr %r, align 1, !range !2, !tbaa !10, !dbg !5
%tmp4 = icmp eq i8 %tmp3, 1
br i1 %tmp4, label %bb2, label %bb3
bb2:
@@ -130,7 +130,7 @@ bb3:
%tmp6 = phi i8 [ 0, %bb2 ], [ 1, %bb1 ]
ret i8 %tmp6
}
-declare i8 @test6g(i8*)
+declare i8 @test6g(ptr)
!llvm.dbg.cu = !{!3}
!llvm.module.flags = !{!8, !9}
diff --git a/llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll b/llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll
index 4d9ccbd1c44bf..451812c453a8d 100644
--- a/llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll
+++ b/llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll
@@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S < %s | FileCheck %s
-%0 = type { i32*, i32* }
+%0 = type { ptr, ptr }
@0 = external hidden constant [5 x %0], align 4
@@ -16,8 +16,8 @@ define void @foo(i32) nounwind ssp !dbg !0 {
; CHECK-NEXT: [[TMP3:%.*]] = shl i32 1, [[TMP0]]
; CHECK-NEXT: [[TMP4:%.*]] = and i32 [[TMP3]], 31
; CHECK-NEXT: [[TMP5:%.*]] = icmp eq i32 [[TMP4]], 0
-; CHECK-NEXT: [[TMP6:%.*]] = getelementptr inbounds [5 x %0], [5 x %0]* @[[GLOB0:[0-9]+]], i32 0, i32 [[TMP0]]
-; CHECK-NEXT: [[TMP7:%.*]] = icmp eq %0* [[TMP6]], null
+; CHECK-NEXT: [[TMP6:%.*]] = getelementptr inbounds [5 x %0], ptr @[[GLOB0:[0-9]+]], i32 0, i32 [[TMP0]]
+; CHECK-NEXT: [[TMP7:%.*]] = icmp eq ptr [[TMP6]], null
; CHECK-NEXT: [[OR_COND2:%.*]] = select i1 [[TMP5]], i1 true, i1 [[TMP7]]
; CHECK-NEXT: br i1 [[OR_COND2]], label [[COMMON_RET]], label [[BB4:%.*]]
; CHECK: common.ret:
@@ -42,9 +42,9 @@ BB2: ; preds = %BB1
BB3: ; preds = %BB2
- %6 = getelementptr inbounds [5 x %0], [5 x %0]* @0, i32 0, i32 %0, !dbg !6
- call void @llvm.dbg.value(metadata %0* %6, metadata !7, metadata !{}), !dbg !12
- %7 = icmp eq %0* %6, null, !dbg !13
+ %6 = getelementptr inbounds [5 x %0], ptr @0, i32 0, i32 %0, !dbg !6
+ call void @llvm.dbg.value(metadata ptr %6, metadata !7, metadata !{}), !dbg !12
+ %7 = icmp eq ptr %6, null, !dbg !13
br i1 %7, label %BB5, label %BB4, !dbg !13
BB4: ; preds = %BB3
diff --git a/llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll b/llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll
index be8d5679f3799..5012b428bc8a8 100644
--- a/llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll
+++ b/llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll
@@ -5,7 +5,7 @@
; RUN: opt %s -passes='simplifycfg<bonus-inst-threshold=2>' -S | FileCheck %s --check-prefix=AGGRESSIVE
; RUN: opt %s -passes='simplifycfg<bonus-inst-threshold=4>' -S | FileCheck %s --check-prefix=WAYAGGRESSIVE
-define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) {
+define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input) {
; NORMAL-LABEL: @foo(
; AGGRESSIVE-LABEL: @foo(
entry:
@@ -23,7 +23,7 @@ lor.lhs.false:
; AGGRESSIVE-NOT: br i1
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
@@ -35,7 +35,7 @@ declare void @distinct_a();
declare void @distinct_b();
;; Like foo, but have to duplicate into multiple predecessors
-define i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) {
+define i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d, ptr %input) {
; NORMAL-LABEL: @bar(
; AGGRESSIVE-LABEL: @bar(
entry:
@@ -74,7 +74,7 @@ lor.lhs.false:
; WAYAGGRESSIVE-NOT: br i1
cond.false:
- %0 = load i32, i32* %input, align 4
+ %0 = load i32, ptr %input, align 4
br label %cond.end
cond.end:
diff --git a/llvm/test/Transforms/SimplifyCFG/branch-fold.ll b/llvm/test/Transforms/SimplifyCFG/branch-fold.ll
index 1555fa9f41149..b8b5aaa73cf50 100644
--- a/llvm/test/Transforms/SimplifyCFG/branch-fold.ll
+++ b/llvm/test/Transforms/SimplifyCFG/branch-fold.ll
@@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
-define void @test(i32* %P, i32* %Q, i1 %A, i1 %B) {
+define void @test(ptr %P, ptr %Q, i1 %A, i1 %B) {
; CHECK-LABEL: @test(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[A_NOT:%.*]] = xor i1 [[A:%.*]], true
@@ -10,7 +10,7 @@ define void @test(i32* %P, i32* %Q, i1 %A, i1 %B) {
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: b:
-; CHECK-NEXT: store i32 123, i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 123, ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[COMMON_RET]]
;
@@ -19,7 +19,7 @@ entry:
a:
br i1 %B, label %b, label %c
b:
- store i32 123, i32* %P
+ store i32 123, ptr %P
ret void
c:
ret void
diff --git a/llvm/test/Transforms/SimplifyCFG/branch-phi-thread.ll b/llvm/test/Transforms/SimplifyCFG/branch-phi-thread.ll
index c94da92b987bb..0afec05ecbd6a 100644
--- a/llvm/test/Transforms/SimplifyCFG/branch-phi-thread.ll
+++ b/llvm/test/Transforms/SimplifyCFG/branch-phi-thread.ll
@@ -72,7 +72,7 @@ F: ; preds = %A, %E
ret i32 123
}
-define i32 @test3(i32 %X, i1 %D, i32* %AP, i32* %BP) {
+define i32 @test3(i32 %X, i1 %D, ptr %AP, ptr %BP) {
; CHECK-LABEL: @test3(
; CHECK-NEXT: E:
; CHECK-NEXT: [[C:%.*]] = icmp eq i32 [[X:%.*]], 0
@@ -82,8 +82,8 @@ define i32 @test3(i32 %X, i1 %D, i32* %AP, i32* %BP) {
; CHECK-NEXT: ret i32 [[COMMON_RET_OP]]
; CHECK: B.critedge:
; CHECK-NEXT: call void @f3()
-; CHECK-NEXT: [[XX_C:%.*]] = load i32, i32* [[AP:%.*]], align 4
-; CHECK-NEXT: store i32 [[XX_C]], i32* [[BP:%.*]], align 4
+; CHECK-NEXT: [[XX_C:%.*]] = load i32, ptr [[AP:%.*]], align 4
+; CHECK-NEXT: store i32 [[XX_C]], ptr [[BP:%.*]], align 4
; CHECK-NEXT: call void @f2()
; CHECK-NEXT: br label [[COMMON_RET:%.*]]
; CHECK: F:
@@ -95,8 +95,8 @@ E:
br i1 %C, label %T, label %F
T: ; preds = %A, %E
call void @f3( )
- %XX = load i32, i32* %AP ; <i32> [#uses=1]
- store i32 %XX, i32* %BP
+ %XX = load i32, ptr %AP ; <i32> [#uses=1]
+ store i32 %XX, ptr %BP
br i1 %C, label %B, label %A
A: ; preds = %T
call void @f1( )
diff --git a/llvm/test/Transforms/SimplifyCFG/cleanup-phis.ll b/llvm/test/Transforms/SimplifyCFG/cleanup-phis.ll
index 8be4e36221904..d40c9502967fb 100644
--- a/llvm/test/Transforms/SimplifyCFG/cleanup-phis.ll
+++ b/llvm/test/Transforms/SimplifyCFG/cleanup-phis.ll
@@ -6,7 +6,7 @@ target triple = "wasm32-unknown-unknown"
; This is a regression test for a bug in which we used phis() without
; make_early_inc_range() in a for loop while deleting phi nodes.
-define void @cleanup_phis() personality i8* bitcast (i32 (...)* @__gxx_wasm_personality_v0 to i8*) {
+define void @cleanup_phis() personality ptr @__gxx_wasm_personality_v0 {
bb0:
invoke void @foo()
to label %bb1 unwind label %ehcleanup
@@ -33,7 +33,7 @@ catchswitch: ; preds = %ehcleanup
%1 = catchswitch within none [label %catch] unwind to caller
catch: ; preds = %catchswitch
- %2 = catchpad within %1 [i8* null]
+ %2 = catchpad within %1 [ptr null]
call void @bar(i32 %phi0, i32 %phi1)
unreachable
}
diff --git a/llvm/test/Transforms/SimplifyCFG/common-code-hoisting.ll b/llvm/test/Transforms/SimplifyCFG/common-code-hoisting.ll
index b329495cd43e5..a4303995d2633 100644
--- a/llvm/test/Transforms/SimplifyCFG/common-code-hoisting.ll
+++ b/llvm/test/Transforms/SimplifyCFG/common-code-hoisting.ll
@@ -39,8 +39,8 @@ declare void @f0()
declare void @f1()
declare void @f2()
-declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture)
-declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture)
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture)
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture)
define void @_Z4loopi(i1 %cmp) {
; HOIST-LABEL: @_Z4loopi(
diff --git a/llvm/test/Transforms/SimplifyCFG/constantexprs.ll b/llvm/test/Transforms/SimplifyCFG/constantexprs.ll
index 4bc7b37c29d09..545aa3fb6f37f 100644
--- a/llvm/test/Transforms/SimplifyCFG/constantexprs.ll
+++ b/llvm/test/Transforms/SimplifyCFG/constantexprs.ll
@@ -7,18 +7,18 @@
%struct.j = type { %struct.c }
%struct.c = type { %struct.a }
%struct.a = type { i8 }
-%struct.e = type { %struct.a* }
+%struct.e = type { ptr }
$_ZN1eC2EPK1a = comdat any
@_ZN12_GLOBAL__N_12anE = internal global %"struct.(anonymous namespace)::aj" zeroinitializer, align 1
-declare dso_local i32 @_Zeq1eS_(%struct.a*, %struct.a*) local_unnamed_addr #2
+declare dso_local i32 @_Zeq1eS_(ptr, ptr) local_unnamed_addr #2
-define internal fastcc %struct.a* @_ZNK1jIiN12_GLOBAL__N_12ajEE2aeERKi() unnamed_addr #0 align 2 {
+define internal fastcc ptr @_ZNK1jIiN12_GLOBAL__N_12ajEE2aeERKi() unnamed_addr #0 align 2 {
; CHECK-LABEL: @_ZNK1jIiN12_GLOBAL__N_12ajEE2aeERKi
entry:
- %call = call i32 @_Zeq1eS_(%struct.a* null, %struct.a* null)
+ %call = call i32 @_Zeq1eS_(ptr null, ptr null)
%tobool = icmp eq i32 %call, 0
br i1 %tobool, label %cond.false, label %cond.end
@@ -26,6 +26,6 @@ cond.false: ; preds = %entry
br label %cond.end
cond.end: ; preds = %entry, %cond.false
- %retval.sroa.0.0 = phi %struct.a* [ null, %cond.false ], [ extractelement (<1 x %struct.a*> inttoptr (<1 x i64> bitcast (i64 ptrtoint (%"struct.(anonymous namespace)::aj"* @_ZN12_GLOBAL__N_12anE to i64) to <1 x i64>) to <1 x %struct.a*>), i64 0), %entry ]
- ret %struct.a* %retval.sroa.0.0
+ %retval.sroa.0.0 = phi ptr [ null, %cond.false ], [ extractelement (<1 x ptr> inttoptr (<1 x i64> bitcast (i64 ptrtoint (ptr @_ZN12_GLOBAL__N_12anE to i64) to <1 x i64>) to <1 x ptr>), i64 0), %entry ]
+ ret ptr %retval.sroa.0.0
}
diff --git a/llvm/test/Transforms/SimplifyCFG/dbginfo.ll b/llvm/test/Transforms/SimplifyCFG/dbginfo.ll
index 97ac17cf30402..cce72977d6605 100644
--- a/llvm/test/Transforms/SimplifyCFG/dbginfo.ll
+++ b/llvm/test/Transforms/SimplifyCFG/dbginfo.ll
@@ -2,82 +2,82 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
%llvm.dbg.anchor.type = type { i32, i32 }
- %llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
- %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8*, i1, i1, i8* }
- %llvm.dbg.composite.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }*, { }* }
- %llvm.dbg.derivedtype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, { }* }
- %llvm.dbg.global_variable.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1, { }* }
- %llvm.dbg.subprogram.type = type { i32, { }*, { }*, i8*, i8*, i8*, { }*, i32, { }*, i1, i1 }
+ %llvm.dbg.basictype.type = type { i32, ptr, ptr, ptr, i32, i64, i64, i64, i32, i32 }
+ %llvm.dbg.compile_unit.type = type { i32, ptr, i32, ptr, ptr, ptr, i1, i1, ptr }
+ %llvm.dbg.composite.type = type { i32, ptr, ptr, ptr, i32, i64, i64, i64, i32, ptr, ptr }
+ %llvm.dbg.derivedtype.type = type { i32, ptr, ptr, ptr, i32, i64, i64, i64, i32, ptr }
+ %llvm.dbg.global_variable.type = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i1, i1, ptr }
+ %llvm.dbg.subprogram.type = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i1, i1 }
%llvm.dbg.subrange.type = type { i32, i64, i64 }
%struct.Group = type { %struct.Scene, %struct.Sphere, %"struct.std::list<Scene*,std::allocator<Scene*> >" }
%struct.Ray = type { %struct.Vec, %struct.Vec }
- %struct.Scene = type { i32 (...)** }
+ %struct.Scene = type { ptr }
%struct.Sphere = type { %struct.Scene, %struct.Vec, double }
%struct.Vec = type { double, double, double }
%struct.__class_type_info_pseudo = type { %struct.__type_info_pseudo }
%struct.__false_type = type <{ i8 }>
%"struct.__gnu_cxx::new_allocator<Scene*>" = type <{ i8 }>
%"struct.__gnu_cxx::new_allocator<std::_List_node<Scene*> >" = type <{ i8 }>
- %struct.__si_class_type_info_pseudo = type { %struct.__type_info_pseudo, %"struct.std::type_info"* }
- %struct.__type_info_pseudo = type { i8*, i8* }
+ %struct.__si_class_type_info_pseudo = type { %struct.__type_info_pseudo, ptr }
+ %struct.__type_info_pseudo = type { ptr, ptr }
%"struct.std::Hit" = type { double, %struct.Vec }
%"struct.std::_List_base<Scene*,std::allocator<Scene*> >" = type { %"struct.std::_List_base<Scene*,std::allocator<Scene*> >::_List_impl" }
%"struct.std::_List_base<Scene*,std::allocator<Scene*> >::_List_impl" = type { %"struct.std::_List_node_base" }
- %"struct.std::_List_const_iterator<Scene*>" = type { %"struct.std::_List_node_base"* }
- %"struct.std::_List_iterator<Scene*>" = type { %"struct.std::_List_node_base"* }
- %"struct.std::_List_node<Scene*>" = type { %"struct.std::_List_node_base", %struct.Scene* }
- %"struct.std::_List_node_base" = type { %"struct.std::_List_node_base"*, %"struct.std::_List_node_base"* }
+ %"struct.std::_List_const_iterator<Scene*>" = type { ptr }
+ %"struct.std::_List_iterator<Scene*>" = type { ptr }
+ %"struct.std::_List_node<Scene*>" = type { %"struct.std::_List_node_base", ptr }
+ %"struct.std::_List_node_base" = type { ptr, ptr }
%"struct.std::allocator<Scene*>" = type <{ i8 }>
%"struct.std::allocator<std::_List_node<Scene*> >" = type <{ i8 }>
- %"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream<char,std::char_traits<char> >"*, i8, i8, %"struct.std::basic_streambuf<char,std::char_traits<char> >"*, %"struct.std::ctype<char>"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"*, %"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >"* }
- %"struct.std::basic_ostream<char,std::char_traits<char> >" = type { i32 (...)**, %"struct.std::basic_ios<char,std::char_traits<char> >" }
- %"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
- %"struct.std::ctype<char>" = type { %"struct.std::locale::facet", i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }
- %"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"struct.std::locale" }
+ %"struct.std::basic_ios<char,std::char_traits<char> >" = type { %"struct.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
+ %"struct.std::basic_ostream<char,std::char_traits<char> >" = type { ptr, %"struct.std::basic_ios<char,std::char_traits<char> >" }
+ %"struct.std::basic_streambuf<char,std::char_traits<char> >" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"struct.std::locale" }
+ %"struct.std::ctype<char>" = type { %"struct.std::locale::facet", ptr, i8, ptr, ptr, ptr, i8, [256 x i8], [256 x i8], i8 }
+ %"struct.std::ios_base" = type { ptr, i32, i32, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"struct.std::locale" }
%"struct.std::ios_base::Init" = type <{ i8 }>
- %"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
- %"struct.std::ios_base::_Words" = type { i8*, i32 }
+ %"struct.std::ios_base::_Callback_list" = type { ptr, ptr, i32, i32 }
+ %"struct.std::ios_base::_Words" = type { ptr, i32 }
%"struct.std::list<Scene*,std::allocator<Scene*> >" = type { %"struct.std::_List_base<Scene*,std::allocator<Scene*> >" }
- %"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
- %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
- %"struct.std::locale::facet" = type { i32 (...)**, i32 }
+ %"struct.std::locale" = type { ptr }
+ %"struct.std::locale::_Impl" = type { i32, ptr, i32, ptr, ptr }
+ %"struct.std::locale::facet" = type { ptr, i32 }
%"struct.std::num_get<char,std::istreambuf_iterator<char, std::char_traits<char> > >" = type { %"struct.std::locale::facet" }
%"struct.std::num_put<char,std::ostreambuf_iterator<char, std::char_traits<char> > >" = type { %"struct.std::locale::facet" }
%"struct.std::numeric_limits<double>" = type <{ i8 }>
- %"struct.std::type_info" = type { i32 (...)**, i8* }
- at llvm.dbg.subprogram947 = external constant %llvm.dbg.subprogram.type ; <%llvm.dbg.subprogram.type*> [#uses=1]
+ %"struct.std::type_info" = type { ptr, ptr }
+ at llvm.dbg.subprogram947 = external constant %llvm.dbg.subprogram.type ; <ptr> [#uses=1]
-declare void @llvm.dbg.func.start({ }*) nounwind
+declare void @llvm.dbg.func.start(ptr) nounwind
-declare void @llvm.dbg.region.end({ }*) nounwind
+declare void @llvm.dbg.region.end(ptr) nounwind
-declare void @_ZN9__gnu_cxx13new_allocatorIP5SceneED2Ev(%struct.__false_type*) nounwind
+declare void @_ZN9__gnu_cxx13new_allocatorIP5SceneED2Ev(ptr) nounwind
-define void @_ZNSaIP5SceneED1Ev(%struct.__false_type* %this) nounwind {
+define void @_ZNSaIP5SceneED1Ev(ptr %this) nounwind {
; CHECK-LABEL: @_ZNSaIP5SceneED1Ev(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[THIS_ADDR:%.*]] = alloca %struct.__false_type*, align 8
+; CHECK-NEXT: [[THIS_ADDR:%.*]] = alloca ptr, align 8
; CHECK-NEXT: %"alloca point" = bitcast i32 0 to i32
-; CHECK-NEXT: call void @llvm.dbg.func.start({}* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram947 to {}*))
-; CHECK-NEXT: store %struct.__false_type* [[THIS:%.*]], %struct.__false_type** [[THIS_ADDR]], align 8
-; CHECK-NEXT: [[TMP0:%.*]] = load %struct.__false_type*, %struct.__false_type** [[THIS_ADDR]], align 4
-; CHECK-NEXT: call void @_ZN9__gnu_cxx13new_allocatorIP5SceneED2Ev(%struct.__false_type* [[TMP0]]) #[[ATTR0:[0-9]+]]
-; CHECK-NEXT: call void @llvm.dbg.region.end({}* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram947 to {}*))
+; CHECK-NEXT: call void @llvm.dbg.func.start(ptr @llvm.dbg.subprogram947)
+; CHECK-NEXT: store ptr [[THIS:%.*]], ptr [[THIS_ADDR]], align 8
+; CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[THIS_ADDR]], align 4
+; CHECK-NEXT: call void @_ZN9__gnu_cxx13new_allocatorIP5SceneED2Ev(ptr [[TMP0]]) #[[ATTR0:[0-9]+]]
+; CHECK-NEXT: call void @llvm.dbg.region.end(ptr @llvm.dbg.subprogram947)
; CHECK-NEXT: ret void
;
entry:
- %this_addr = alloca %struct.__false_type* ; <%struct.__false_type**> [#uses=2]
+ %this_addr = alloca ptr ; <ptr> [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- call void @llvm.dbg.func.start({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram947 to { }*))
- store %struct.__false_type* %this, %struct.__false_type** %this_addr
- %0 = load %struct.__false_type*, %struct.__false_type** %this_addr, align 4 ; <%struct.__false_type*> [#uses=1]
- call void @_ZN9__gnu_cxx13new_allocatorIP5SceneED2Ev(%struct.__false_type* %0) nounwind
+ call void @llvm.dbg.func.start(ptr @llvm.dbg.subprogram947)
+ store ptr %this, ptr %this_addr
+ %0 = load ptr, ptr %this_addr, align 4 ; <ptr> [#uses=1]
+ call void @_ZN9__gnu_cxx13new_allocatorIP5SceneED2Ev(ptr %0) nounwind
br label %bb
bb: ; preds = %entry
br label %return
return: ; preds = %bb
- call void @llvm.dbg.region.end({ }* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram947 to { }*))
+ call void @llvm.dbg.region.end(ptr @llvm.dbg.subprogram947)
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/dce-cond-after-folding-terminator.ll b/llvm/test/Transforms/SimplifyCFG/dce-cond-after-folding-terminator.ll
index 4527dbf0f4df5..191db310fde50 100644
--- a/llvm/test/Transforms/SimplifyCFG/dce-cond-after-folding-terminator.ll
+++ b/llvm/test/Transforms/SimplifyCFG/dce-cond-after-folding-terminator.ll
@@ -39,8 +39,8 @@ entry:
; CHECK-NEXT: entry:
; CHECK-NEXT: ret void
- %label = bitcast i8* blockaddress(@test_indirectbr, %L1) to i8*
- indirectbr i8* %label, [label %L1, label %L2]
+ %label = bitcast ptr blockaddress(@test_indirectbr, %L1) to ptr
+ indirectbr ptr %label, [label %L1, label %L2]
L1: ; preds = %entry
ret void
diff --git a/llvm/test/Transforms/SimplifyCFG/debug-info-thread-phi.ll b/llvm/test/Transforms/SimplifyCFG/debug-info-thread-phi.ll
index 12c803a024884..b32ca9bf6aef2 100644
--- a/llvm/test/Transforms/SimplifyCFG/debug-info-thread-phi.ll
+++ b/llvm/test/Transforms/SimplifyCFG/debug-info-thread-phi.ll
@@ -8,8 +8,8 @@ define void @bar(i32 %aa) {
entry:
%aa.addr = alloca i32, align 4
%bb = alloca i32, align 4
- store i32 %aa, i32* %aa.addr, align 4
- store i32 0, i32* %bb, align 4
+ store i32 %aa, ptr %aa.addr, align 4
+ store i32 0, ptr %bb, align 4
%tobool = icmp ne i32 %aa, 0
br i1 %tobool, label %if.then, label %if.end
@@ -18,7 +18,7 @@ if.then: ; preds = %entry
br label %if.end
if.end: ; preds = %if.then, %entry
- store i32 1, i32* %bb, align 4
+ store i32 1, ptr %bb, align 4
br i1 %tobool, label %if.then.1, label %if.end.1 ; "line 10" to -debugify
if.then.1: ; preds = %if.end
@@ -26,7 +26,7 @@ if.then.1: ; preds = %if.end
br label %if.end.1
if.end.1: ; preds = %if.then.1, %if.end
- store i32 2, i32* %bb, align 4
+ store i32 2, ptr %bb, align 4
br label %for.end
for.end: ; preds = %if.end.1
diff --git a/llvm/test/Transforms/SimplifyCFG/duplicate-landingpad.ll b/llvm/test/Transforms/SimplifyCFG/duplicate-landingpad.ll
index 6e14dda250834..699be1c0962ce 100644
--- a/llvm/test/Transforms/SimplifyCFG/duplicate-landingpad.ll
+++ b/llvm/test/Transforms/SimplifyCFG/duplicate-landingpad.ll
@@ -6,7 +6,7 @@ declare i32 @__gxx_personality_v0(...)
declare void @fn()
-define void @test1() personality i32 (...)* @__gxx_personality_v0 {
+define void @test1() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @test1(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @fn()
@@ -17,7 +17,7 @@ define void @test1() personality i32 (...)* @__gxx_personality_v0 {
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: lpad2:
-; CHECK-NEXT: [[EXN2:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EXN2:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @fn()
; CHECK-NEXT: br label [[COMMON_RET]]
@@ -34,12 +34,12 @@ invoke.cont:
ret void
lpad1:
- %exn = landingpad {i8*, i32}
+ %exn = landingpad {ptr, i32}
cleanup
br label %shared_resume
lpad2:
- %exn2 = landingpad {i8*, i32}
+ %exn2 = landingpad {ptr, i32}
cleanup
br label %shared_resume
@@ -49,7 +49,7 @@ shared_resume:
}
; Don't trigger if blocks aren't the same/empty
-define void @neg1() personality i32 (...)* @__gxx_personality_v0 {
+define void @neg1() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @neg1(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @fn()
@@ -60,12 +60,12 @@ define void @neg1() personality i32 (...)* @__gxx_personality_v0 {
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: lpad1:
-; CHECK-NEXT: [[EXN:%.*]] = landingpad { i8*, i32 }
-; CHECK-NEXT: filter [0 x i8*] zeroinitializer
+; CHECK-NEXT: [[EXN:%.*]] = landingpad { ptr, i32 }
+; CHECK-NEXT: filter [0 x ptr] zeroinitializer
; CHECK-NEXT: call void @fn()
; CHECK-NEXT: br label [[SHARED_RESUME:%.*]]
; CHECK: lpad2:
-; CHECK-NEXT: [[EXN2:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EXN2:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: br label [[SHARED_RESUME]]
; CHECK: shared_resume:
@@ -84,13 +84,13 @@ invoke.cont:
ret void
lpad1:
- %exn = landingpad {i8*, i32}
- filter [0 x i8*] zeroinitializer
+ %exn = landingpad {ptr, i32}
+ filter [0 x ptr] zeroinitializer
call void @fn()
br label %shared_resume
lpad2:
- %exn2 = landingpad {i8*, i32}
+ %exn2 = landingpad {ptr, i32}
cleanup
br label %shared_resume
@@ -100,7 +100,7 @@ shared_resume:
}
; Should not trigger when the landing pads are not the exact same
-define void @neg2() personality i32 (...)* @__gxx_personality_v0 {
+define void @neg2() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @neg2(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @fn()
@@ -111,11 +111,11 @@ define void @neg2() personality i32 (...)* @__gxx_personality_v0 {
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: lpad1:
-; CHECK-NEXT: [[EXN:%.*]] = landingpad { i8*, i32 }
-; CHECK-NEXT: filter [0 x i8*] zeroinitializer
+; CHECK-NEXT: [[EXN:%.*]] = landingpad { ptr, i32 }
+; CHECK-NEXT: filter [0 x ptr] zeroinitializer
; CHECK-NEXT: br label [[SHARED_RESUME:%.*]]
; CHECK: lpad2:
-; CHECK-NEXT: [[EXN2:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EXN2:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: br label [[SHARED_RESUME]]
; CHECK: shared_resume:
@@ -134,12 +134,12 @@ invoke.cont:
ret void
lpad1:
- %exn = landingpad {i8*, i32}
- filter [0 x i8*] zeroinitializer
+ %exn = landingpad {ptr, i32}
+ filter [0 x ptr] zeroinitializer
br label %shared_resume
lpad2:
- %exn2 = landingpad {i8*, i32}
+ %exn2 = landingpad {ptr, i32}
cleanup
br label %shared_resume
diff --git a/llvm/test/Transforms/SimplifyCFG/empty-catchpad.ll b/llvm/test/Transforms/SimplifyCFG/empty-catchpad.ll
index f549928533701..292c6c9822296 100644
--- a/llvm/test/Transforms/SimplifyCFG/empty-catchpad.ll
+++ b/llvm/test/Transforms/SimplifyCFG/empty-catchpad.ll
@@ -5,7 +5,7 @@ declare void @f()
declare void @llvm.foo(i32) nounwind
declare void @ProcessCLRException()
-define void @test1() personality void ()* @ProcessCLRException {
+define void @test1() personality ptr @ProcessCLRException {
; CHECK-LABEL: @test1(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @f()
@@ -37,7 +37,7 @@ exit:
; Remove unreachble catch2, leave catch1 as-is
; Remove both catchpads and the catchswitch from exn.dispatch
-define void @test2() personality void ()* @ProcessCLRException {
+define void @test2() personality ptr @ProcessCLRException {
; CHECK-LABEL: @test2(
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @f()
@@ -92,7 +92,7 @@ exit:
; Same as @test2, but exn.dispatch catchswitch has an unwind dest that
; preds need to be reidrected to
-define void @test3() personality void ()* @ProcessCLRException {
+define void @test3() personality ptr @ProcessCLRException {
; CHECK-LABEL: @test3(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @f()
diff --git a/llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest-free-cost.ll b/llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest-free-cost.ll
index 27df5ec445828..4b067459e1aa9 100644
--- a/llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest-free-cost.ll
+++ b/llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest-free-cost.ll
@@ -1,16 +1,16 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -S -passes=simplifycfg -bonus-inst-threshold=1 | FileCheck %s
-declare i8* @llvm.strip.invariant.group.p0i8(i8*)
+declare ptr @llvm.strip.invariant.group.p0(ptr)
declare void @g1()
declare void @g2()
-define void @f(i8* %a, i8* %b, i1 %c, i1 %d, i1 %e) {
+define void @f(ptr %a, ptr %b, i1 %c, i1 %d, i1 %e) {
; CHECK-LABEL: @f(
-; CHECK-NEXT: [[A1:%.*]] = call i8* @llvm.strip.invariant.group.p0i8(i8* [[A:%.*]])
-; CHECK-NEXT: [[B1:%.*]] = call i8* @llvm.strip.invariant.group.p0i8(i8* [[B:%.*]])
-; CHECK-NEXT: [[I:%.*]] = icmp eq i8* [[A1]], [[B1]]
+; CHECK-NEXT: [[A1:%.*]] = call ptr @llvm.strip.invariant.group.p0(ptr [[A:%.*]])
+; CHECK-NEXT: [[B1:%.*]] = call ptr @llvm.strip.invariant.group.p0(ptr [[B:%.*]])
+; CHECK-NEXT: [[I:%.*]] = icmp eq ptr [[A1]], [[B1]]
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[C:%.*]], i1 [[I]], i1 false
; CHECK-NEXT: br i1 [[OR_COND]], label [[L2:%.*]], label [[L3:%.*]]
; CHECK: l2:
@@ -24,9 +24,9 @@ define void @f(i8* %a, i8* %b, i1 %c, i1 %d, i1 %e) {
;
br i1 %c, label %l1, label %l3
l1:
- %a1 = call i8* @llvm.strip.invariant.group.p0i8(i8* %a)
- %b1 = call i8* @llvm.strip.invariant.group.p0i8(i8* %b)
- %i = icmp eq i8* %a1, %b1
+ %a1 = call ptr @llvm.strip.invariant.group.p0(ptr %a)
+ %b1 = call ptr @llvm.strip.invariant.group.p0(ptr %b)
+ %i = icmp eq ptr %a1, %b1
br i1 %i, label %l2, label %l3
l2:
call void @g1()
diff --git a/llvm/test/Transforms/SimplifyCFG/gepcost.ll b/llvm/test/Transforms/SimplifyCFG/gepcost.ll
index accb87b776911..a4497ae71881e 100644
--- a/llvm/test/Transforms/SimplifyCFG/gepcost.ll
+++ b/llvm/test/Transforms/SimplifyCFG/gepcost.ll
@@ -11,7 +11,7 @@ define void @f(i1 %c) {
; CHECK-NEXT: entr:
; CHECK-NEXT: br i1 %c, label [[NEXT:%.*]], label [[EXIT:%.*]]
; CHECK: next:
-; CHECK-NEXT: [[PAT:%.*]] = getelementptr [16 x i8], [16 x i8]* @glob
+; CHECK-NEXT: [[PAT:%.*]] = getelementptr [16 x i8], ptr @glob
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -20,7 +20,7 @@ entr:
br i1 %c, label %next, label %exit
next:
- %pat = getelementptr [16 x i8], [16 x i8]* @glob
+ %pat = getelementptr [16 x i8], ptr @glob
br label %exit
exit:
diff --git a/llvm/test/Transforms/SimplifyCFG/guards.ll b/llvm/test/Transforms/SimplifyCFG/guards.ll
index fbcc9d87915d1..8ffbae934d6b3 100644
--- a/llvm/test/Transforms/SimplifyCFG/guards.ll
+++ b/llvm/test/Transforms/SimplifyCFG/guards.ll
@@ -38,7 +38,7 @@ false:
ret i32 20
}
-define i32 @f_2(i1 %c, i32* %buf) {
+define i32 @f_2(i1 %c, ptr %buf) {
; CHECK-LABEL: @f_2(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[C:%.*]], label [[GUARD_BLOCK:%.*]], label [[MERGE_BLOCK:%.*]]
@@ -53,7 +53,7 @@ entry:
guard_block:
call void(i1, ...) @llvm.experimental.guard(i1 false) [ "deopt"() ]
- %val = load i32, i32* %buf
+ %val = load i32, ptr %buf
br label %merge_block
merge_block:
@@ -62,31 +62,31 @@ merge_block:
}
-define i32 @f_3(i1* %c, i32* %buf) {
+define i32 @f_3(ptr %c, ptr %buf) {
; CHECK-LABEL: @f_3(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[C0:%.*]] = load volatile i1, i1* [[C:%.*]], align 1
+; CHECK-NEXT: [[C0:%.*]] = load volatile i1, ptr [[C:%.*]], align 1
; CHECK-NEXT: br i1 [[C0]], label [[GUARD_BLOCK:%.*]], label [[MERGE_BLOCK:%.*]]
; CHECK: guard_block:
; CHECK-NEXT: call void (i1, ...) @llvm.experimental.guard(i1 false) [ "deopt"() ]
; CHECK-NEXT: unreachable
; CHECK: merge_block:
-; CHECK-NEXT: [[C1:%.*]] = load volatile i1, i1* [[C]], align 1
+; CHECK-NEXT: [[C1:%.*]] = load volatile i1, ptr [[C]], align 1
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[C1]], i32 50, i32 100
; CHECK-NEXT: ret i32 [[DOT]]
;
entry:
- %c0 = load volatile i1, i1* %c
+ %c0 = load volatile i1, ptr %c
br i1 %c0, label %guard_block, label %merge_block
guard_block:
call void(i1, ...) @llvm.experimental.guard(i1 false) [ "deopt"() ]
- %val = load i32, i32* %buf
- %c2 = load volatile i1, i1* %c
+ %val = load i32, ptr %buf
+ %c2 = load volatile i1, ptr %c
br i1 %c2, label %left, label %right
merge_block:
- %c1 = load volatile i1, i1* %c
+ %c1 = load volatile i1, ptr %c
br i1 %c1, label %left, label %right
left:
diff --git a/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll b/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
index a3d81cf097fef..556e1b9ca0662 100644
--- a/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
+++ b/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
@@ -3,23 +3,23 @@
declare void @bar(i32)
-define void @test(i1 %P, i32* %Q) {
+define void @test(i1 %P, ptr %Q) {
; CHECK-LABEL: @test(
; CHECK-NEXT: common.ret:
-; CHECK-NEXT: store i32 1, i32* [[Q:%.*]], align 4
-; CHECK-NEXT: [[A:%.*]] = load i32, i32* [[Q]], align 4
+; CHECK-NEXT: store i32 1, ptr [[Q:%.*]], align 4
+; CHECK-NEXT: [[A:%.*]] = load i32, ptr [[Q]], align 4
; CHECK-NEXT: call void @bar(i32 [[A]])
; CHECK-NEXT: ret void
;
br i1 %P, label %T, label %F
T: ; preds = %0
- store i32 1, i32* %Q
- %A = load i32, i32* %Q ; <i32> [#uses=1]
+ store i32 1, ptr %Q
+ %A = load i32, ptr %Q ; <i32> [#uses=1]
call void @bar( i32 %A )
ret void
F: ; preds = %0
- store i32 1, i32* %Q
- %B = load i32, i32* %Q ; <i32> [#uses=1]
+ store i32 1, ptr %Q
+ %B = load i32, ptr %Q ; <i32> [#uses=1]
call void @bar( i32 %B )
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll b/llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll
index 63b0c715ce027..bdf4802480abf 100644
--- a/llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll
+++ b/llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll
@@ -1,23 +1,23 @@
; RUN: opt -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S < %s | FileCheck %s
; Verify that we don't crash due an invalid !dbg location on the hoisted llvm.dbg.value
-define i64 @caller(i64* %ptr, i64 %flag) !dbg !10 {
+define i64 @caller(ptr %ptr, i64 %flag) !dbg !10 {
init:
%v9 = icmp eq i64 %flag, 0
br i1 %v9, label %a, label %b
-; CHECK: %vala = load i64, i64* %ptr
+; CHECK: %vala = load i64, ptr %ptr
; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %vala, metadata [[MD:![0-9]*]]
; CHECK-NEXT: call void @llvm.dbg.value(metadata i64 %vala, metadata [[MD]]
; CHECK-NEXT: %valbmasked = and i64 %vala, 1
a: ; preds = %init
- %vala = load i64, i64* %ptr, align 8
+ %vala = load i64, ptr %ptr, align 8
call void @llvm.dbg.value(metadata i64 %vala, metadata !8, metadata !DIExpression()), !dbg !12
br label %test.exit
b: ; preds = %init
- %valb = load i64, i64* %ptr, align 8
+ %valb = load i64, ptr %ptr, align 8
call void @llvm.dbg.value(metadata i64 %valb, metadata !8, metadata !DIExpression()), !dbg !13
%valbmasked = and i64 %valb, 1
br label %test.exit
diff --git a/llvm/test/Transforms/SimplifyCFG/hoist-from-addresstaken-block.ll b/llvm/test/Transforms/SimplifyCFG/hoist-from-addresstaken-block.ll
index 7c0e0c2f6a2e5..521b7f722554b 100644
--- a/llvm/test/Transforms/SimplifyCFG/hoist-from-addresstaken-block.ll
+++ b/llvm/test/Transforms/SimplifyCFG/hoist-from-addresstaken-block.ll
@@ -3,13 +3,13 @@
define i32 @test_inline_constraint_S_label_tailmerged(i1 %in) {
; CHECK-LABEL: @test_inline_constraint_S_label_tailmerged(
-; CHECK-NEXT: call void asm sideeffect "adr x0, $0", "S"(i8* blockaddress(@test_inline_constraint_S_label_tailmerged, [[COMMON_RET:%.*]]))
+; CHECK-NEXT: call void asm sideeffect "adr x0, $0", "S"(ptr blockaddress(@test_inline_constraint_S_label_tailmerged, [[COMMON_RET:%.*]]))
; CHECK-NEXT: [[COMMON_RETVAL:%.*]] = select i1 [[IN:%.*]], i32 0, i32 42
; CHECK-NEXT: br label [[COMMON_RET]]
; CHECK: common.ret:
; CHECK-NEXT: ret i32 [[COMMON_RETVAL]]
;
- call void asm sideeffect "adr x0, $0", "S"(i8* blockaddress(@test_inline_constraint_S_label_tailmerged, %loc))
+ call void asm sideeffect "adr x0, $0", "S"(ptr blockaddress(@test_inline_constraint_S_label_tailmerged, %loc))
br i1 %in, label %loc, label %loc2
loc:
br label %common.ret
@@ -23,11 +23,11 @@ common.ret:
define i32 @test_inline_constraint_S_label_tailmerged2(i1 %in) {
; CHECK-LABEL: @test_inline_constraint_S_label_tailmerged2(
; CHECK-NEXT: common.ret:
-; CHECK-NEXT: call void asm sideeffect "adr x0, $0", "S"(i8* blockaddress(@test_inline_constraint_S_label_tailmerged, [[COMMON_RET:%.*]]))
+; CHECK-NEXT: call void asm sideeffect "adr x0, $0", "S"(ptr blockaddress(@test_inline_constraint_S_label_tailmerged, [[COMMON_RET:%.*]]))
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[IN:%.*]], i32 0, i32 42
; CHECK-NEXT: ret i32 [[DOT]]
;
- call void asm sideeffect "adr x0, $0", "S"(i8* blockaddress(@test_inline_constraint_S_label_tailmerged, %loc))
+ call void asm sideeffect "adr x0, $0", "S"(ptr blockaddress(@test_inline_constraint_S_label_tailmerged, %loc))
br i1 %in, label %loc, label %loc2
common.ret:
%common.retval = phi i32 [ 0, %loc ], [ 42, %loc2 ]
diff --git a/llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll b/llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll
index c93bba0939ff6..56060baf3ceb0 100644
--- a/llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll
+++ b/llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll
@@ -1,16 +1,16 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s
-define void @foo(i1 %c, i8* %p) {
+define void @foo(i1 %c, ptr %p) {
; CHECK: if:
-; CHECK-NEXT: load i8, i8* %p, align 1, !range !0
+; CHECK-NEXT: load i8, ptr %p, align 1, !range !0
; CHECK: !0 = !{i8 0, i8 1, i8 3, i8 5}
if:
br i1 %c, label %then, label %else
then:
- %t = load i8, i8* %p, !range !0
+ %t = load i8, ptr %p, !range !0
br label %out
else:
- %e = load i8, i8* %p, !range !1
+ %e = load i8, ptr %p, !range !1
br label %out
out:
ret void
diff --git a/llvm/test/Transforms/SimplifyCFG/indirectbr.ll b/llvm/test/Transforms/SimplifyCFG/indirectbr.ll
index 2653c2721edd9..87d8b399494ce 100644
--- a/llvm/test/Transforms/SimplifyCFG/indirectbr.ll
+++ b/llvm/test/Transforms/SimplifyCFG/indirectbr.ll
@@ -8,15 +8,15 @@ declare void @A()
declare void @B(i32)
declare void @C()
-define void @indbrtest0(i8** %P, i8** %Q) {
+define void @indbrtest0(ptr %P, ptr %Q) {
; CHECK-LABEL: @indbrtest0(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i8* blockaddress(@indbrtest0, [[BB0:%.*]]), i8** [[P:%.*]], align 8
-; CHECK-NEXT: store i8* blockaddress(@indbrtest0, [[BB1:%.*]]), i8** [[P]], align 8
-; CHECK-NEXT: store i8* blockaddress(@indbrtest0, [[BB2:%.*]]), i8** [[P]], align 8
+; CHECK-NEXT: store ptr blockaddress(@indbrtest0, [[BB0:%.*]]), ptr [[P:%.*]], align 8
+; CHECK-NEXT: store ptr blockaddress(@indbrtest0, [[BB1:%.*]]), ptr [[P]], align 8
+; CHECK-NEXT: store ptr blockaddress(@indbrtest0, [[BB2:%.*]]), ptr [[P]], align 8
; CHECK-NEXT: call void @foo()
-; CHECK-NEXT: [[T:%.*]] = load i8*, i8** [[Q:%.*]], align 8
-; CHECK-NEXT: indirectbr i8* [[T]], [label [[BB0]], label [[BB1]], label %BB2]
+; CHECK-NEXT: [[T:%.*]] = load ptr, ptr [[Q:%.*]], align 8
+; CHECK-NEXT: indirectbr ptr [[T]], [label [[BB0]], label [[BB1]], label %BB2]
; CHECK: BB0:
; CHECK-NEXT: call void @A()
; CHECK-NEXT: br label [[BB1]]
@@ -31,12 +31,12 @@ define void @indbrtest0(i8** %P, i8** %Q) {
; CHECK-NEXT: br label [[COMMON_RET]]
;
entry:
- store i8* blockaddress(@indbrtest0, %BB0), i8** %P
- store i8* blockaddress(@indbrtest0, %BB1), i8** %P
- store i8* blockaddress(@indbrtest0, %BB2), i8** %P
+ store ptr blockaddress(@indbrtest0, %BB0), ptr %P
+ store ptr blockaddress(@indbrtest0, %BB1), ptr %P
+ store ptr blockaddress(@indbrtest0, %BB2), ptr %P
call void @foo()
- %t = load i8*, i8** %Q
- indirectbr i8* %t, [label %BB0, label %BB1, label %BB2, label %BB0, label %BB1, label %BB2]
+ %t = load ptr, ptr %Q
+ indirectbr ptr %t, [label %BB0, label %BB1, label %BB2, label %BB0, label %BB1, label %BB2]
BB0:
call void @A()
br label %BB1
@@ -54,10 +54,10 @@ BB2:
; that because the predecessor is the entry block.
-define void @indbrtest1(i8** %P, i8** %Q) {
+define void @indbrtest1(ptr %P, ptr %Q) {
; CHECK-LABEL: @indbrtest1(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i8* blockaddress(@indbrtest1, [[BB0:%.*]]), i8** [[P:%.*]], align 8
+; CHECK-NEXT: store ptr blockaddress(@indbrtest1, [[BB0:%.*]]), ptr [[P:%.*]], align 8
; CHECK-NEXT: call void @foo()
; CHECK-NEXT: br label [[BB0]]
; CHECK: BB0:
@@ -65,10 +65,10 @@ define void @indbrtest1(i8** %P, i8** %Q) {
; CHECK-NEXT: ret void
;
entry:
- store i8* blockaddress(@indbrtest1, %BB0), i8** %P
+ store ptr blockaddress(@indbrtest1, %BB0), ptr %P
call void @foo()
- %t = load i8*, i8** %Q
- indirectbr i8* %t, [label %BB0, label %BB0]
+ %t = load ptr, ptr %Q
+ indirectbr ptr %t, [label %BB0, label %BB0]
BB0:
call void @A()
ret void
@@ -78,13 +78,13 @@ BB0:
; remove it from entry's successor list.
-define void @indbrtest2(i8* %t) {
+define void @indbrtest2(ptr %t) {
; CHECK-LABEL: @indbrtest2(
; CHECK-NEXT: entry:
; CHECK-NEXT: unreachable
;
entry:
- indirectbr i8* %t, [label %BB0, label %BB0]
+ indirectbr ptr %t, [label %BB0, label %BB0]
BB0:
ret void
}
@@ -93,17 +93,17 @@ BB0:
; Make sure the blocks in the next few tests aren't trivially removable as
; successors by taking their addresses.
- at anchor = constant [13 x i8*] [
- i8* blockaddress(@indbrtest3, %L1), i8* blockaddress(@indbrtest3, %L2), i8* blockaddress(@indbrtest3, %L3),
- i8* blockaddress(@indbrtest4, %L1), i8* blockaddress(@indbrtest4, %L2), i8* blockaddress(@indbrtest4, %L3),
- i8* blockaddress(@indbrtest5, %L1), i8* blockaddress(@indbrtest5, %L2), i8* blockaddress(@indbrtest5, %L3), i8* blockaddress(@indbrtest5, %L4),
- i8* blockaddress(@indbrtest6, %L1), i8* blockaddress(@indbrtest6, %L2), i8* blockaddress(@indbrtest6, %L3)
+ at anchor = constant [13 x ptr] [
+ ptr blockaddress(@indbrtest3, %L1), ptr blockaddress(@indbrtest3, %L2), ptr blockaddress(@indbrtest3, %L3),
+ ptr blockaddress(@indbrtest4, %L1), ptr blockaddress(@indbrtest4, %L2), ptr blockaddress(@indbrtest4, %L3),
+ ptr blockaddress(@indbrtest5, %L1), ptr blockaddress(@indbrtest5, %L2), ptr blockaddress(@indbrtest5, %L3), ptr blockaddress(@indbrtest5, %L4),
+ ptr blockaddress(@indbrtest6, %L1), ptr blockaddress(@indbrtest6, %L2), ptr blockaddress(@indbrtest6, %L3)
]
; SimplifyCFG should turn the indirectbr into a conditional branch on the
; condition of the select.
-define void @indbrtest3(i1 %cond, i8* %address) nounwind {
+define void @indbrtest3(i1 %cond, ptr %address) nounwind {
; CHECK-LABEL: @indbrtest3(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[COND:%.*]], label [[L1:%.*]], label [[L2:%.*]]
@@ -117,8 +117,8 @@ define void @indbrtest3(i1 %cond, i8* %address) nounwind {
; CHECK-NEXT: br label [[COMMON_RET]]
;
entry:
- %indirect.goto.dest = select i1 %cond, i8* blockaddress(@indbrtest3, %L1), i8* blockaddress(@indbrtest3, %L2)
- indirectbr i8* %indirect.goto.dest, [label %L1, label %L2, label %L3]
+ %indirect.goto.dest = select i1 %cond, ptr blockaddress(@indbrtest3, %L1), ptr blockaddress(@indbrtest3, %L2)
+ indirectbr ptr %indirect.goto.dest, [label %L1, label %L2, label %L3]
L1:
call void @A()
@@ -145,8 +145,8 @@ define void @indbrtest4(i1 %cond) nounwind {
; CHECK-NEXT: ret void
;
entry:
- %indirect.goto.dest = select i1 %cond, i8* blockaddress(@indbrtest4, %L1), i8* blockaddress(@indbrtest4, %L1)
- indirectbr i8* %indirect.goto.dest, [label %L1, label %L2, label %L3]
+ %indirect.goto.dest = select i1 %cond, ptr blockaddress(@indbrtest4, %L1), ptr blockaddress(@indbrtest4, %L1)
+ indirectbr ptr %indirect.goto.dest, [label %L1, label %L2, label %L3]
L1:
call void @A()
@@ -162,16 +162,16 @@ L3:
; SimplifyCFG should turn the indirectbr into an unreachable because neither
; destination is listed as a successor.
-define void @indbrtest5(i1 %cond, i8* %anchor) nounwind {
+define void @indbrtest5(i1 %cond, ptr %anchor) nounwind {
; CHECK-LABEL: @indbrtest5(
; CHECK-NEXT: entry:
; CHECK-NEXT: unreachable
;
entry:
- %indirect.goto.dest = select i1 %cond, i8* blockaddress(@indbrtest5, %L1), i8* blockaddress(@indbrtest5, %L2)
+ %indirect.goto.dest = select i1 %cond, ptr blockaddress(@indbrtest5, %L1), ptr blockaddress(@indbrtest5, %L2)
; This needs to have more than one successor for this test, otherwise it gets
; replaced with an unconditional branch to the single successor.
- indirectbr i8* %indirect.goto.dest, [label %L3, label %L4]
+ indirectbr ptr %indirect.goto.dest, [label %L3, label %L4]
L1:
call void @A()
@@ -187,21 +187,21 @@ L4:
; This keeps blockaddresses not otherwise listed as successors from being zapped
; before SimplifyCFG even looks at the indirectbr.
- indirectbr i8* %anchor, [label %L1, label %L2]
+ indirectbr ptr %anchor, [label %L1, label %L2]
}
; The same as above, except the selected addresses are equal.
-define void @indbrtest6(i1 %cond, i8* %anchor) nounwind {
+define void @indbrtest6(i1 %cond, ptr %anchor) nounwind {
; CHECK-LABEL: @indbrtest6(
; CHECK-NEXT: entry:
; CHECK-NEXT: unreachable
;
entry:
- %indirect.goto.dest = select i1 %cond, i8* blockaddress(@indbrtest6, %L1), i8* blockaddress(@indbrtest6, %L1)
+ %indirect.goto.dest = select i1 %cond, ptr blockaddress(@indbrtest6, %L1), ptr blockaddress(@indbrtest6, %L1)
; This needs to have more than one successor for this test, otherwise it gets
; replaced with an unconditional branch to the single successor.
- indirectbr i8* %indirect.goto.dest, [label %L2, label %L3]
+ indirectbr ptr %indirect.goto.dest, [label %L2, label %L3]
L1:
call void @A()
@@ -214,12 +214,12 @@ L3:
; This keeps blockaddresses not otherwise listed as successors from being zapped
; before SimplifyCFG even looks at the indirectbr.
- indirectbr i8* %anchor, [label %L1, label %L2]
+ indirectbr ptr %anchor, [label %L1, label %L2]
}
; PR10072
- at xblkx.bbs = internal unnamed_addr constant [9 x i8*] [i8* blockaddress(@indbrtest7, %xblkx.begin), i8* blockaddress(@indbrtest7, %xblkx.begin3), i8* blockaddress(@indbrtest7, %xblkx.begin4), i8* blockaddress(@indbrtest7, %xblkx.begin5), i8* blockaddress(@indbrtest7, %xblkx.begin6), i8* blockaddress(@indbrtest7, %xblkx.begin7), i8* blockaddress(@indbrtest7, %xblkx.begin8), i8* blockaddress(@indbrtest7, %xblkx.begin9), i8* blockaddress(@indbrtest7, %xblkx.end)]
+ at xblkx.bbs = internal unnamed_addr constant [9 x ptr] [ptr blockaddress(@indbrtest7, %xblkx.begin), ptr blockaddress(@indbrtest7, %xblkx.begin3), ptr blockaddress(@indbrtest7, %xblkx.begin4), ptr blockaddress(@indbrtest7, %xblkx.begin5), ptr blockaddress(@indbrtest7, %xblkx.begin6), ptr blockaddress(@indbrtest7, %xblkx.begin7), ptr blockaddress(@indbrtest7, %xblkx.begin8), ptr blockaddress(@indbrtest7, %xblkx.begin9), ptr blockaddress(@indbrtest7, %xblkx.end)]
define void @indbrtest7() {
; CHECK-LABEL: @indbrtest7(
@@ -228,9 +228,9 @@ define void @indbrtest7() {
; CHECK-NEXT: br label [[XLAB5X:%.*]]
; CHECK: xlab8x:
; CHECK-NEXT: [[XVALUEX:%.*]] = call i32 @xselectorx()
-; CHECK-NEXT: [[XBLKX_X:%.*]] = getelementptr [9 x i8*], [9 x i8*]* @xblkx.bbs, i32 0, i32 [[XVALUEX]]
-; CHECK-NEXT: [[XBLKX_LOAD:%.*]] = load i8*, i8** [[XBLKX_X]], align 8
-; CHECK-NEXT: indirectbr i8* [[XBLKX_LOAD]], [label [[XLAB4X:%.*]], label %v2j]
+; CHECK-NEXT: [[XBLKX_X:%.*]] = getelementptr [9 x ptr], ptr @xblkx.bbs, i32 0, i32 [[XVALUEX]]
+; CHECK-NEXT: [[XBLKX_LOAD:%.*]] = load ptr, ptr [[XBLKX_X]], align 8
+; CHECK-NEXT: indirectbr ptr [[XBLKX_LOAD]], [label [[XLAB4X:%.*]], label %v2j]
; CHECK: v2j:
; CHECK-NEXT: [[XUNUSEDX:%.*]] = call i32 @xactionx()
; CHECK-NEXT: br label [[XLAB4X]]
@@ -250,9 +250,9 @@ escape-string.top:
xlab8x: ; preds = %xlab5x
%xvaluex = call i32 @xselectorx()
- %xblkx.x = getelementptr [9 x i8*], [9 x i8*]* @xblkx.bbs, i32 0, i32 %xvaluex
- %xblkx.load = load i8*, i8** %xblkx.x
- indirectbr i8* %xblkx.load, [label %xblkx.begin, label %xblkx.begin3, label %xblkx.begin4, label %xblkx.begin5, label %xblkx.begin6, label %xblkx.begin7, label %xblkx.begin8, label %xblkx.begin9, label %xblkx.end]
+ %xblkx.x = getelementptr [9 x ptr], ptr @xblkx.bbs, i32 0, i32 %xvaluex
+ %xblkx.load = load ptr, ptr %xblkx.x
+ indirectbr ptr %xblkx.load, [label %xblkx.begin, label %xblkx.begin3, label %xblkx.begin4, label %xblkx.begin5, label %xblkx.begin6, label %xblkx.begin7, label %xblkx.begin8, label %xblkx.begin9, label %xblkx.end]
xblkx.begin:
br label %xblkx.end
@@ -309,7 +309,7 @@ define void @indbrtest8() {
; CHECK-NEXT: ret void
;
entry:
- indirectbr i8* blockaddress(@indbrtest8, %BB1), [label %BB0, label %BB1]
+ indirectbr ptr blockaddress(@indbrtest8, %BB1), [label %BB0, label %BB1]
BB0:
call void @A()
ret void
@@ -324,7 +324,7 @@ define void @indbrtest9() {
; CHECK-NEXT: unreachable
;
entry:
- indirectbr i8* blockaddress(@indbrtest9, %BB1), [label %BB0]
+ indirectbr ptr blockaddress(@indbrtest9, %BB1), [label %BB0]
BB0:
call void @A()
ret void
@@ -340,7 +340,7 @@ define void @indbrtest10() {
; CHECK-NEXT: ret void
;
entry:
- indirectbr i8* blockaddress(@indbrtest10, %BB1), [label %BB1]
+ indirectbr ptr blockaddress(@indbrtest10, %BB1), [label %BB1]
BB0:
call void @A()
ret void
@@ -356,7 +356,7 @@ define void @indbrtest11() {
; CHECK-NEXT: ret void
;
entry:
- indirectbr i8* blockaddress(@indbrtest11, %BB0), [label %BB0, label %BB1, label %BB1]
+ indirectbr ptr blockaddress(@indbrtest11, %BB0), [label %BB0, label %BB1, label %BB1]
BB0:
call void @A()
ret void
@@ -372,7 +372,7 @@ define void @indbrtest12() {
; CHECK-NEXT: ret void
;
entry:
- indirectbr i8* blockaddress(@indbrtest12, %BB1), [label %BB0, label %BB1, label %BB1]
+ indirectbr ptr blockaddress(@indbrtest12, %BB1), [label %BB0, label %BB1, label %BB1]
BB0:
call void @A()
ret void
diff --git a/llvm/test/Transforms/SimplifyCFG/inline-asm-sink.ll b/llvm/test/Transforms/SimplifyCFG/inline-asm-sink.ll
index 23aa19d8dce91..fd484be978f09 100644
--- a/llvm/test/Transforms/SimplifyCFG/inline-asm-sink.ll
+++ b/llvm/test/Transforms/SimplifyCFG/inline-asm-sink.ll
@@ -23,15 +23,15 @@ entry:
if.then:
%tmp1 = call i32 asm "mov $0, #1", "=r"() nounwind readnone
- store i32 %tmp1, i32* %y, align 4
+ store i32 %tmp1, ptr %y, align 4
br label %if.end
if.else:
%tmp2 = call i32 asm "mov $0, #2", "=r"() nounwind readnone
- store i32 %tmp2, i32* %y, align 4
+ store i32 %tmp2, ptr %y, align 4
br label %if.end
if.end:
- %tmp3 = load i32, i32* %y, align 4
+ %tmp3 = load i32, ptr %y, align 4
ret i32 %tmp3
}
diff --git a/llvm/test/Transforms/SimplifyCFG/invoke.ll b/llvm/test/Transforms/SimplifyCFG/invoke.ll
index 506ac6152e174..a1a86af317c11 100644
--- a/llvm/test/Transforms/SimplifyCFG/invoke.ll
+++ b/llvm/test/Transforms/SimplifyCFG/invoke.ll
@@ -3,7 +3,7 @@
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
declare i32 @__gxx_personality_v0(...)
-declare void @__cxa_call_unexpected(i8*)
+declare void @__cxa_call_unexpected(ptr)
declare void @purefn() nounwind readnone willreturn
declare i32 @readonly() nounwind readonly
declare i32 @readonly_willreturn() nounwind readonly willreturn
@@ -11,76 +11,76 @@ declare i32 @nounwind_fn() nounwind
declare i32 @fn()
-define i8* @f1() nounwind uwtable ssp personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define ptr @f1() nounwind uwtable ssp personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @f1(
; CHECK-NEXT: entry:
; CHECK-NEXT: unreachable
;
entry:
- %call = invoke noalias i8* undef()
+ %call = invoke noalias ptr undef()
to label %invoke.cont unwind label %lpad
invoke.cont:
- ret i8* %call
+ ret ptr %call
lpad:
- %0 = landingpad { i8*, i32 }
- filter [0 x i8*] zeroinitializer
- %1 = extractvalue { i8*, i32 } %0, 0
- tail call void @__cxa_call_unexpected(i8* %1) noreturn nounwind
+ %0 = landingpad { ptr, i32 }
+ filter [0 x ptr] zeroinitializer
+ %1 = extractvalue { ptr, i32 } %0, 0
+ tail call void @__cxa_call_unexpected(ptr %1) noreturn nounwind
unreachable
}
-define i8* @f2() nounwind uwtable ssp personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define ptr @f2() nounwind uwtable ssp personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @f2(
; CHECK-NEXT: entry:
; CHECK-NEXT: unreachable
;
entry:
- %call = invoke noalias i8* null()
+ %call = invoke noalias ptr null()
to label %invoke.cont unwind label %lpad
invoke.cont:
- ret i8* %call
+ ret ptr %call
lpad:
- %0 = landingpad { i8*, i32 }
- filter [0 x i8*] zeroinitializer
- %1 = extractvalue { i8*, i32 } %0, 0
- tail call void @__cxa_call_unexpected(i8* %1) noreturn nounwind
+ %0 = landingpad { ptr, i32 }
+ filter [0 x ptr] zeroinitializer
+ %1 = extractvalue { ptr, i32 } %0, 0
+ tail call void @__cxa_call_unexpected(ptr %1) noreturn nounwind
unreachable
}
-define i8* @f2_no_null_opt() nounwind uwtable ssp #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define ptr @f2_no_null_opt() nounwind uwtable ssp #0 personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @f2_no_null_opt(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[CALL:%.*]] = invoke noalias i8* null()
+; CHECK-NEXT: [[CALL:%.*]] = invoke noalias ptr null()
; CHECK-NEXT: to label [[INVOKE_CONT:%.*]] unwind label [[LPAD:%.*]]
; CHECK: invoke.cont:
-; CHECK-NEXT: ret i8* [[CALL]]
+; CHECK-NEXT: ret ptr [[CALL]]
; CHECK: lpad:
-; CHECK-NEXT: [[TMP0:%.*]] = landingpad { i8*, i32 }
-; CHECK-NEXT: filter [0 x i8*] zeroinitializer
-; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { i8*, i32 } [[TMP0]], 0
-; CHECK-NEXT: tail call void @__cxa_call_unexpected(i8* [[TMP1]]) #[[ATTR7:[0-9]+]]
+; CHECK-NEXT: [[TMP0:%.*]] = landingpad { ptr, i32 }
+; CHECK-NEXT: filter [0 x ptr] zeroinitializer
+; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { ptr, i32 } [[TMP0]], 0
+; CHECK-NEXT: tail call void @__cxa_call_unexpected(ptr [[TMP1]]) #[[ATTR7:[0-9]+]]
; CHECK-NEXT: unreachable
;
entry:
- %call = invoke noalias i8* null()
+ %call = invoke noalias ptr null()
to label %invoke.cont unwind label %lpad
invoke.cont:
- ret i8* %call
+ ret ptr %call
lpad:
- %0 = landingpad { i8*, i32 }
- filter [0 x i8*] zeroinitializer
- %1 = extractvalue { i8*, i32 } %0, 0
- tail call void @__cxa_call_unexpected(i8* %1) noreturn nounwind
+ %0 = landingpad { ptr, i32 }
+ filter [0 x ptr] zeroinitializer
+ %1 = extractvalue { ptr, i32 } %0, 0
+ tail call void @__cxa_call_unexpected(ptr %1) noreturn nounwind
unreachable
}
-define i32 @invoke_readonly_may_not_return() nounwind personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define i32 @invoke_readonly_may_not_return() nounwind personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @invoke_readonly_may_not_return(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CALL:%.*]] = call i32 @readonly()
@@ -94,14 +94,14 @@ invoke.cont:
ret i32 3
lpad:
- %0 = landingpad { i8*, i32 }
- filter [0 x i8*] zeroinitializer
- %1 = extractvalue { i8*, i32 } %0, 0
- tail call void @__cxa_call_unexpected(i8* %1) noreturn nounwind
+ %0 = landingpad { ptr, i32 }
+ filter [0 x ptr] zeroinitializer
+ %1 = extractvalue { ptr, i32 } %0, 0
+ tail call void @__cxa_call_unexpected(ptr %1) noreturn nounwind
unreachable
}
-define i32 @invoke_readonly_willreturn() nounwind personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define i32 @invoke_readonly_willreturn() nounwind personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @invoke_readonly_willreturn(
; CHECK-NEXT: entry:
; CHECK-NEXT: ret i32 3
@@ -114,14 +114,14 @@ invoke.cont:
ret i32 3
lpad:
- %0 = landingpad { i8*, i32 }
- filter [0 x i8*] zeroinitializer
- %1 = extractvalue { i8*, i32 } %0, 0
- tail call void @__cxa_call_unexpected(i8* %1) noreturn nounwind
+ %0 = landingpad { ptr, i32 }
+ filter [0 x ptr] zeroinitializer
+ %1 = extractvalue { ptr, i32 } %0, 0
+ tail call void @__cxa_call_unexpected(ptr %1) noreturn nounwind
unreachable
}
-define i32 @invoke_readonly_willreturn_with_used_retval() nounwind personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define i32 @invoke_readonly_willreturn_with_used_retval() nounwind personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @invoke_readonly_willreturn_with_used_retval(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CALL:%.*]] = call i32 @readonly_willreturn()
@@ -135,14 +135,14 @@ invoke.cont:
ret i32 %call
lpad:
- %0 = landingpad { i8*, i32 }
- filter [0 x i8*] zeroinitializer
- %1 = extractvalue { i8*, i32 } %0, 0
- tail call void @__cxa_call_unexpected(i8* %1) noreturn nounwind
+ %0 = landingpad { ptr, i32 }
+ filter [0 x ptr] zeroinitializer
+ %1 = extractvalue { ptr, i32 } %0, 0
+ tail call void @__cxa_call_unexpected(ptr %1) noreturn nounwind
unreachable
}
-define i32 @f5(i1 %cond, i8* %a, i8* %b) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define i32 @f5(i1 %cond, ptr %a, ptr %b) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @f5(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[COND:%.*]], label [[X:%.*]], label [[Y:%.*]]
@@ -156,9 +156,9 @@ define i32 @f5(i1 %cond, i8* %a, i8* %b) personality i8* bitcast (i32 (...)* @__
; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ [[CALL]], [[X]] ], [ [[CALL2]], [[Y]] ]
; CHECK-NEXT: ret i32 [[PHI]]
; CHECK: lpad:
-; CHECK-NEXT: [[TMP0:%.*]] = landingpad { i8*, i32 }
-; CHECK-NEXT: filter [0 x i8*] zeroinitializer
-; CHECK-NEXT: tail call void @__cxa_call_unexpected(i8* [[A:%.*]]) #[[ATTR7]]
+; CHECK-NEXT: [[TMP0:%.*]] = landingpad { ptr, i32 }
+; CHECK-NEXT: filter [0 x ptr] zeroinitializer
+; CHECK-NEXT: tail call void @__cxa_call_unexpected(ptr [[A:%.*]]) #[[ATTR7]]
; CHECK-NEXT: unreachable
;
entry:
@@ -177,14 +177,14 @@ cont:
ret i32 %phi
lpad:
- %phi2 = phi i8* [%a, %x], [%b, %y]
- %0 = landingpad { i8*, i32 }
- filter [0 x i8*] zeroinitializer
- tail call void @__cxa_call_unexpected(i8* %phi2) noreturn nounwind
+ %phi2 = phi ptr [%a, %x], [%b, %y]
+ %0 = landingpad { ptr, i32 }
+ filter [0 x ptr] zeroinitializer
+ tail call void @__cxa_call_unexpected(ptr %phi2) noreturn nounwind
unreachable
}
-define void @f6() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @f6() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @f6(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[FOO:%.*]] = invoke i32 @fn()
@@ -192,7 +192,7 @@ define void @f6() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: lpad:
-; CHECK-NEXT: [[TMP0:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[TMP0:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: br label [[COMMON_RET]]
;
@@ -208,13 +208,13 @@ invoke.cont2:
ret void
lpad:
- %tmp = phi i8* [ null, %invoke.cont1 ], [ null, %entry ]
- landingpad { i8*, i32 }
+ %tmp = phi ptr [ null, %invoke.cont1 ], [ null, %entry ]
+ landingpad { ptr, i32 }
cleanup
ret void
}
-define void @invoke_of_noreturn() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @invoke_of_noreturn() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @invoke_of_noreturn(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @simple_throw()
@@ -222,10 +222,10 @@ define void @invoke_of_noreturn() personality i8* bitcast (i32 (...)* @__gxx_per
; CHECK: invoke.cont.unreachable:
; CHECK-NEXT: unreachable
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @sideeffect(i32 1)
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
;
entry:
invoke void @simple_throw() to label %invoke.cont unwind label %lpad
@@ -235,12 +235,12 @@ invoke.cont:
ret void
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @sideeffect(i32 1)
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
}
-define void @invoke_of_noreturn_with_shared_normal_destination(i1 %c) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @invoke_of_noreturn_with_shared_normal_destination(i1 %c) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @invoke_of_noreturn_with_shared_normal_destination(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[C:%.*]], label [[INVOKE:%.*]], label [[INVOKE_CONT:%.*]]
@@ -253,10 +253,10 @@ define void @invoke_of_noreturn_with_shared_normal_destination(i1 %c) personalit
; CHECK-NEXT: call void @sideeffect(i32 -1)
; CHECK-NEXT: ret void
; CHECK: lpad:
-; CHECK-NEXT: [[EH:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[EH:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @sideeffect(i32 1)
-; CHECK-NEXT: resume { i8*, i32 } [[EH]]
+; CHECK-NEXT: resume { ptr, i32 } [[EH]]
;
entry:
br i1 %c, label %invoke, label %invoke.cont
@@ -270,12 +270,12 @@ invoke.cont:
ret void
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @sideeffect(i32 1)
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
}
-define void @invoke_of_nounwind() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @invoke_of_nounwind() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @invoke_of_nounwind(
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @simple_return()
@@ -290,9 +290,9 @@ invoke.cont:
ret void
lpad:
- %eh = landingpad { i8*, i32 } cleanup
+ %eh = landingpad { ptr, i32 } cleanup
call void @sideeffect(i32 1)
- resume { i8*, i32 } %eh
+ resume { ptr, i32 } %eh
}
declare void @simple_throw() noreturn
diff --git a/llvm/test/Transforms/SimplifyCFG/invoke_unwind.ll b/llvm/test/Transforms/SimplifyCFG/invoke_unwind.ll
index 649a865dcabc8..d8da7825c4416 100644
--- a/llvm/test/Transforms/SimplifyCFG/invoke_unwind.ll
+++ b/llvm/test/Transforms/SimplifyCFG/invoke_unwind.ll
@@ -5,7 +5,7 @@ declare void @bar()
; This testcase checks to see if the simplifycfg pass is converting invoke
; instructions to call instructions if the handler just rethrows the exception.
-define i32 @test1() personality i32 (...)* @__gxx_personality_v0 {
+define i32 @test1() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @test1(
; CHECK-NEXT: call void @bar(), !prof !0
; CHECK-NEXT: ret i32 0
@@ -14,14 +14,14 @@ define i32 @test1() personality i32 (...)* @__gxx_personality_v0 {
to label %1 unwind label %Rethrow, !prof !0
ret i32 0
Rethrow:
- %exn = landingpad {i8*, i32}
- catch i8* null
- resume { i8*, i32 } %exn
+ %exn = landingpad {ptr, i32}
+ catch ptr null
+ resume { ptr, i32 } %exn
}
!0 = !{!"branch_weights", i32 369, i32 2}
-define i32 @test2() personality i32 (...)* @__gxx_personality_v0 {
+define i32 @test2() personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @test2(
; CHECK-NEXT: call void @bar() [ "foo"(i32 100) ]
; CHECK-NEXT: ret i32 0
@@ -30,9 +30,9 @@ define i32 @test2() personality i32 (...)* @__gxx_personality_v0 {
to label %1 unwind label %Rethrow
ret i32 0
Rethrow:
- %exn = landingpad {i8*, i32}
- catch i8* null
- resume { i8*, i32 } %exn
+ %exn = landingpad {ptr, i32}
+ catch ptr null
+ resume { ptr, i32 } %exn
}
declare i64 @dummy1()
@@ -41,7 +41,7 @@ declare i64 @dummy2()
; This testcase checks to see if simplifycfg pass can convert two invoke
; instructions to call instructions if they share a common trivial unwind
; block.
-define i64 @test3(i1 %cond) personality i32 (...)* @__gxx_personality_v0 {
+define i64 @test3(i1 %cond) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @test3(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[COND:%.*]], label [[BR1:%.*]], label [[BR2:%.*]]
@@ -72,16 +72,16 @@ invoke.cont:
lpad1:
- %0 = landingpad { i8*, i32 }
+ %0 = landingpad { ptr, i32 }
cleanup
br label %rethrow
rethrow:
- %lp = phi { i8*, i32 } [%0, %lpad1], [%1, %lpad2]
- resume { i8*, i32 } %lp
+ %lp = phi { ptr, i32 } [%0, %lpad1], [%1, %lpad2]
+ resume { ptr, i32 } %lp
lpad2:
- %1 = landingpad { i8*, i32 }
+ %1 = landingpad { ptr, i32 }
cleanup
br label %rethrow
}
diff --git a/llvm/test/Transforms/SimplifyCFG/invoke_unwind_lifetime.ll b/llvm/test/Transforms/SimplifyCFG/invoke_unwind_lifetime.ll
index 4e26c7cbf5df2..7cc2e1b9690f6 100644
--- a/llvm/test/Transforms/SimplifyCFG/invoke_unwind_lifetime.ll
+++ b/llvm/test/Transforms/SimplifyCFG/invoke_unwind_lifetime.ll
@@ -1,35 +1,31 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
-declare void @llvm.lifetime.start.p0i8(i64, i8*)
-declare void @llvm.lifetime.end.p0i8(i64, i8*)
+declare void @llvm.lifetime.start.p0(i64, ptr)
+declare void @llvm.lifetime.end.p0(i64, ptr)
-declare void @escape(i32*)
+declare void @escape(ptr)
declare void @throwing_callee_foo()
declare void @throwing_callee_bar()
declare i32 @__gxx_personality_v0(...)
-define void @caller(i1 %c) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @caller(i1 %c) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @caller(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[I0:%.*]] = alloca i32, align 4
-; CHECK-NEXT: [[I1:%.*]] = bitcast i32* [[I0]] to i8*
-; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull [[I1]])
-; CHECK-NEXT: call void @escape(i32* [[I0]])
+; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr nonnull [[I0]])
+; CHECK-NEXT: call void @escape(ptr [[I0]])
; CHECK-NEXT: [[I2:%.*]] = alloca i32, align 4
-; CHECK-NEXT: [[I3:%.*]] = bitcast i32* [[I2]] to i8*
-; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull [[I3]])
-; CHECK-NEXT: call void @escape(i32* [[I2]])
+; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr nonnull [[I2]])
+; CHECK-NEXT: call void @escape(ptr [[I2]])
; CHECK-NEXT: [[I4:%.*]] = alloca i32, align 4
-; CHECK-NEXT: [[I5:%.*]] = bitcast i32* [[I4]] to i8*
-; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull [[I5]])
-; CHECK-NEXT: call void @escape(i32* [[I4]])
+; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr nonnull [[I4]])
+; CHECK-NEXT: call void @escape(ptr [[I4]])
; CHECK-NEXT: [[I6:%.*]] = alloca i32, align 4
-; CHECK-NEXT: [[I7:%.*]] = bitcast i32* [[I6]] to i8*
-; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull [[I7]])
-; CHECK-NEXT: call void @escape(i32* [[I6]])
+; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr nonnull [[I6]])
+; CHECK-NEXT: call void @escape(ptr [[I6]])
; CHECK-NEXT: br i1 [[C:%.*]], label [[V0:%.*]], label [[V1:%.*]]
; CHECK: v0:
; CHECK-NEXT: call void @throwing_callee_foo()
@@ -40,24 +36,20 @@ define void @caller(i1 %c) personality i8* bitcast (i32 (...)* @__gxx_personalit
;
entry:
%i0 = alloca i32
- %i1 = bitcast i32* %i0 to i8*
- call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %i1)
- call void @escape(i32* %i0)
+ call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %i0)
+ call void @escape(ptr %i0)
%i2 = alloca i32
- %i3 = bitcast i32* %i2 to i8*
- call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %i3)
- call void @escape(i32* %i2)
+ call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %i2)
+ call void @escape(ptr %i2)
%i4 = alloca i32
- %i5 = bitcast i32* %i4 to i8*
- call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %i5)
- call void @escape(i32* %i4)
+ call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %i4)
+ call void @escape(ptr %i4)
%i6 = alloca i32
- %i7 = bitcast i32* %i6 to i8*
- call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %i7)
- call void @escape(i32* %i6)
+ call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %i6)
+ call void @escape(ptr %i6)
br i1 %c, label %v0, label %v1
@@ -73,18 +65,18 @@ invoke.cont:
unreachable
lpad.v0:
- %i8 = landingpad { i8*, i32 } cleanup
- call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %i1)
+ %i8 = landingpad { ptr, i32 } cleanup
+ call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %i0)
br label %end
lpad.v1:
- %i9 = landingpad { i8*, i32 } cleanup
- call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %i3)
+ %i9 = landingpad { ptr, i32 } cleanup
+ call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %i2)
br label %end
end:
- %i10 = phi { i8*, i32 } [ %i8, %lpad.v0 ], [ %i9, %lpad.v1 ]
- %i11 = phi i8* [ %i5, %lpad.v0 ], [ %i7, %lpad.v1 ]
- call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %i11)
- resume { i8*, i32 } %i10
+ %i10 = phi { ptr, i32 } [ %i8, %lpad.v0 ], [ %i9, %lpad.v1 ]
+ %i11 = phi ptr [ %i4, %lpad.v0 ], [ %i6, %lpad.v1 ]
+ call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %i11)
+ resume { ptr, i32 } %i10
}
diff --git a/llvm/test/Transforms/SimplifyCFG/iterative-simplify.ll b/llvm/test/Transforms/SimplifyCFG/iterative-simplify.ll
index 07434c253cf23..fa5c28eec6e73 100644
--- a/llvm/test/Transforms/SimplifyCFG/iterative-simplify.ll
+++ b/llvm/test/Transforms/SimplifyCFG/iterative-simplify.ll
@@ -10,20 +10,20 @@ define i32 @main() {
; CHECK-NEXT: [[Z:%.*]] = alloca i32, align 4
; CHECK-NEXT: [[Z16:%.*]] = alloca i32, align 4
; CHECK-NEXT: %"alloca point" = bitcast i32 0 to i32
-; CHECK-NEXT: store i32 0, i32* [[I]], align 4
+; CHECK-NEXT: store i32 0, ptr [[I]], align 4
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp ne i8 1, 0
; CHECK-NEXT: br i1 [[TOBOOL]], label [[COND_TRUE:%.*]], label [[COND_FALSE33:%.*]]
; CHECK: cond_true:
-; CHECK-NEXT: store i32 0, i32* [[Z]], align 4
+; CHECK-NEXT: store i32 0, ptr [[Z]], align 4
; CHECK-NEXT: br label [[BB:%.*]]
; CHECK: bb:
-; CHECK-NEXT: [[TMP:%.*]] = load i32, i32* [[Z]], align 4
+; CHECK-NEXT: [[TMP:%.*]] = load i32, ptr [[Z]], align 4
; CHECK-NEXT: [[TMP1:%.*]] = sub i32 [[TMP]], 16384
-; CHECK-NEXT: store i32 [[TMP1]], i32* [[Z]], align 4
-; CHECK-NEXT: [[TMP2:%.*]] = load i32, i32* [[I]], align 4
+; CHECK-NEXT: store i32 [[TMP1]], ptr [[Z]], align 4
+; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[I]], align 4
; CHECK-NEXT: [[TMP3:%.*]] = add i32 [[TMP2]], 1
-; CHECK-NEXT: store i32 [[TMP3]], i32* [[I]], align 4
-; CHECK-NEXT: [[TMP4:%.*]] = load i32, i32* [[I]], align 4
+; CHECK-NEXT: store i32 [[TMP3]], ptr [[I]], align 4
+; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[I]], align 4
; CHECK-NEXT: [[TMP5:%.*]] = icmp sgt i32 [[TMP4]], 262144
; CHECK-NEXT: [[TMP56:%.*]] = zext i1 [[TMP5]] to i8
; CHECK-NEXT: [[TOBOOL7:%.*]] = icmp ne i8 [[TMP56]], 0
@@ -32,7 +32,7 @@ define i32 @main() {
; CHECK-NEXT: call void @abort()
; CHECK-NEXT: unreachable
; CHECK: cond_next:
-; CHECK-NEXT: [[TMP9:%.*]] = load i32, i32* [[Z]], align 4
+; CHECK-NEXT: [[TMP9:%.*]] = load i32, ptr [[Z]], align 4
; CHECK-NEXT: [[TMP10:%.*]] = icmp ne i32 [[TMP9]], 0
; CHECK-NEXT: [[TMP1011:%.*]] = zext i1 [[TMP10]] to i8
; CHECK-NEXT: [[TOBOOL12:%.*]] = icmp ne i8 [[TMP1011]], 0
@@ -45,27 +45,27 @@ define i32 @main() {
; CHECK-NEXT: unreachable
;
entry:
- %retval = alloca i32, align 4 ; <i32*> [#uses=1]
- %i = alloca i32, align 4 ; <i32*> [#uses=7]
- %z = alloca i32, align 4 ; <i32*> [#uses=4]
- %z16 = alloca i32, align 4 ; <i32*> [#uses=4]
+ %retval = alloca i32, align 4 ; <ptr> [#uses=1]
+ %i = alloca i32, align 4 ; <ptr> [#uses=7]
+ %z = alloca i32, align 4 ; <ptr> [#uses=4]
+ %z16 = alloca i32, align 4 ; <ptr> [#uses=4]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- store i32 0, i32* %i
+ store i32 0, ptr %i
%toBool = icmp ne i8 1, 0 ; <i1> [#uses=1]
br i1 %toBool, label %cond_true, label %cond_false
cond_true: ; preds = %entry
- store i32 0, i32* %z
+ store i32 0, ptr %z
br label %bb
bb: ; preds = %cond_next, %cond_true
- %tmp = load i32, i32* %z ; <i32> [#uses=1]
+ %tmp = load i32, ptr %z ; <i32> [#uses=1]
%tmp1 = sub i32 %tmp, 16384 ; <i32> [#uses=1]
- store i32 %tmp1, i32* %z
- %tmp2 = load i32, i32* %i ; <i32> [#uses=1]
+ store i32 %tmp1, ptr %z
+ %tmp2 = load i32, ptr %i ; <i32> [#uses=1]
%tmp3 = add i32 %tmp2, 1 ; <i32> [#uses=1]
- store i32 %tmp3, i32* %i
- %tmp4 = load i32, i32* %i ; <i32> [#uses=1]
+ store i32 %tmp3, ptr %i
+ %tmp4 = load i32, ptr %i ; <i32> [#uses=1]
%tmp5 = icmp sgt i32 %tmp4, 262144 ; <i1> [#uses=1]
%tmp56 = zext i1 %tmp5 to i8 ; <i8> [#uses=1]
%toBool7 = icmp ne i8 %tmp56, 0 ; <i1> [#uses=1]
@@ -76,7 +76,7 @@ cond_true8: ; preds = %bb
unreachable
cond_next: ; preds = %bb
- %tmp9 = load i32, i32* %z ; <i32> [#uses=1]
+ %tmp9 = load i32, ptr %z ; <i32> [#uses=1]
%tmp10 = icmp ne i32 %tmp9, 0 ; <i1> [#uses=1]
%tmp1011 = zext i1 %tmp10 to i8 ; <i8> [#uses=1]
%toBool12 = icmp ne i8 %tmp1011, 0 ; <i1> [#uses=1]
@@ -91,17 +91,17 @@ cond_false: ; preds = %entry
br i1 %toBool14, label %cond_true15, label %cond_false33
cond_true15: ; preds = %cond_false
- store i32 0, i32* %z16
+ store i32 0, ptr %z16
br label %bb17
bb17: ; preds = %cond_next27, %cond_true15
- %tmp18 = load i32, i32* %z16 ; <i32> [#uses=1]
+ %tmp18 = load i32, ptr %z16 ; <i32> [#uses=1]
%tmp19 = sub i32 %tmp18, 16384 ; <i32> [#uses=1]
- store i32 %tmp19, i32* %z16
- %tmp20 = load i32, i32* %i ; <i32> [#uses=1]
+ store i32 %tmp19, ptr %z16
+ %tmp20 = load i32, ptr %i ; <i32> [#uses=1]
%tmp21 = add i32 %tmp20, 1 ; <i32> [#uses=1]
- store i32 %tmp21, i32* %i
- %tmp22 = load i32, i32* %i ; <i32> [#uses=1]
+ store i32 %tmp21, ptr %i
+ %tmp22 = load i32, ptr %i ; <i32> [#uses=1]
%tmp23 = icmp sgt i32 %tmp22, 262144 ; <i1> [#uses=1]
%tmp2324 = zext i1 %tmp23 to i8 ; <i8> [#uses=1]
%toBool25 = icmp ne i8 %tmp2324, 0 ; <i1> [#uses=1]
@@ -112,7 +112,7 @@ cond_true26: ; preds = %bb17
unreachable
cond_next27: ; preds = %bb17
- %tmp28 = load i32, i32* %z16 ; <i32> [#uses=1]
+ %tmp28 = load i32, ptr %z16 ; <i32> [#uses=1]
%tmp29 = icmp ne i32 %tmp28, 0 ; <i1> [#uses=1]
%tmp2930 = zext i1 %tmp29 to i8 ; <i8> [#uses=1]
%toBool31 = icmp ne i8 %tmp2930, 0 ; <i1> [#uses=1]
@@ -133,7 +133,7 @@ cond_next35: ; preds = %cond_next34
br label %return
return: ; preds = %cond_next35
- %retval36 = load i32, i32* %retval ; <i32> [#uses=1]
+ %retval36 = load i32, ptr %retval ; <i32> [#uses=1]
ret i32 %retval36
}
diff --git a/llvm/test/Transforms/SimplifyCFG/lifetime-landingpad.ll b/llvm/test/Transforms/SimplifyCFG/lifetime-landingpad.ll
index 977bfc8a73b16..036b908d15504 100644
--- a/llvm/test/Transforms/SimplifyCFG/lifetime-landingpad.ll
+++ b/llvm/test/Transforms/SimplifyCFG/lifetime-landingpad.ll
@@ -1,33 +1,33 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
; CHECK-LABEL: define void @foo
-define void @foo() personality i32 (...)* @__gxx_personality_v0 {
+define void @foo() personality ptr @__gxx_personality_v0 {
entry:
; CHECK: alloca i8
-; CHECK: call void @llvm.lifetime.start.p0i8
+; CHECK: call void @llvm.lifetime.start.p0
; CHECK: call void @bar()
-; CHECK: call void @llvm.lifetime.end.p0i8
+; CHECK: call void @llvm.lifetime.end.p0
; CHECK: ret void
%a = alloca i8
- call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %a) nounwind
+ call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %a) nounwind
invoke void @bar() to label %invoke.cont unwind label %lpad
invoke.cont:
- call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %a) nounwind
+ call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %a) nounwind
ret void
lpad:
; CHECK-NOT: landingpad
- %b = landingpad { i8*, i32 }
+ %b = landingpad { ptr, i32 }
cleanup
- call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %a) nounwind
- resume { i8*, i32 } %b
+ call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %a) nounwind
+ resume { ptr, i32 } %b
}
declare void @bar()
-declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) nounwind
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) nounwind
-declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) nounwind
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) nounwind
declare i32 @__gxx_personality_v0(...)
diff --git a/llvm/test/Transforms/SimplifyCFG/lifetime.ll b/llvm/test/Transforms/SimplifyCFG/lifetime.ll
index 3fdad2df4fc1c..d6bba2c3c2e9a 100644
--- a/llvm/test/Transforms/SimplifyCFG/lifetime.ll
+++ b/llvm/test/Transforms/SimplifyCFG/lifetime.ll
@@ -10,11 +10,11 @@
define void @foo(i1 %x) {
entry:
%a = alloca i8
- call void @llvm.lifetime.start.p0i8(i64 -1, i8* %a) nounwind
+ call void @llvm.lifetime.start.p0(i64 -1, ptr %a) nounwind
br i1 %x, label %bb0, label %bb1
bb0:
- call void @llvm.lifetime.end.p0i8(i64 -1, i8* %a) nounwind
+ call void @llvm.lifetime.end.p0(i64 -1, ptr %a) nounwind
br label %bb1
bb1:
@@ -24,6 +24,6 @@ bb1:
declare void @f()
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) nounwind
diff --git a/llvm/test/Transforms/SimplifyCFG/merge-cond-stores-2.ll b/llvm/test/Transforms/SimplifyCFG/merge-cond-stores-2.ll
index 2fd1011527984..e16cbae9e0edf 100644
--- a/llvm/test/Transforms/SimplifyCFG/merge-cond-stores-2.ll
+++ b/llvm/test/Transforms/SimplifyCFG/merge-cond-stores-2.ll
@@ -8,10 +8,10 @@ target triple = "armv7--linux-gnueabihf"
; There should be no additional PHIs created at all. The store should be on its own in a predicated
; block and there should be no PHIs.
-define i32 @f(i32* %b) {
+define i32 @f(ptr %b) {
; CHECK-LABEL: @f(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[B:%.*]], align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[B:%.*]], align 4
; CHECK-NEXT: [[AND:%.*]] = and i32 [[TMP0]], 1
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[AND]], 0
; CHECK-NEXT: [[OR:%.*]] = or i32 [[TMP0]], -2147483648
@@ -137,20 +137,20 @@ define i32 @f(i32* %b) {
; CHECK-NEXT: [[TMP61:%.*]] = or i1 [[TMP60]], [[TMP59]]
; CHECK-NEXT: br i1 [[TMP61]], label [[TMP62:%.*]], label [[TMP63:%.*]]
; CHECK: 62:
-; CHECK-NEXT: store i32 [[SPEC_SELECT13]], i32* [[B]], align 4
+; CHECK-NEXT: store i32 [[SPEC_SELECT13]], ptr [[B]], align 4
; CHECK-NEXT: br label [[TMP63]]
; CHECK: 63:
; CHECK-NEXT: ret i32 0
;
entry:
- %0 = load i32, i32* %b, align 4
+ %0 = load i32, ptr %b, align 4
%and = and i32 %0, 1
%tobool = icmp eq i32 %and, 0
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %entry
%or = or i32 %0, -2147483648
- store i32 %or, i32* %b, align 4
+ store i32 %or, ptr %b, align 4
br label %if.end
if.end: ; preds = %entry, %if.then
@@ -161,7 +161,7 @@ if.end: ; preds = %entry, %if.then
if.then3: ; preds = %if.end
%or4 = or i32 %1, 1073741824
- store i32 %or4, i32* %b, align 4
+ store i32 %or4, ptr %b, align 4
br label %if.end5
if.end5: ; preds = %if.end, %if.then3
@@ -172,7 +172,7 @@ if.end5: ; preds = %if.end, %if.then3
if.then8: ; preds = %if.end5
%or9 = or i32 %2, 536870912
- store i32 %or9, i32* %b, align 4
+ store i32 %or9, ptr %b, align 4
br label %if.end10
if.end10: ; preds = %if.end5, %if.then8
@@ -183,7 +183,7 @@ if.end10: ; preds = %if.end5, %if.then8
if.then13: ; preds = %if.end10
%or14 = or i32 %3, 268435456
- store i32 %or14, i32* %b, align 4
+ store i32 %or14, ptr %b, align 4
br label %if.end15
if.end15: ; preds = %if.end10, %if.then13
@@ -194,7 +194,7 @@ if.end15: ; preds = %if.end10, %if.then1
if.then18: ; preds = %if.end15
%or19 = or i32 %4, 134217728
- store i32 %or19, i32* %b, align 4
+ store i32 %or19, ptr %b, align 4
br label %if.end20
if.end20: ; preds = %if.end15, %if.then18
@@ -205,7 +205,7 @@ if.end20: ; preds = %if.end15, %if.then1
if.then23: ; preds = %if.end20
%or24 = or i32 %5, 67108864
- store i32 %or24, i32* %b, align 4
+ store i32 %or24, ptr %b, align 4
br label %if.end25
if.end25: ; preds = %if.end20, %if.then23
@@ -216,7 +216,7 @@ if.end25: ; preds = %if.end20, %if.then2
if.then28: ; preds = %if.end25
%or29 = or i32 %6, 33554432
- store i32 %or29, i32* %b, align 4
+ store i32 %or29, ptr %b, align 4
br label %if.end30
if.end30: ; preds = %if.end25, %if.then28
@@ -227,7 +227,7 @@ if.end30: ; preds = %if.end25, %if.then2
if.then33: ; preds = %if.end30
%or34 = or i32 %7, 8388608
- store i32 %or34, i32* %b, align 4
+ store i32 %or34, ptr %b, align 4
br label %if.end35
if.end35: ; preds = %if.end30, %if.then33
@@ -238,7 +238,7 @@ if.end35: ; preds = %if.end30, %if.then3
if.then38: ; preds = %if.end35
%or39 = or i32 %8, 4194304
- store i32 %or39, i32* %b, align 4
+ store i32 %or39, ptr %b, align 4
br label %if.end40
if.end40: ; preds = %if.end35, %if.then38
@@ -249,7 +249,7 @@ if.end40: ; preds = %if.end35, %if.then3
if.then43: ; preds = %if.end40
%or44 = or i32 %9, 2097152
- store i32 %or44, i32* %b, align 4
+ store i32 %or44, ptr %b, align 4
br label %if.end45
if.end45: ; preds = %if.end40, %if.then43
@@ -260,7 +260,7 @@ if.end45: ; preds = %if.end40, %if.then4
if.then48: ; preds = %if.end45
%or49 = or i32 %10, 1048576
- store i32 %or49, i32* %b, align 4
+ store i32 %or49, ptr %b, align 4
br label %if.end50
if.end50: ; preds = %if.end45, %if.then48
@@ -271,7 +271,7 @@ if.end50: ; preds = %if.end45, %if.then4
if.then53: ; preds = %if.end50
%or54 = or i32 %11, 524288
- store i32 %or54, i32* %b, align 4
+ store i32 %or54, ptr %b, align 4
br label %if.end55
if.end55: ; preds = %if.end50, %if.then53
@@ -282,7 +282,7 @@ if.end55: ; preds = %if.end50, %if.then5
if.then58: ; preds = %if.end55
%or59 = or i32 %12, 262144
- store i32 %or59, i32* %b, align 4
+ store i32 %or59, ptr %b, align 4
br label %if.end60
if.end60: ; preds = %if.end55, %if.then58
@@ -293,7 +293,7 @@ if.end60: ; preds = %if.end55, %if.then5
if.then63: ; preds = %if.end60
%or64 = or i32 %13, 131072
- store i32 %or64, i32* %b, align 4
+ store i32 %or64, ptr %b, align 4
br label %if.end65
if.end65: ; preds = %if.end60, %if.then63
@@ -304,7 +304,7 @@ if.end65: ; preds = %if.end60, %if.then6
if.then68: ; preds = %if.end65
%or69 = or i32 %14, 65536
- store i32 %or69, i32* %b, align 4
+ store i32 %or69, ptr %b, align 4
br label %if.end70
if.end70: ; preds = %if.end65, %if.then68
@@ -315,7 +315,7 @@ if.end70: ; preds = %if.end65, %if.then6
if.then73: ; preds = %if.end70
%or74 = or i32 %15, 16777216
- store i32 %or74, i32* %b, align 4
+ store i32 %or74, ptr %b, align 4
br label %if.end75
if.end75: ; preds = %if.end70, %if.then73
diff --git a/llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll b/llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
index 16bc4fecbf575..6a79043467f5d 100644
--- a/llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
+++ b/llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
@@ -2,7 +2,7 @@
; RUN: opt -passes=simplifycfg,instcombine -simplifycfg-require-and-preserve-domtree=1 < %s -simplifycfg-merge-cond-stores=true -simplifycfg-merge-cond-stores-aggressively=false -phi-node-folding-threshold=2 -S | FileCheck %s
; This test should succeed and end up if-converted.
-define void @test_simple(i32* %p, i32 %a, i32 %b) {
+define void @test_simple(ptr %p, i32 %a, i32 %b) {
; CHECK-LABEL: @test_simple(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = or i32 [[B:%.*]], [[A:%.*]]
@@ -11,7 +11,7 @@ define void @test_simple(i32* %p, i32 %a, i32 %b) {
; CHECK: 2:
; CHECK-NEXT: [[X2:%.*]] = icmp ne i32 [[B]], 0
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = zext i1 [[X2]] to i32
-; CHECK-NEXT: store i32 [[SPEC_SELECT]], i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 [[SPEC_SELECT]], ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[TMP3]]
; CHECK: 3:
; CHECK-NEXT: ret void
@@ -21,7 +21,7 @@ entry:
br i1 %x1, label %fallthrough, label %yes1
yes1:
- store i32 0, i32* %p
+ store i32 0, ptr %p
br label %fallthrough
fallthrough:
@@ -29,7 +29,7 @@ fallthrough:
br i1 %x2, label %end, label %yes2
yes2:
- store i32 1, i32* %p
+ store i32 1, ptr %p
br label %end
end:
@@ -37,7 +37,7 @@ end:
}
; This is the same as test_simple, but the branch target order has been swapped
-define void @test_simple_commuted(i32* %p, i32 %a, i32 %b) {
+define void @test_simple_commuted(ptr %p, i32 %a, i32 %b) {
; CHECK-LABEL: @test_simple_commuted(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[X1_NOT:%.*]] = icmp eq i32 [[A:%.*]], 0
@@ -46,7 +46,7 @@ define void @test_simple_commuted(i32* %p, i32 %a, i32 %b) {
; CHECK-NEXT: br i1 [[TMP0]], label [[TMP1:%.*]], label [[TMP2:%.*]]
; CHECK: 1:
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = zext i1 [[X2]] to i32
-; CHECK-NEXT: store i32 [[SPEC_SELECT]], i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 [[SPEC_SELECT]], ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[TMP2]]
; CHECK: 2:
; CHECK-NEXT: ret void
@@ -56,7 +56,7 @@ entry:
br i1 %x1, label %yes1, label %fallthrough
yes1:
- store i32 0, i32* %p
+ store i32 0, ptr %p
br label %fallthrough
fallthrough:
@@ -64,7 +64,7 @@ fallthrough:
br i1 %x2, label %yes2, label %end
yes2:
- store i32 1, i32* %p
+ store i32 1, ptr %p
br label %end
end:
@@ -72,7 +72,7 @@ end:
}
; This test should entirely fold away, leaving one large basic block.
-define void @test_recursive(i32* %p, i32 %a, i32 %b, i32 %c, i32 %d) {
+define void @test_recursive(ptr %p, i32 %a, i32 %b, i32 %c, i32 %d) {
; CHECK-LABEL: @test_recursive(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = or i32 [[B:%.*]], [[A:%.*]]
@@ -87,7 +87,7 @@ define void @test_recursive(i32* %p, i32 %a, i32 %b, i32 %c, i32 %d) {
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = zext i1 [[X2]] to i32
; CHECK-NEXT: [[SPEC_SELECT1:%.*]] = select i1 [[X3]], i32 [[SPEC_SELECT]], i32 2
; CHECK-NEXT: [[SPEC_SELECT2:%.*]] = select i1 [[X4]], i32 [[SPEC_SELECT1]], i32 3
-; CHECK-NEXT: store i32 [[SPEC_SELECT2]], i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 [[SPEC_SELECT2]], ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[TMP5]]
; CHECK: 5:
; CHECK-NEXT: ret void
@@ -97,7 +97,7 @@ entry:
br i1 %x1, label %fallthrough, label %yes1
yes1:
- store i32 0, i32* %p
+ store i32 0, ptr %p
br label %fallthrough
fallthrough:
@@ -105,7 +105,7 @@ fallthrough:
br i1 %x2, label %next, label %yes2
yes2:
- store i32 1, i32* %p
+ store i32 1, ptr %p
br label %next
next:
@@ -113,7 +113,7 @@ next:
br i1 %x3, label %fallthrough2, label %yes3
yes3:
- store i32 2, i32* %p
+ store i32 2, ptr %p
br label %fallthrough2
fallthrough2:
@@ -121,7 +121,7 @@ fallthrough2:
br i1 %x4, label %end, label %yes4
yes4:
- store i32 3, i32* %p
+ store i32 3, ptr %p
br label %end
@@ -131,7 +131,7 @@ end:
; The code in each diamond is too large - it won't be if-converted so our
; heuristics should say no.
-define void @test_not_ifconverted(i32* %p, i32 %a, i32 %b) {
+define void @test_not_ifconverted(ptr %p, i32 %a, i32 %b) {
; CHECK-LABEL: @test_not_ifconverted(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[X1:%.*]] = icmp eq i32 [[A:%.*]], 0
@@ -140,7 +140,7 @@ define void @test_not_ifconverted(i32* %p, i32 %a, i32 %b) {
; CHECK-NEXT: [[Y1:%.*]] = or i32 [[B:%.*]], 55
; CHECK-NEXT: [[Y2:%.*]] = add i32 [[Y1]], 24
; CHECK-NEXT: [[Y3:%.*]] = and i32 [[Y2]], 67
-; CHECK-NEXT: store i32 [[Y3]], i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 [[Y3]], ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[FALLTHROUGH]]
; CHECK: fallthrough:
; CHECK-NEXT: [[X2:%.*]] = icmp eq i32 [[B]], 0
@@ -149,7 +149,7 @@ define void @test_not_ifconverted(i32* %p, i32 %a, i32 %b) {
; CHECK-NEXT: [[Z1:%.*]] = or i32 [[A]], 55
; CHECK-NEXT: [[Z2:%.*]] = add i32 [[Z1]], 24
; CHECK-NEXT: [[Z3:%.*]] = and i32 [[Z2]], 67
-; CHECK-NEXT: store i32 [[Z3]], i32* [[P]], align 4
+; CHECK-NEXT: store i32 [[Z3]], ptr [[P]], align 4
; CHECK-NEXT: br label [[END]]
; CHECK: end:
; CHECK-NEXT: ret void
@@ -162,7 +162,7 @@ yes1:
%y1 = or i32 %b, 55
%y2 = add i32 %y1, 24
%y3 = and i32 %y2, 67
- store i32 %y3, i32* %p
+ store i32 %y3, ptr %p
br label %fallthrough
fallthrough:
@@ -173,7 +173,7 @@ yes2:
%z1 = or i32 %a, 55
%z2 = add i32 %z1, 24
%z3 = and i32 %z2, 67
- store i32 %z3, i32* %p
+ store i32 %z3, ptr %p
br label %end
end:
@@ -182,20 +182,20 @@ end:
; The store to %p clobbers the previous store, so if-converting this would
; be illegal.
-define void @test_aliasing1(i32* %p, i32 %a, i32 %b) {
+define void @test_aliasing1(ptr %p, i32 %a, i32 %b) {
; CHECK-LABEL: @test_aliasing1(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[X1:%.*]] = icmp eq i32 [[A:%.*]], 0
; CHECK-NEXT: br i1 [[X1]], label [[FALLTHROUGH:%.*]], label [[YES1:%.*]]
; CHECK: yes1:
-; CHECK-NEXT: store i32 0, i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 0, ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[FALLTHROUGH]]
; CHECK: fallthrough:
-; CHECK-NEXT: [[Y1:%.*]] = load i32, i32* [[P]], align 4
+; CHECK-NEXT: [[Y1:%.*]] = load i32, ptr [[P]], align 4
; CHECK-NEXT: [[X2:%.*]] = icmp eq i32 [[Y1]], 0
; CHECK-NEXT: br i1 [[X2]], label [[END:%.*]], label [[YES2:%.*]]
; CHECK: yes2:
-; CHECK-NEXT: store i32 1, i32* [[P]], align 4
+; CHECK-NEXT: store i32 1, ptr [[P]], align 4
; CHECK-NEXT: br label [[END]]
; CHECK: end:
; CHECK-NEXT: ret void
@@ -205,16 +205,16 @@ entry:
br i1 %x1, label %fallthrough, label %yes1
yes1:
- store i32 0, i32* %p
+ store i32 0, ptr %p
br label %fallthrough
fallthrough:
- %y1 = load i32, i32* %p
+ %y1 = load i32, ptr %p
%x2 = icmp eq i32 %y1, 0
br i1 %x2, label %end, label %yes2
yes2:
- store i32 1, i32* %p
+ store i32 1, ptr %p
br label %end
end:
@@ -222,20 +222,20 @@ end:
}
; The load from %q aliases with %p, so if-converting this would be illegal.
-define void @test_aliasing2(i32* %p, i32* %q, i32 %a, i32 %b) {
+define void @test_aliasing2(ptr %p, ptr %q, i32 %a, i32 %b) {
; CHECK-LABEL: @test_aliasing2(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[X1:%.*]] = icmp eq i32 [[A:%.*]], 0
; CHECK-NEXT: br i1 [[X1]], label [[FALLTHROUGH:%.*]], label [[YES1:%.*]]
; CHECK: yes1:
-; CHECK-NEXT: store i32 0, i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 0, ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[FALLTHROUGH]]
; CHECK: fallthrough:
-; CHECK-NEXT: [[Y1:%.*]] = load i32, i32* [[Q:%.*]], align 4
+; CHECK-NEXT: [[Y1:%.*]] = load i32, ptr [[Q:%.*]], align 4
; CHECK-NEXT: [[X2:%.*]] = icmp eq i32 [[Y1]], 0
; CHECK-NEXT: br i1 [[X2]], label [[END:%.*]], label [[YES2:%.*]]
; CHECK: yes2:
-; CHECK-NEXT: store i32 1, i32* [[P]], align 4
+; CHECK-NEXT: store i32 1, ptr [[P]], align 4
; CHECK-NEXT: br label [[END]]
; CHECK: end:
; CHECK-NEXT: ret void
@@ -245,16 +245,16 @@ entry:
br i1 %x1, label %fallthrough, label %yes1
yes1:
- store i32 0, i32* %p
+ store i32 0, ptr %p
br label %fallthrough
fallthrough:
- %y1 = load i32, i32* %q
+ %y1 = load i32, ptr %q
%x2 = icmp eq i32 %y1, 0
br i1 %x2, label %end, label %yes2
yes2:
- store i32 1, i32* %p
+ store i32 1, ptr %p
br label %end
end:
@@ -264,7 +264,7 @@ end:
declare void @f()
; This should get if-converted.
-define i32 @test_diamond_simple(i32* %p, i32* %q, i32 %a, i32 %b) {
+define i32 @test_diamond_simple(ptr %p, ptr %q, i32 %a, i32 %b) {
; CHECK-LABEL: @test_diamond_simple(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[X2:%.*]] = icmp eq i32 [[B:%.*]], 0
@@ -274,7 +274,7 @@ define i32 @test_diamond_simple(i32* %p, i32* %q, i32 %a, i32 %b) {
; CHECK: 2:
; CHECK-NEXT: [[NOT_X2:%.*]] = xor i1 [[X2]], true
; CHECK-NEXT: [[SIMPLIFYCFG_MERGE:%.*]] = zext i1 [[NOT_X2]] to i32
-; CHECK-NEXT: store i32 [[SIMPLIFYCFG_MERGE]], i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 [[SIMPLIFYCFG_MERGE]], ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[TMP3]]
; CHECK: 3:
; CHECK-NEXT: [[Z4:%.*]] = select i1 [[X2]], i32 0, i32 3
@@ -285,7 +285,7 @@ entry:
br i1 %x1, label %no1, label %yes1
yes1:
- store i32 0, i32* %p
+ store i32 0, ptr %p
br label %fallthrough
no1:
@@ -298,7 +298,7 @@ fallthrough:
br i1 %x2, label %no2, label %yes2
yes2:
- store i32 1, i32* %p
+ store i32 1, ptr %p
br label %end
no2:
@@ -313,13 +313,13 @@ end:
; Now there is a call to f() in the bottom branch. The store in the first
; branch would now be reordered with respect to the call if we if-converted,
; so we must not.
-define i32 @test_diamond_alias3(i32* %p, i32* %q, i32 %a, i32 %b) {
+define i32 @test_diamond_alias3(ptr %p, ptr %q, i32 %a, i32 %b) {
; CHECK-LABEL: @test_diamond_alias3(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[X1:%.*]] = icmp eq i32 [[A:%.*]], 0
; CHECK-NEXT: br i1 [[X1]], label [[NO1:%.*]], label [[YES1:%.*]]
; CHECK: yes1:
-; CHECK-NEXT: store i32 0, i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 0, ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[FALLTHROUGH:%.*]]
; CHECK: no1:
; CHECK-NEXT: call void @f()
@@ -330,7 +330,7 @@ define i32 @test_diamond_alias3(i32* %p, i32* %q, i32 %a, i32 %b) {
; CHECK-NEXT: [[X2:%.*]] = icmp eq i32 [[B]], 0
; CHECK-NEXT: br i1 [[X2]], label [[NO2:%.*]], label [[YES2:%.*]]
; CHECK: yes2:
-; CHECK-NEXT: store i32 1, i32* [[P]], align 4
+; CHECK-NEXT: store i32 1, ptr [[P]], align 4
; CHECK-NEXT: br label [[END:%.*]]
; CHECK: no2:
; CHECK-NEXT: call void @f()
@@ -345,7 +345,7 @@ entry:
br i1 %x1, label %no1, label %yes1
yes1:
- store i32 0, i32* %p
+ store i32 0, ptr %p
br label %fallthrough
no1:
@@ -359,7 +359,7 @@ fallthrough:
br i1 %x2, label %no2, label %yes2
yes2:
- store i32 1, i32* %p
+ store i32 1, ptr %p
br label %end
no2:
@@ -373,7 +373,7 @@ end:
}
; This test has an outer if over the two triangles. This requires creating a new BB to hold the store.
-define void @test_outer_if(i32* %p, i32 %a, i32 %b, i32 %c) {
+define void @test_outer_if(ptr %p, i32 %a, i32 %b, i32 %c) {
; CHECK-LABEL: @test_outer_if(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[X3:%.*]] = icmp eq i32 [[C:%.*]], 0
@@ -385,7 +385,7 @@ define void @test_outer_if(i32* %p, i32 %a, i32 %b, i32 %c) {
; CHECK: 2:
; CHECK-NEXT: [[X2:%.*]] = icmp ne i32 [[B]], 0
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = zext i1 [[X2]] to i32
-; CHECK-NEXT: store i32 [[SPEC_SELECT]], i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 [[SPEC_SELECT]], ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[END]]
; CHECK: end:
; CHECK-NEXT: ret void
@@ -397,13 +397,13 @@ continue:
%x1 = icmp eq i32 %a, 0
br i1 %x1, label %fallthrough, label %yes1
yes1:
- store i32 0, i32* %p
+ store i32 0, ptr %p
br label %fallthrough
fallthrough:
%x2 = icmp eq i32 %b, 0
br i1 %x2, label %end, label %yes2
yes2:
- store i32 1, i32* %p
+ store i32 1, ptr %p
br label %end
end:
ret void
diff --git a/llvm/test/Transforms/SimplifyCFG/merge-deopt-bundle-constants.ll b/llvm/test/Transforms/SimplifyCFG/merge-deopt-bundle-constants.ll
index 143d62be9b276..27c6d7e3bbf5a 100644
--- a/llvm/test/Transforms/SimplifyCFG/merge-deopt-bundle-constants.ll
+++ b/llvm/test/Transforms/SimplifyCFG/merge-deopt-bundle-constants.ll
@@ -4,18 +4,17 @@
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:1-p2:32:8:8:32-ni:2"
target triple = "x86_64-unknown-linux-gnu"
-define void @test_01(i1 %cond) gc "statepoint-example" personality i32* ()* @zot {
+define void @test_01(i1 %cond) gc "statepoint-example" personality ptr @zot {
; CHECK-LABEL: @test_01(
; CHECK-NEXT: bb:
; CHECK-NEXT: [[DOT:%.*]] = select i1 [[COND:%.*]], i32 0, i32 1
-; CHECK-NEXT: [[TMP4:%.*]] = call i8* @wibble()
-; CHECK-NEXT: [[TMP5:%.*]] = bitcast i8* [[TMP4]] to i8 addrspace(1)* (i8 addrspace(1)*)*
-; CHECK-NEXT: [[TMP0:%.*]] = invoke align 8 dereferenceable_or_null(8) i8 addrspace(1)* [[TMP5]](i8 addrspace(1)* undef) [ "deopt"(i32 [[DOT]]) ]
+; CHECK-NEXT: [[TMP4:%.*]] = call ptr @wibble()
+; CHECK-NEXT: [[TMP0:%.*]] = invoke align 8 dereferenceable_or_null(8) ptr addrspace(1) [[TMP4]](ptr addrspace(1) undef) [ "deopt"(i32 [[DOT]]) ]
; CHECK-NEXT: to label [[BB8_CONT:%.*]] unwind label [[BB13:%.*]]
; CHECK: bb8.cont:
; CHECK-NEXT: unreachable
; CHECK: bb13:
-; CHECK-NEXT: [[TMP14:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[TMP14:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: ret void
;
@@ -26,40 +25,37 @@ bb1: ; preds = %bb13
ret void
bb3: ; preds = %bb
- %tmp4 = call i8* @wibble()
- %tmp5 = bitcast i8* %tmp4 to i8 addrspace(1)* (i8 addrspace(1)*)*
- %tmp6 = invoke align 8 dereferenceable_or_null(8) i8 addrspace(1)* %tmp5(i8 addrspace(1)* undef) [ "deopt"(i32 0) ]
+ %tmp4 = call ptr @wibble()
+ %tmp6 = invoke align 8 dereferenceable_or_null(8) ptr addrspace(1) %tmp4(ptr addrspace(1) undef) [ "deopt"(i32 0) ]
to label %bb7 unwind label %bb13
bb7: ; preds = %bb3
unreachable
bb8: ; preds = %bb
- %tmp9 = call i8* @wibble()
- %tmp10 = bitcast i8* %tmp9 to i8 addrspace(1)* (i8 addrspace(1)*)*
- %tmp11 = invoke align 8 dereferenceable_or_null(8) i8 addrspace(1)* %tmp10(i8 addrspace(1)* undef) [ "deopt"(i32 1) ]
+ %tmp9 = call ptr @wibble()
+ %tmp11 = invoke align 8 dereferenceable_or_null(8) ptr addrspace(1) %tmp9(ptr addrspace(1) undef) [ "deopt"(i32 1) ]
to label %bb12 unwind label %bb13
bb12: ; preds = %bb8
unreachable
bb13: ; preds = %bb8, %bb3
- %tmp14 = landingpad { i8*, i32 }
+ %tmp14 = landingpad { ptr, i32 }
cleanup
br label %bb1
}
-define void @test_02(i1 %cond) gc "statepoint-example" personality i32* ()* @zot {
+define void @test_02(i1 %cond) gc "statepoint-example" personality ptr @zot {
; CHECK-LABEL: @test_02(
; CHECK-NEXT: bb:
-; CHECK-NEXT: [[TMP4:%.*]] = call i8* @wibble()
-; CHECK-NEXT: [[TMP5:%.*]] = bitcast i8* [[TMP4]] to i8 addrspace(1)* (i8 addrspace(1)*)*
-; CHECK-NEXT: [[TMP0:%.*]] = invoke align 8 dereferenceable_or_null(8) i8 addrspace(1)* [[TMP5]](i8 addrspace(1)* undef) [ "deopt"(i32 0) ]
+; CHECK-NEXT: [[TMP4:%.*]] = call ptr @wibble()
+; CHECK-NEXT: [[TMP0:%.*]] = invoke align 8 dereferenceable_or_null(8) ptr addrspace(1) [[TMP4]](ptr addrspace(1) undef) [ "deopt"(i32 0) ]
; CHECK-NEXT: to label [[BB8_CONT:%.*]] unwind label [[BB13:%.*]]
; CHECK: bb8.cont:
; CHECK-NEXT: unreachable
; CHECK: bb13:
-; CHECK-NEXT: [[TMP14:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[TMP14:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: ret void
;
@@ -70,30 +66,28 @@ bb1: ; preds = %bb13
ret void
bb3: ; preds = %bb
- %tmp4 = call i8* @wibble()
- %tmp5 = bitcast i8* %tmp4 to i8 addrspace(1)* (i8 addrspace(1)*)*
- %tmp6 = invoke align 8 dereferenceable_or_null(8) i8 addrspace(1)* %tmp5(i8 addrspace(1)* undef) [ "deopt"(i32 0) ]
+ %tmp4 = call ptr @wibble()
+ %tmp6 = invoke align 8 dereferenceable_or_null(8) ptr addrspace(1) %tmp4(ptr addrspace(1) undef) [ "deopt"(i32 0) ]
to label %bb7 unwind label %bb13
bb7: ; preds = %bb3
unreachable
bb8: ; preds = %bb
- %tmp9 = call i8* @wibble()
- %tmp10 = bitcast i8* %tmp9 to i8 addrspace(1)* (i8 addrspace(1)*)*
- %tmp11 = invoke align 8 dereferenceable_or_null(8) i8 addrspace(1)* %tmp10(i8 addrspace(1)* undef) [ "deopt"(i32 0) ]
+ %tmp9 = call ptr @wibble()
+ %tmp11 = invoke align 8 dereferenceable_or_null(8) ptr addrspace(1) %tmp9(ptr addrspace(1) undef) [ "deopt"(i32 0) ]
to label %bb12 unwind label %bb13
bb12: ; preds = %bb8
unreachable
bb13: ; preds = %bb8, %bb3
- %tmp14 = landingpad { i8*, i32 }
+ %tmp14 = landingpad { ptr, i32 }
cleanup
br label %bb1
}
-declare i32* @zot()
+declare ptr @zot()
-declare i8* @wibble()
+declare ptr @wibble()
diff --git a/llvm/test/Transforms/SimplifyCFG/multiple-phis.ll b/llvm/test/Transforms/SimplifyCFG/multiple-phis.ll
index 301e3ad031274..eae851f2ddada 100644
--- a/llvm/test/Transforms/SimplifyCFG/multiple-phis.ll
+++ b/llvm/test/Transforms/SimplifyCFG/multiple-phis.ll
@@ -6,7 +6,7 @@
; the other behind, because that still requires a branch. If
; SimplifyCFG if-converts one of the phis, it should do both.
-define i32 @upper_bound(i32* %r, i32 %high, i32 %k) nounwind {
+define i32 @upper_bound(ptr %r, i32 %high, i32 %k) nounwind {
; CHECK-LABEL: @upper_bound(
; CHECK-NEXT: entry:
; CHECK-NEXT: br label [[WHILE_COND:%.*]]
@@ -19,8 +19,8 @@ define i32 @upper_bound(i32* %r, i32 %high, i32 %k) nounwind {
; CHECK-NEXT: [[ADD:%.*]] = add i32 [[LOW_0]], [[HIGH_ADDR_0]]
; CHECK-NEXT: [[DIV:%.*]] = udiv i32 [[ADD]], 2
; CHECK-NEXT: [[IDXPROM:%.*]] = zext i32 [[DIV]] to i64
-; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, i32* [[R:%.*]], i64 [[IDXPROM]]
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[ARRAYIDX]], align 4
+; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[R:%.*]], i64 [[IDXPROM]]
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[ARRAYIDX]], align 4
; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i32 [[K:%.*]], [[TMP0]]
; CHECK-NEXT: [[ADD2:%.*]] = add i32 [[DIV]], 1
; CHECK-NEXT: [[SPEC_SELECT]] = select i1 [[CMP1]], i32 [[DIV]], i32 [[HIGH_ADDR_0]]
@@ -42,8 +42,8 @@ while.body: ; preds = %while.cond
%add = add i32 %low.0, %high.addr.0
%div = udiv i32 %add, 2
%idxprom = zext i32 %div to i64
- %arrayidx = getelementptr inbounds i32, i32* %r, i64 %idxprom
- %0 = load i32, i32* %arrayidx
+ %arrayidx = getelementptr inbounds i32, ptr %r, i64 %idxprom
+ %0 = load i32, ptr %arrayidx
%cmp1 = icmp ult i32 %k, %0
br i1 %cmp1, label %if.then, label %if.else
diff --git a/llvm/test/Transforms/SimplifyCFG/no-md-sink.ll b/llvm/test/Transforms/SimplifyCFG/no-md-sink.ll
index 0072feb292f11..29d8caa01e143 100644
--- a/llvm/test/Transforms/SimplifyCFG/no-md-sink.ll
+++ b/llvm/test/Transforms/SimplifyCFG/no-md-sink.ll
@@ -2,11 +2,11 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -sink-common-insts -S | FileCheck %s
; RUN: opt < %s -passes='simplifycfg<sink-common-insts>' -S | FileCheck %s
-define i1 @test1(i1 zeroext %flag, i8* %y) #0 {
+define i1 @test1(i1 zeroext %flag, ptr %y) #0 {
; CHECK-LABEL: @test1(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[S:%.*]] = call i1 @llvm.type.test(i8* [[Y:%.*]], metadata [[META0:![0-9]+]])
-; CHECK-NEXT: [[R:%.*]] = call i1 @llvm.type.test(i8* [[Y]], metadata [[META1:![0-9]+]])
+; CHECK-NEXT: [[S:%.*]] = call i1 @llvm.type.test(ptr [[Y:%.*]], metadata [[META0:![0-9]+]])
+; CHECK-NEXT: [[R:%.*]] = call i1 @llvm.type.test(ptr [[Y]], metadata [[META1:![0-9]+]])
; CHECK-NEXT: [[T:%.*]] = select i1 [[FLAG:%.*]], i1 [[R]], i1 [[S]]
; CHECK-NEXT: ret i1 [[T]]
;
@@ -14,11 +14,11 @@ entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- %r = call i1 @llvm.type.test(i8* %y, metadata !0)
+ %r = call i1 @llvm.type.test(ptr %y, metadata !0)
br label %if.end
if.else:
- %s = call i1 @llvm.type.test(i8* %y, metadata !1)
+ %s = call i1 @llvm.type.test(ptr %y, metadata !1)
br label %if.end
if.end:
@@ -29,24 +29,24 @@ if.end:
!0 = !{i32 0, !"typeid1"}
!1 = !{i32 4, !"typeid1"}
-declare i1 @llvm.type.test(i8* %ptr, metadata %bitset) nounwind readnone
+declare i1 @llvm.type.test(ptr %ptr, metadata %bitset) nounwind readnone
-define i1 @test2(i1 zeroext %flag, i8* %y, i8* %z) #0 {
+define i1 @test2(i1 zeroext %flag, ptr %y, ptr %z) #0 {
; CHECK-LABEL: @test2(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[Y_Z:%.*]] = select i1 [[FLAG:%.*]], i8* [[Y:%.*]], i8* [[Z:%.*]]
-; CHECK-NEXT: [[S:%.*]] = call i1 @llvm.type.test(i8* [[Y_Z]], metadata [[META1]])
+; CHECK-NEXT: [[Y_Z:%.*]] = select i1 [[FLAG:%.*]], ptr [[Y:%.*]], ptr [[Z:%.*]]
+; CHECK-NEXT: [[S:%.*]] = call i1 @llvm.type.test(ptr [[Y_Z]], metadata [[META1]])
; CHECK-NEXT: ret i1 [[S]]
;
entry:
br i1 %flag, label %if.then, label %if.else
if.then:
- %r = call i1 @llvm.type.test(i8* %y, metadata !0)
+ %r = call i1 @llvm.type.test(ptr %y, metadata !0)
br label %if.end
if.else:
- %s = call i1 @llvm.type.test(i8* %z, metadata !0)
+ %s = call i1 @llvm.type.test(ptr %z, metadata !0)
br label %if.end
if.end:
diff --git a/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_asan.ll b/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_asan.ll
index 6e8045601422f..4dab4fa8ad412 100644
--- a/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_asan.ll
+++ b/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_asan.ll
@@ -7,7 +7,7 @@ define i32 @TestNoAsan(i32 %cond) nounwind readonly uwtable {
; CHECK-LABEL: @TestNoAsan(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[COND:%.*]], 0
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @g, align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @g, align 4
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[TOBOOL]], i32 0, i32 [[TMP0]]
; CHECK-NEXT: ret i32 [[SPEC_SELECT]]
;
@@ -16,7 +16,7 @@ entry:
br i1 %tobool, label %return, label %if.then
if.then: ; preds = %entry
- %0 = load i32, i32* @g, align 4
+ %0 = load i32, ptr @g, align 4
br label %return
return: ; preds = %entry, %if.then
@@ -30,7 +30,7 @@ define i32 @TestAsan(i32 %cond) nounwind readonly uwtable sanitize_address {
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[COND:%.*]], 0
; CHECK-NEXT: br i1 [[TOBOOL]], label [[RETURN:%.*]], label [[IF_THEN:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @g, align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @g, align 4
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: [[RETVAL:%.*]] = phi i32 [ [[TMP0]], [[IF_THEN]] ], [ 0, [[ENTRY:%.*]] ]
@@ -41,7 +41,7 @@ entry:
br i1 %tobool, label %return, label %if.then
if.then: ; preds = %entry
- %0 = load i32, i32* @g, align 4
+ %0 = load i32, ptr @g, align 4
br label %return
return: ; preds = %entry, %if.then
@@ -55,7 +55,7 @@ define i32 @TestHWAsan(i32 %cond) nounwind readonly uwtable sanitize_hwaddress {
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[COND:%.*]], 0
; CHECK-NEXT: br i1 [[TOBOOL]], label [[RETURN:%.*]], label [[IF_THEN:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @g, align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @g, align 4
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: [[RETVAL:%.*]] = phi i32 [ [[TMP0]], [[IF_THEN]] ], [ 0, [[ENTRY:%.*]] ]
@@ -66,7 +66,7 @@ entry:
br i1 %tobool, label %return, label %if.then
if.then: ; preds = %entry
- %0 = load i32, i32* @g, align 4
+ %0 = load i32, ptr @g, align 4
br label %return
return: ; preds = %entry, %if.then
diff --git a/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_tsan.ll b/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_tsan.ll
index ddea05260154d..f201b4a5acea4 100644
--- a/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_tsan.ll
+++ b/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_tsan.ll
@@ -7,7 +7,7 @@ define i32 @TestNoTsan(i32 %cond) nounwind readonly uwtable {
; CHECK-LABEL: @TestNoTsan(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[COND:%.*]], 0
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @g, align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @g, align 4
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[TOBOOL]], i32 0, i32 [[TMP0]]
; CHECK-NEXT: ret i32 [[SPEC_SELECT]]
;
@@ -16,7 +16,7 @@ entry:
br i1 %tobool, label %return, label %if.then
if.then: ; preds = %entry
- %0 = load i32, i32* @g, align 4
+ %0 = load i32, ptr @g, align 4
br label %return
return: ; preds = %entry, %if.then
@@ -30,7 +30,7 @@ define i32 @TestTsan(i32 %cond) nounwind readonly uwtable sanitize_thread {
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[COND:%.*]], 0
; CHECK-NEXT: br i1 [[TOBOOL]], label [[RETURN:%.*]], label [[IF_THEN:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @g, align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @g, align 4
; CHECK-NEXT: br label [[RETURN]]
; CHECK: return:
; CHECK-NEXT: [[RETVAL:%.*]] = phi i32 [ [[TMP0]], [[IF_THEN]] ], [ 0, [[ENTRY:%.*]] ]
@@ -41,7 +41,7 @@ entry:
br i1 %tobool, label %return, label %if.then
if.then: ; preds = %entry
- %0 = load i32, i32* @g, align 4
+ %0 = load i32, ptr @g, align 4
br label %return
return: ; preds = %entry, %if.then
diff --git a/llvm/test/Transforms/SimplifyCFG/nomerge.ll b/llvm/test/Transforms/SimplifyCFG/nomerge.ll
index 3c220ccdd18e6..04e98124c2cad 100644
--- a/llvm/test/Transforms/SimplifyCFG/nomerge.ll
+++ b/llvm/test/Transforms/SimplifyCFG/nomerge.ll
@@ -42,8 +42,8 @@ if.end3:
define void @hoist(i32 %i) {
entry:
%i.addr = alloca i32, align 4
- store i32 %i, i32* %i.addr, align 4
- %0 = load i32, i32* %i.addr, align 4
+ store i32 %i, ptr %i.addr, align 4
+ %0 = load i32, ptr %i.addr, align 4
%cmp = icmp eq i32 %0, 5
br i1 %cmp, label %if.then, label %if.else
@@ -52,7 +52,7 @@ if.then:
unreachable
if.else:
- %1 = load i32, i32* %i.addr, align 4
+ %1 = load i32, ptr %i.addr, align 4
%cmp1 = icmp eq i32 %i, 7
br i1 %cmp1, label %if.then2, label %if.end
diff --git a/llvm/test/Transforms/SimplifyCFG/nonintegral.ll b/llvm/test/Transforms/SimplifyCFG/nonintegral.ll
index 7880c6a5e6309..423ac4d1e69c1 100644
--- a/llvm/test/Transforms/SimplifyCFG/nonintegral.ll
+++ b/llvm/test/Transforms/SimplifyCFG/nonintegral.ll
@@ -2,27 +2,27 @@
target datalayout = "ni:1"
-define void @test_01(i64 addrspace(1)* align 8 %ptr) {
+define void @test_01(ptr addrspace(1) align 8 %ptr) {
; CHECK-LABEL: @test_01(
; CHECK-NOT: ptrtoint
-; CHECK-NEXT: icmp eq i64 addrspace(1)* %ptr, null
+; CHECK-NEXT: icmp eq ptr addrspace(1) %ptr, null
; CHECK-NOT: ptrtoint
- %cond1 = icmp eq i64 addrspace(1)* %ptr, null
- %cond2 = icmp eq i64 addrspace(1)* %ptr, null
+ %cond1 = icmp eq ptr addrspace(1) %ptr, null
+ %cond2 = icmp eq ptr addrspace(1) %ptr, null
br i1 %cond1, label %true1, label %false1
true1:
br i1 %cond2, label %true2, label %false2
false1:
- store i64 1, i64 addrspace(1)* %ptr, align 8
+ store i64 1, ptr addrspace(1) %ptr, align 8
br label %true1
true2:
- store i64 2, i64 addrspace(1)* %ptr, align 8
+ store i64 2, ptr addrspace(1) %ptr, align 8
ret void
false2:
- store i64 3, i64 addrspace(1)* %ptr, align 8
+ store i64 3, ptr addrspace(1) %ptr, align 8
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll b/llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll
index 31129d6452d75..eb2893c7ae677 100644
--- a/llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll
+++ b/llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll
@@ -4,13 +4,13 @@
define i32 @foo(i32 %x) optforfuzzing {
entry:
%x.addr = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- %0 = load i32, i32* %x.addr, align 4
+ store i32 %x, ptr %x.addr, align 4
+ %0 = load i32, ptr %x.addr, align 4
%cmp = icmp sgt i32 %0, 16
br i1 %cmp, label %land.rhs, label %land.end
land.rhs:
- %1 = load i32, i32* %x.addr, align 4
+ %1 = load i32, ptr %x.addr, align 4
%cmp1 = icmp slt i32 %1, 32
br label %land.end
@@ -30,13 +30,13 @@ land.end:
define i32 @bar(i32 %x) {
entry:
%x.addr = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- %0 = load i32, i32* %x.addr, align 4
+ store i32 %x, ptr %x.addr, align 4
+ %0 = load i32, ptr %x.addr, align 4
%cmp = icmp sgt i32 %0, 16
br i1 %cmp, label %land.rhs, label %land.end
land.rhs:
- %1 = load i32, i32* %x.addr, align 4
+ %1 = load i32, ptr %x.addr, align 4
%cmp1 = icmp slt i32 %1, 32
br label %land.end
diff --git a/llvm/test/Transforms/SimplifyCFG/phi-to-select-constexpr-icmp.ll b/llvm/test/Transforms/SimplifyCFG/phi-to-select-constexpr-icmp.ll
index 5b3ee4abd8cbc..307de76bc321b 100644
--- a/llvm/test/Transforms/SimplifyCFG/phi-to-select-constexpr-icmp.ll
+++ b/llvm/test/Transforms/SimplifyCFG/phi-to-select-constexpr-icmp.ll
@@ -1,14 +1,14 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S %s | FileCheck %s
- at glob = internal constant [5 x i8*] zeroinitializer, align 16
+ at glob = internal constant [5 x ptr] zeroinitializer, align 16
; Make sure simplifycfg does not crash when dealing with icmp constant
; expressions.
define i1 @test(i1 %c) {
; CHECK-LABEL: @test(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[C:%.*]], i1 false, i1 icmp ult (i8** getelementptr inbounds ([5 x i8*], [5 x i8*]* @glob, i64 0, i64 0), i8** inttoptr (i64 -40 to i8**))
+; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[C:%.*]], i1 false, i1 icmp ugt (ptr inttoptr (i64 -40 to ptr), ptr @glob)
; CHECK-NEXT: ret i1 [[SPEC_SELECT]]
;
entry:
@@ -18,6 +18,6 @@ if.then:
br label %exit
exit:
- %p = phi i1 [ false, %if.then ], [ icmp ult (i8** getelementptr inbounds ([5 x i8*], [5 x i8*]* @glob, i64 0, i64 0), i8** inttoptr (i64 -40 to i8**)), %entry ]
+ %p = phi i1 [ false, %if.then ], [ icmp ult (ptr @glob, ptr inttoptr (i64 -40 to ptr)), %entry ]
ret i1 %p
}
diff --git a/llvm/test/Transforms/SimplifyCFG/phi-undef-loadstore.ll b/llvm/test/Transforms/SimplifyCFG/phi-undef-loadstore.ll
index 7d7867f2be09b..5b5a44b6e3f81 100644
--- a/llvm/test/Transforms/SimplifyCFG/phi-undef-loadstore.ll
+++ b/llvm/test/Transforms/SimplifyCFG/phi-undef-loadstore.ll
@@ -2,7 +2,7 @@
declare void @bar() nounwind
-define i32 @test1(i32* %a, i32 %b, i32* %c, i32 %d) nounwind {
+define i32 @test1(ptr %a, i32 %b, ptr %c, i32 %d) nounwind {
entry:
%tobool = icmp eq i32 %b, 0
br i1 %tobool, label %if.else, label %if.then
@@ -20,18 +20,18 @@ if.then4: ; preds = %if.else
br label %if.end7
if.end7: ; preds = %if.else, %if.then4, %if.then
- %x.0 = phi i32* [ %a, %if.then ], [ %c, %if.then4 ], [ null, %if.else ]
- %tmp9 = load i32, i32* %x.0
+ %x.0 = phi ptr [ %a, %if.then ], [ %c, %if.then4 ], [ null, %if.else ]
+ %tmp9 = load i32, ptr %x.0
ret i32 %tmp9
; CHECK-LABEL: @test1(
; CHECK: if.else:
; CHECK: br label %if.end7
-; CHECK: phi i32* [ %a, %if.then ], [ %c, %if.else ]
+; CHECK: phi ptr [ %a, %if.then ], [ %c, %if.else ]
}
-define i32 @test1_no_null_opt(i32* %a, i32 %b, i32* %c, i32 %d) nounwind #0 {
+define i32 @test1_no_null_opt(ptr %a, i32 %b, ptr %c, i32 %d) nounwind #0 {
entry:
%tobool = icmp eq i32 %b, 0
br i1 %tobool, label %if.else, label %if.then
@@ -49,8 +49,8 @@ if.then4: ; preds = %if.else
br label %if.end7
if.end7: ; preds = %if.else, %if.then4, %if.then
- %x.0 = phi i32* [ %a, %if.then ], [ %c, %if.then4 ], [ null, %if.else ]
- %tmp9 = load i32, i32* %x.0
+ %x.0 = phi ptr [ %a, %if.then ], [ %c, %if.then4 ], [ null, %if.else ]
+ %tmp9 = load i32, ptr %x.0
ret i32 %tmp9
; CHECK-LABEL: @test1_no_null_opt(
@@ -59,10 +59,10 @@ if.end7: ; preds = %if.else, %if.then4,
; CHECK: if.then4:
; CHECK: br label %if.end7
; CHECK: if.end7:
-; CHECK-NEXT: phi i32* [ %a, %if.then ], [ %c, %if.then4 ], [ null, %if.else ]
+; CHECK-NEXT: phi ptr [ %a, %if.then ], [ %c, %if.then4 ], [ null, %if.else ]
}
-define i32 @test2(i32* %a, i32 %b, i32* %c, i32 %d) nounwind {
+define i32 @test2(ptr %a, i32 %b, ptr %c, i32 %d) nounwind {
entry:
%tobool = icmp eq i32 %b, 0
br i1 %tobool, label %if.else, label %if.then
@@ -80,8 +80,8 @@ if.then4: ; preds = %if.else
br label %if.end7
if.end7: ; preds = %if.else, %if.then4, %if.then
- %x.0 = phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
- %tmp9 = load i32, i32* %x.0
+ %x.0 = phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+ %tmp9 = load i32, ptr %x.0
ret i32 %tmp9
; CHECK-LABEL: @test2(
; CHECK: if.else:
@@ -90,7 +90,7 @@ if.end7: ; preds = %if.else, %if.then4,
; CHECK-NOT: phi
}
-define i32 @test2_no_null_opt(i32* %a, i32 %b, i32* %c, i32 %d) nounwind #0 {
+define i32 @test2_no_null_opt(ptr %a, i32 %b, ptr %c, i32 %d) nounwind #0 {
entry:
%tobool = icmp eq i32 %b, 0
br i1 %tobool, label %if.else, label %if.then
@@ -108,18 +108,18 @@ if.then4: ; preds = %if.else
br label %if.end7
if.end7: ; preds = %if.else, %if.then4, %if.then
- %x.0 = phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
- %tmp9 = load i32, i32* %x.0
+ %x.0 = phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+ %tmp9 = load i32, ptr %x.0
ret i32 %tmp9
; CHECK-LABEL: @test2_no_null_opt(
; CHECK: if.then:
; CHECK: if.else:
; CHECK: if.then4:
; CHECK: if.end7:
-; CHECK-NEXT: phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+; CHECK-NEXT: phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
}
-define i32 @test3(i32* %a, i32 %b, i32* %c, i32 %d) nounwind {
+define i32 @test3(ptr %a, i32 %b, ptr %c, i32 %d) nounwind {
entry:
%tobool = icmp eq i32 %b, 0
br i1 %tobool, label %if.else, label %if.then
@@ -137,16 +137,16 @@ if.then4: ; preds = %if.else
br label %if.end7
if.end7: ; preds = %if.else, %if.then4, %if.then
- %x.0 = phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+ %x.0 = phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
tail call void @bar() nounwind
- %tmp9 = load i32, i32* %x.0
+ %tmp9 = load i32, ptr %x.0
ret i32 %tmp9
; CHECK-LABEL: @test3(
; CHECK: if.end7:
-; CHECK: phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+; CHECK: phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
}
-define i32 @test3_no_null_opt(i32* %a, i32 %b, i32* %c, i32 %d) nounwind #0 {
+define i32 @test3_no_null_opt(ptr %a, i32 %b, ptr %c, i32 %d) nounwind #0 {
entry:
%tobool = icmp eq i32 %b, 0
br i1 %tobool, label %if.else, label %if.then
@@ -164,19 +164,19 @@ if.then4: ; preds = %if.else
br label %if.end7
if.end7: ; preds = %if.else, %if.then4, %if.then
- %x.0 = phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+ %x.0 = phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
tail call void @bar() nounwind
- %tmp9 = load i32, i32* %x.0
+ %tmp9 = load i32, ptr %x.0
ret i32 %tmp9
; CHECK-LABEL: @test3_no_null_opt(
; CHECK: if.then:
; CHECK: if.else:
; CHECK: if.then4:
; CHECK: if.end7:
-; CHECK-NEXT: phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+; CHECK-NEXT: phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
}
-define i32 @test4(i32* %a, i32 %b, i32* %c, i32 %d) nounwind {
+define i32 @test4(ptr %a, i32 %b, ptr %c, i32 %d) nounwind {
entry:
%tobool = icmp eq i32 %b, 0
br i1 %tobool, label %if.else, label %if.then
@@ -194,17 +194,17 @@ if.then4: ; preds = %if.else
br label %if.end7
if.end7: ; preds = %if.else, %if.then4, %if.then
- %x.0 = phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
- %gep = getelementptr i32, i32* %x.0, i32 10
- %tmp9 = load i32, i32* %gep
+ %x.0 = phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+ %gep = getelementptr i32, ptr %x.0, i32 10
+ %tmp9 = load i32, ptr %gep
%tmp10 = or i32 %tmp9, 1
- store i32 %tmp10, i32* %gep
+ store i32 %tmp10, ptr %gep
ret i32 %tmp9
; CHECK-LABEL: @test4(
; CHECK-NOT: phi
}
-define i32 @test4_no_null_opt(i32* %a, i32 %b, i32* %c, i32 %d) nounwind #0 {
+define i32 @test4_no_null_opt(ptr %a, i32 %b, ptr %c, i32 %d) nounwind #0 {
entry:
%tobool = icmp eq i32 %b, 0
br i1 %tobool, label %if.else, label %if.then
@@ -222,18 +222,18 @@ if.then4: ; preds = %if.else
br label %if.end7
if.end7: ; preds = %if.else, %if.then4, %if.then
- %x.0 = phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
- %gep = getelementptr i32, i32* %x.0, i32 10
- %tmp9 = load i32, i32* %gep
+ %x.0 = phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+ %gep = getelementptr i32, ptr %x.0, i32 10
+ %tmp9 = load i32, ptr %gep
%tmp10 = or i32 %tmp9, 1
- store i32 %tmp10, i32* %gep
+ store i32 %tmp10, ptr %gep
ret i32 %tmp9
; CHECK-LABEL: @test4_no_null_opt(
; CHECK: if.then:
; CHECK: if.else:
; CHECK: if.then4:
; CHECK: if.end7:
-; CHECK-NEXT: phi i32* [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
+; CHECK-NEXT: phi ptr [ %a, %if.then ], [ null, %if.then4 ], [ null, %if.else ]
}
attributes #0 = { null_pointer_is_valid }
diff --git a/llvm/test/Transforms/SimplifyCFG/pr33605.ll b/llvm/test/Transforms/SimplifyCFG/pr33605.ll
index c8f72e0c4aa89..d45316c5afa46 100644
--- a/llvm/test/Transforms/SimplifyCFG/pr33605.ll
+++ b/llvm/test/Transforms/SimplifyCFG/pr33605.ll
@@ -28,7 +28,7 @@
; CHECK-NOT: br label %for.cond
; CHECK: if.end:
; CHECK: br label %for.cond
-define i1 @test(i32 %a, i32 %b, i32* %c) {
+define i1 @test(i32 %a, i32 %b, ptr %c) {
entry:
br label %for.cond
@@ -46,13 +46,13 @@ for.cond.cleanup: ; preds = %for.cond
for.body: ; preds = %for.cond
%or = or i32 %a, %b
%idxprom = sext i32 %dec to i64
- %arrayidx = getelementptr inbounds i32, i32* %c, i64 %idxprom
- %0 = load i32, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %c, i64 %idxprom
+ %0 = load i32, ptr %arrayidx, align 4
%cmp = icmp eq i32 %or, %0
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %for.body
- store i32 %or, i32* %arrayidx, align 4
+ store i32 %or, ptr %arrayidx, align 4
call void @foo()
br label %if.end
diff --git a/llvm/test/Transforms/SimplifyCFG/pr35774.ll b/llvm/test/Transforms/SimplifyCFG/pr35774.ll
index e475d3ae9b3bc..2ad179b361b75 100644
--- a/llvm/test/Transforms/SimplifyCFG/pr35774.ll
+++ b/llvm/test/Transforms/SimplifyCFG/pr35774.ll
@@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S %s | FileCheck %s
-%foo = type { i32 (%foo)*, i32 }
+%foo = type { ptr, i32 }
declare i32 @putchar(i32)
diff --git a/llvm/test/Transforms/SimplifyCFG/pr39807.ll b/llvm/test/Transforms/SimplifyCFG/pr39807.ll
index fd71acfe73f74..c150c1b54cb8d 100644
--- a/llvm/test/Transforms/SimplifyCFG/pr39807.ll
+++ b/llvm/test/Transforms/SimplifyCFG/pr39807.ll
@@ -2,7 +2,7 @@
declare void @personality()
-define void @test(i1 %b) personality void()* @personality !dbg !1 {
+define void @test(i1 %b) personality ptr @personality !dbg !1 {
; CHECK: invoke void @inlinable()
; CHECK-NEXT: to label %common.ret unwind label %failure, !dbg ![[DBGLOC:[0-9]+]]
br i1 %b, label %if, label %else
diff --git a/llvm/test/Transforms/SimplifyCFG/pr48641.ll b/llvm/test/Transforms/SimplifyCFG/pr48641.ll
index a378cb8cf8944..afd669880f844 100644
--- a/llvm/test/Transforms/SimplifyCFG/pr48641.ll
+++ b/llvm/test/Transforms/SimplifyCFG/pr48641.ll
@@ -1,12 +1,12 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
-define i32 @foo_add(i8* %arg, i32 %arg1, i32 %arg2) {
+define i32 @foo_add(ptr %arg, i32 %arg1, i32 %arg2) {
; CHECK-LABEL: @foo_add(
; CHECK-NEXT: common.ret:
; CHECK-NEXT: [[I:%.*]] = sext i32 [[ARG1:%.*]] to i64
-; CHECK-NEXT: [[I3:%.*]] = getelementptr inbounds i8, i8* [[ARG:%.*]], i64 [[I]]
-; CHECK-NEXT: [[I4:%.*]] = load i8, i8* [[I3]], align 1
+; CHECK-NEXT: [[I3:%.*]] = getelementptr inbounds i8, ptr [[ARG:%.*]], i64 [[I]]
+; CHECK-NEXT: [[I4:%.*]] = load i8, ptr [[I3]], align 1
; CHECK-NEXT: [[I5:%.*]] = zext i8 [[I4]] to i32
; CHECK-NEXT: [[I6:%.*]] = add nsw i32 [[I5]], [[ARG2:%.*]]
; CHECK-NEXT: [[I7:%.*]] = icmp sgt i32 [[I6]], 255
@@ -16,8 +16,8 @@ define i32 @foo_add(i8* %arg, i32 %arg1, i32 %arg2) {
; CHECK-NEXT: ret i32 [[COMMON_RET_OP]]
;
%i = sext i32 %arg1 to i64
- %i3 = getelementptr inbounds i8, i8* %arg, i64 %i
- %i4 = load i8, i8* %i3, align 1
+ %i3 = getelementptr inbounds i8, ptr %arg, i64 %i
+ %i4 = load i8, ptr %i3, align 1
%i5 = zext i8 %i4 to i32
%i6 = add nsw i32 %i5, %arg2
%i7 = icmp sgt i32 %i6, 255
diff --git a/llvm/test/Transforms/SimplifyCFG/pr50060-constantfold-loopid.ll b/llvm/test/Transforms/SimplifyCFG/pr50060-constantfold-loopid.ll
index 8a957152fcff1..ba9e24cc82ddb 100644
--- a/llvm/test/Transforms/SimplifyCFG/pr50060-constantfold-loopid.ll
+++ b/llvm/test/Transforms/SimplifyCFG/pr50060-constantfold-loopid.ll
@@ -20,44 +20,40 @@ define dso_local void @_Z6test01v() addrspace(1) #0 {
; CHECK-NEXT: [[I:%.*]] = alloca i32, align 4
; CHECK-NEXT: br label [[DO_BODY:%.*]]
; CHECK: do.body:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @C, align 4, !tbaa [[TBAA2:![0-9]+]]
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @C, align 4, !tbaa [[TBAA2:![0-9]+]]
; CHECK-NEXT: [[INC:%.*]] = add nsw i32 [[TMP0]], 1
-; CHECK-NEXT: [[TMP1:%.*]] = bitcast i32* [[J]] to i8*
-; CHECK-NEXT: call addrspace(1) void @llvm.lifetime.start.p0i8(i64 4, i8* [[TMP1]]) #[[ATTR2:[0-9]+]]
-; CHECK-NEXT: store i32 0, i32* [[J]], align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: call addrspace(1) void @llvm.lifetime.start.p0(i64 4, ptr [[J]]) #[[ATTR2:[0-9]+]]
+; CHECK-NEXT: store i32 0, ptr [[J]], align 4, !tbaa [[TBAA2]]
; CHECK-NEXT: br label [[FOR_COND:%.*]]
; CHECK: for.cond:
-; CHECK-NEXT: [[TMP2:%.*]] = load i32, i32* [[J]], align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[J]], align 4, !tbaa [[TBAA2]]
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP2]], 3
; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_COND_CLEANUP:%.*]]
; CHECK: for.cond.cleanup:
-; CHECK-NEXT: [[TMP3:%.*]] = bitcast i32* [[J]] to i8*
-; CHECK-NEXT: call addrspace(1) void @llvm.lifetime.end.p0i8(i64 4, i8* [[TMP3]]) #[[ATTR2]]
+; CHECK-NEXT: call addrspace(1) void @llvm.lifetime.end.p0(i64 4, ptr [[J]]) #[[ATTR2]]
; CHECK-NEXT: br label [[DO_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
; CHECK: for.body:
-; CHECK-NEXT: store i32 undef, i32* [[I]], align 4
-; CHECK-NEXT: [[TMP4:%.*]] = bitcast i32* [[I]] to i8*
-; CHECK-NEXT: call addrspace(1) void @llvm.lifetime.start.p0i8(i64 4, i8* [[TMP4]]) #[[ATTR2]]
-; CHECK-NEXT: store i32 0, i32* [[I]], align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: store i32 undef, ptr [[I]], align 4
+; CHECK-NEXT: call addrspace(1) void @llvm.lifetime.start.p0(i64 4, ptr [[I]]) #[[ATTR2]]
+; CHECK-NEXT: store i32 0, ptr [[I]], align 4, !tbaa [[TBAA2]]
; CHECK-NEXT: br label [[FOR_COND1:%.*]]
; CHECK: for.cond1:
-; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* [[I]], align 4, !tbaa [[TBAA2]]
-; CHECK-NEXT: [[TMP6:%.*]] = load i32, i32* @n, align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[I]], align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: [[TMP6:%.*]] = load i32, ptr @n, align 4, !tbaa [[TBAA2]]
; CHECK-NEXT: [[CMP2:%.*]] = icmp slt i32 [[TMP5]], [[TMP6]]
; CHECK-NEXT: br i1 [[CMP2]], label [[FOR_BODY4:%.*]], label [[FOR_COND_CLEANUP3:%.*]]
; CHECK: for.cond.cleanup3:
-; CHECK-NEXT: [[TMP7:%.*]] = bitcast i32* [[I]] to i8*
-; CHECK-NEXT: call addrspace(1) void @llvm.lifetime.end.p0i8(i64 4, i8* [[TMP7]]) #[[ATTR2]]
-; CHECK-NEXT: [[TMP8:%.*]] = load i32, i32* [[J]], align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: call addrspace(1) void @llvm.lifetime.end.p0(i64 4, ptr [[I]]) #[[ATTR2]]
+; CHECK-NEXT: [[TMP8:%.*]] = load i32, ptr [[J]], align 4, !tbaa [[TBAA2]]
; CHECK-NEXT: [[INC7:%.*]] = add nsw i32 [[TMP8]], 1
-; CHECK-NEXT: store i32 [[INC7]], i32* [[J]], align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: store i32 [[INC7]], ptr [[J]], align 4, !tbaa [[TBAA2]]
; CHECK-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP8:![0-9]+]]
; CHECK: for.body4:
-; CHECK-NEXT: [[TMP9:%.*]] = load i32, i32* [[I]], align 4, !tbaa [[TBAA2]]
-; CHECK-NEXT: store volatile i32 [[TMP9]], i32* @C, align 4, !tbaa [[TBAA2]]
-; CHECK-NEXT: [[TMP10:%.*]] = load i32, i32* [[I]], align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: [[TMP9:%.*]] = load i32, ptr [[I]], align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: store volatile i32 [[TMP9]], ptr @C, align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: [[TMP10:%.*]] = load i32, ptr [[I]], align 4, !tbaa [[TBAA2]]
; CHECK-NEXT: [[INC5:%.*]] = add nsw i32 [[TMP10]], 1
-; CHECK-NEXT: store i32 [[INC5]], i32* [[I]], align 4, !tbaa [[TBAA2]]
+; CHECK-NEXT: store i32 [[INC5]], ptr [[I]], align 4, !tbaa [[TBAA2]]
; CHECK-NEXT: br label [[FOR_COND1]], !llvm.loop [[LOOP11:![0-9]+]]
;
entry:
@@ -66,59 +62,55 @@ entry:
br label %do.body
do.body: ; preds = %do.cond, %entry
- %0 = load i32, i32* @C, align 4, !tbaa !2
+ %0 = load i32, ptr @C, align 4, !tbaa !2
%inc = add nsw i32 %0, 1
- %1 = bitcast i32* %j to i8*
- call addrspace(1) void @llvm.lifetime.start.p0i8(i64 4, i8* %1) #2
- store i32 0, i32* %j, align 4, !tbaa !2
+ call addrspace(1) void @llvm.lifetime.start.p0(i64 4, ptr %j) #2
+ store i32 0, ptr %j, align 4, !tbaa !2
br label %for.cond
for.cond: ; preds = %for.inc6, %do.body
- %2 = load i32, i32* %j, align 4, !tbaa !2
- %cmp = icmp slt i32 %2, 3
+ %1 = load i32, ptr %j, align 4, !tbaa !2
+ %cmp = icmp slt i32 %1, 3
br i1 %cmp, label %for.body, label %for.cond.cleanup
for.cond.cleanup: ; preds = %for.cond
- %3 = bitcast i32* %j to i8*
- call addrspace(1) void @llvm.lifetime.end.p0i8(i64 4, i8* %3) #2
+ call addrspace(1) void @llvm.lifetime.end.p0(i64 4, ptr %j) #2
br label %for.end8
for.body: ; preds = %for.cond
- store i32 undef, i32* %i, align 4
- %4 = bitcast i32* %i to i8*
- call addrspace(1) void @llvm.lifetime.start.p0i8(i64 4, i8* %4) #2
- store i32 0, i32* %i, align 4, !tbaa !2
+ store i32 undef, ptr %i, align 4
+ call addrspace(1) void @llvm.lifetime.start.p0(i64 4, ptr %i) #2
+ store i32 0, ptr %i, align 4, !tbaa !2
br label %for.cond1
for.cond1: ; preds = %for.inc, %for.body
- %5 = load i32, i32* %i, align 4, !tbaa !2
- %6 = load i32, i32* @n, align 4, !tbaa !2
- %cmp2 = icmp slt i32 %5, %6
+ %2 = load i32, ptr %i, align 4, !tbaa !2
+ %3 = load i32, ptr @n, align 4, !tbaa !2
+ %cmp2 = icmp slt i32 %2, %3
br i1 %cmp2, label %for.body4, label %for.cond.cleanup3
for.cond.cleanup3: ; preds = %for.cond1
- %7 = bitcast i32* %i to i8*
- call addrspace(1) void @llvm.lifetime.end.p0i8(i64 4, i8* %7) #2
+ call addrspace(1) void @llvm.lifetime.end.p0(i64 4, ptr %i) #2
br label %for.end
for.body4: ; preds = %for.cond1
- %8 = load i32, i32* %i, align 4, !tbaa !2
- store volatile i32 %8, i32* @C, align 4, !tbaa !2
+ %4 = load i32, ptr %i, align 4, !tbaa !2
+ store volatile i32 %4, ptr @C, align 4, !tbaa !2
br label %for.inc
for.inc: ; preds = %for.body4
- %9 = load i32, i32* %i, align 4, !tbaa !2
- %inc5 = add nsw i32 %9, 1
- store i32 %inc5, i32* %i, align 4, !tbaa !2
+ %5 = load i32, ptr %i, align 4, !tbaa !2
+ %inc5 = add nsw i32 %5, 1
+ store i32 %inc5, ptr %i, align 4, !tbaa !2
br label %for.cond1, !llvm.loop !6
for.end: ; preds = %for.cond.cleanup3
br label %for.inc6
for.inc6: ; preds = %for.end
- %10 = load i32, i32* %j, align 4, !tbaa !2
- %inc7 = add nsw i32 %10, 1
- store i32 %inc7, i32* %j, align 4, !tbaa !2
+ %6 = load i32, ptr %j, align 4, !tbaa !2
+ %inc7 = add nsw i32 %6, 1
+ store i32 %inc7, ptr %j, align 4, !tbaa !2
br label %for.cond, !llvm.loop !8
for.end8: ; preds = %for.cond.cleanup
@@ -132,10 +124,10 @@ do.end: ; preds = %do.cond
}
; Function Attrs: argmemonly nofree nosync nounwind willreturn
-declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) addrspace(1) #1
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) addrspace(1) #1
; Function Attrs: argmemonly nofree nosync nounwind willreturn
-declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) addrspace(1) #1
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) addrspace(1) #1
attributes #0 = { nounwind "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { argmemonly nofree nosync nounwind willreturn }
diff --git a/llvm/test/Transforms/SimplifyCFG/pr52290.ll b/llvm/test/Transforms/SimplifyCFG/pr52290.ll
index b66354c4f02df..51846cf4c2b7f 100644
--- a/llvm/test/Transforms/SimplifyCFG/pr52290.ll
+++ b/llvm/test/Transforms/SimplifyCFG/pr52290.ll
@@ -4,7 +4,7 @@
; ModuleID = 'test/Transforms/SimplifyCFG/pr-new.ll'
source_filename = "test/Transforms/SimplifyCFG/pr-new.ll"
-define i32 @test(float %arg, i1 %c) gc "statepoint-example" personality i32* ()* @blam {
+define i32 @test(float %arg, i1 %c) gc "statepoint-example" personality ptr @blam {
; CHECK-LABEL: @test(
; CHECK-NEXT: bb:
; CHECK-NEXT: [[TMP:%.*]] = call i1 @llvm.experimental.widenable.condition()
@@ -12,7 +12,7 @@ define i32 @test(float %arg, i1 %c) gc "statepoint-example" personality i32* ()*
; CHECK: bb1:
; CHECK-NEXT: br i1 [[C:%.*]], label [[BB7:%.*]], label [[BB5:%.*]]
; CHECK: bb2:
-; CHECK-NEXT: [[TMP3:%.*]] = getelementptr inbounds i8, i8 addrspace(1)* undef, i64 16
+; CHECK-NEXT: [[TMP3:%.*]] = getelementptr inbounds i8, ptr addrspace(1) undef, i64 16
; CHECK-NEXT: br i1 [[C]], label [[BB7]], label [[BB4:%.*]]
; CHECK: bb4:
; CHECK-NEXT: call void @snork() [ "deopt"() ]
@@ -31,7 +31,7 @@ bb1: ; preds = %bb
br i1 %c, label %bb7, label %bb5
bb2: ; preds = %bb
- %tmp3 = getelementptr inbounds i8, i8 addrspace(1)* undef, i64 16
+ %tmp3 = getelementptr inbounds i8, ptr addrspace(1) undef, i64 16
br i1 %c, label %bb6, label %bb4
bb4: ; preds = %bb2
@@ -49,7 +49,7 @@ bb7: ; preds = %bb6, %bb1
ret i32 %tmp8
}
-declare i32* @blam()
+declare ptr @blam()
declare void @snork()
diff --git a/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll b/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
index 7724bb83af9ea..068704a4b7a60 100644
--- a/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
+++ b/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
@@ -523,7 +523,7 @@ c:
;; can exceed uint32 by more than factor of 2. We should keep halving the
;; weights until they can fit into uint32.
@max_regno = common global i32 0, align 4
-define void @test14(i32* %old, i32 %final) {
+define void @test14(ptr %old, i32 %final) {
; CHECK-LABEL: @test14(
; CHECK-NEXT: for.cond:
; CHECK-NEXT: br label [[FOR_COND2:%.*]]
@@ -531,7 +531,7 @@ define void @test14(i32* %old, i32 %final) {
; CHECK-NEXT: [[I_1:%.*]] = phi i32 [ [[INC19:%.*]], [[FOR_INC:%.*]] ], [ 0, [[FOR_COND:%.*]] ]
; CHECK-NEXT: [[BIT_0:%.*]] = phi i32 [ [[SHL:%.*]], [[FOR_INC]] ], [ 1, [[FOR_COND]] ]
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[BIT_0]], 0
-; CHECK-NEXT: [[V3:%.*]] = load i32, i32* @max_regno, align 4
+; CHECK-NEXT: [[V3:%.*]] = load i32, ptr @max_regno, align 4
; CHECK-NEXT: [[CMP4:%.*]] = icmp eq i32 [[I_1]], [[V3]]
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[TOBOOL]], i1 true, i1 [[CMP4]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[FOR_EXIT:%.*]], label [[FOR_INC]], !prof [[PROF11:![0-9]+]]
@@ -550,7 +550,7 @@ for.cond2:
%tobool = icmp eq i32 %bit.0, 0
br i1 %tobool, label %for.exit, label %for.body3, !prof !10
for.body3:
- %v3 = load i32, i32* @max_regno, align 4
+ %v3 = load i32, ptr @max_regno, align 4
%cmp4 = icmp eq i32 %i.1, %v3
br i1 %cmp4, label %for.exit, label %for.inc, !prof !11
for.inc:
@@ -665,7 +665,7 @@ exit:
; Merging the icmps with logic-op defeats the purpose of the metadata.
; We can't tell which condition is expensive if they are combined.
-define void @or_icmps_harmful(i32 %x, i32 %y, i8* %p) {
+define void @or_icmps_harmful(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @or_icmps_harmful(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -674,7 +674,7 @@ define void @or_icmps_harmful(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[EXPENSIVE:%.*]] = icmp eq i32 [[Y:%.*]], 0
; CHECK-NEXT: br i1 [[EXPENSIVE]], label [[EXIT]], label [[FALSE:%.*]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -688,7 +688,7 @@ rare:
br i1 %expensive, label %exit, label %false
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -698,7 +698,7 @@ exit:
; Merging the icmps with logic-op defeats the purpose of the metadata.
; We can't tell which condition is expensive if they are combined.
-define void @or_icmps_harmful_inverted(i32 %x, i32 %y, i8* %p) {
+define void @or_icmps_harmful_inverted(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @or_icmps_harmful_inverted(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_FALSE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -707,7 +707,7 @@ define void @or_icmps_harmful_inverted(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[EXPENSIVE:%.*]] = icmp eq i32 [[Y:%.*]], 0
; CHECK-NEXT: br i1 [[EXPENSIVE]], label [[EXIT]], label [[FALSE:%.*]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -721,7 +721,7 @@ rare:
br i1 %expensive, label %exit, label %false
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -729,7 +729,7 @@ exit:
}
-define void @or_icmps_probably_not_harmful(i32 %x, i32 %y, i8* %p) {
+define void @or_icmps_probably_not_harmful(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @or_icmps_probably_not_harmful(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -737,7 +737,7 @@ define void @or_icmps_probably_not_harmful(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 true, i1 [[EXPENSIVE]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[EXIT:%.*]], label [[FALSE:%.*]], !prof [[PROF21:![0-9]+]], !unpredictable !22
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -751,7 +751,7 @@ rare:
br i1 %expensive, label %exit, label %false
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -761,7 +761,7 @@ exit:
; The probability threshold is determined by a TTI setting.
; In this example, we are just short of strongly expected, so speculate.
-define void @or_icmps_not_that_harmful(i32 %x, i32 %y, i8* %p) {
+define void @or_icmps_not_that_harmful(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @or_icmps_not_that_harmful(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -769,7 +769,7 @@ define void @or_icmps_not_that_harmful(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 true, i1 [[EXPENSIVE]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[EXIT:%.*]], label [[FALSE:%.*]], !prof [[PROF23:![0-9]+]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -783,7 +783,7 @@ rare:
br i1 %expensive, label %exit, label %false
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -793,7 +793,7 @@ exit:
; The probability threshold is determined by a TTI setting.
; In this example, we are just short of strongly expected, so speculate.
-define void @or_icmps_not_that_harmful_inverted(i32 %x, i32 %y, i8* %p) {
+define void @or_icmps_not_that_harmful_inverted(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @or_icmps_not_that_harmful_inverted(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -801,7 +801,7 @@ define void @or_icmps_not_that_harmful_inverted(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 true, i1 [[EXPENSIVE]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[EXIT:%.*]], label [[FALSE:%.*]], !prof [[PROF24:![0-9]+]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -815,7 +815,7 @@ rare:
br i1 %expensive, label %exit, label %false
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -824,7 +824,7 @@ exit:
; The 1st cmp is probably true, so speculating the 2nd is probably a win.
-define void @or_icmps_useful(i32 %x, i32 %y, i8* %p) {
+define void @or_icmps_useful(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @or_icmps_useful(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sle i32 [[X:%.*]], -1
@@ -832,7 +832,7 @@ define void @or_icmps_useful(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 true, i1 [[EXPENSIVE]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[EXIT:%.*]], label [[FALSE:%.*]], !prof [[PROF25:![0-9]+]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -846,7 +846,7 @@ likely:
br i1 %expensive, label %exit, label %false
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -855,7 +855,7 @@ exit:
; The 1st cmp is probably false, so speculating the 2nd is probably a win.
-define void @or_icmps_useful_inverted(i32 %x, i32 %y, i8* %p) {
+define void @or_icmps_useful_inverted(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @or_icmps_useful_inverted(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_FALSE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -863,7 +863,7 @@ define void @or_icmps_useful_inverted(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_FALSE]], i1 true, i1 [[EXPENSIVE]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[EXIT:%.*]], label [[FALSE:%.*]], !prof [[PROF25]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -877,7 +877,7 @@ likely:
br i1 %expensive, label %exit, label %false
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -886,7 +886,7 @@ exit:
; Don't crash processing degenerate metadata.
-define void @or_icmps_empty_metadata(i32 %x, i32 %y, i8* %p) {
+define void @or_icmps_empty_metadata(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @or_icmps_empty_metadata(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -894,7 +894,7 @@ define void @or_icmps_empty_metadata(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 true, i1 [[EXPENSIVE]]
; CHECK-NEXT: br i1 [[OR_COND]], label [[EXIT:%.*]], label [[MORE_RARE:%.*]]
; CHECK: more_rare:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -908,7 +908,7 @@ rare:
br i1 %expensive, label %exit, label %more_rare
more_rare:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -918,7 +918,7 @@ exit:
; Merging the icmps with logic-op defeats the purpose of the metadata.
; We can't tell which condition is expensive if they are combined.
-define void @and_icmps_harmful(i32 %x, i32 %y, i8* %p) {
+define void @and_icmps_harmful(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @and_icmps_harmful(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_FALSE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -927,7 +927,7 @@ define void @and_icmps_harmful(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[EXPENSIVE:%.*]] = icmp eq i32 [[Y:%.*]], 0
; CHECK-NEXT: br i1 [[EXPENSIVE]], label [[FALSE:%.*]], label [[EXIT]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -941,7 +941,7 @@ rare:
br i1 %expensive, label %false, label %exit
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -951,7 +951,7 @@ exit:
; Merging the icmps with logic-op defeats the purpose of the metadata.
; We can't tell which condition is expensive if they are combined.
-define void @and_icmps_harmful_inverted(i32 %x, i32 %y, i8* %p) {
+define void @and_icmps_harmful_inverted(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @and_icmps_harmful_inverted(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -960,7 +960,7 @@ define void @and_icmps_harmful_inverted(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[EXPENSIVE:%.*]] = icmp eq i32 [[Y:%.*]], 0
; CHECK-NEXT: br i1 [[EXPENSIVE]], label [[FALSE:%.*]], label [[EXIT]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -974,7 +974,7 @@ rare:
br i1 %expensive, label %false, label %exit
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -984,7 +984,7 @@ exit:
; The probability threshold is determined by a TTI setting.
; In this example, we are just short of strongly expected, so speculate.
-define void @and_icmps_not_that_harmful(i32 %x, i32 %y, i8* %p) {
+define void @and_icmps_not_that_harmful(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @and_icmps_not_that_harmful(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_FALSE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -992,7 +992,7 @@ define void @and_icmps_not_that_harmful(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_FALSE]], i1 [[EXPENSIVE]], i1 false
; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF26:![0-9]+]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -1006,7 +1006,7 @@ rare:
br i1 %expensive, label %false, label %exit
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -1016,7 +1016,7 @@ exit:
; The probability threshold is determined by a TTI setting.
; In this example, we are just short of strongly expected, so speculate.
-define void @and_icmps_not_that_harmful_inverted(i32 %x, i32 %y, i8* %p) {
+define void @and_icmps_not_that_harmful_inverted(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @and_icmps_not_that_harmful_inverted(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sle i32 [[X:%.*]], -1
@@ -1024,7 +1024,7 @@ define void @and_icmps_not_that_harmful_inverted(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 [[EXPENSIVE]], i1 false
; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF26]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -1038,7 +1038,7 @@ rare:
br i1 %expensive, label %false, label %exit
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -1047,7 +1047,7 @@ exit:
; The 1st cmp is probably true, so speculating the 2nd is probably a win.
-define void @and_icmps_useful(i32 %x, i32 %y, i8* %p) {
+define void @and_icmps_useful(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @and_icmps_useful(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_TRUE:%.*]] = icmp sgt i32 [[X:%.*]], -1
@@ -1055,7 +1055,7 @@ define void @and_icmps_useful(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_TRUE]], i1 [[EXPENSIVE]], i1 false
; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF27:![0-9]+]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -1069,7 +1069,7 @@ likely:
br i1 %expensive, label %false, label %exit
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
@@ -1078,7 +1078,7 @@ exit:
; The 1st cmp is probably false, so speculating the 2nd is probably a win.
-define void @and_icmps_useful_inverted(i32 %x, i32 %y, i8* %p) {
+define void @and_icmps_useful_inverted(i32 %x, i32 %y, ptr %p) {
; CHECK-LABEL: @and_icmps_useful_inverted(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[EXPECTED_FALSE:%.*]] = icmp sle i32 [[X:%.*]], -1
@@ -1086,7 +1086,7 @@ define void @and_icmps_useful_inverted(i32 %x, i32 %y, i8* %p) {
; CHECK-NEXT: [[OR_COND:%.*]] = select i1 [[EXPECTED_FALSE]], i1 [[EXPENSIVE]], i1 false
; CHECK-NEXT: br i1 [[OR_COND]], label [[FALSE:%.*]], label [[EXIT:%.*]], !prof [[PROF27]]
; CHECK: false:
-; CHECK-NEXT: store i8 42, i8* [[P:%.*]], align 1
+; CHECK-NEXT: store i8 42, ptr [[P:%.*]], align 1
; CHECK-NEXT: br label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -1100,7 +1100,7 @@ likely:
br i1 %expensive, label %false, label %exit
false:
- store i8 42, i8* %p, align 1
+ store i8 42, ptr %p, align 1
br label %exit
exit:
diff --git a/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-2.ll b/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-2.ll
index a633b0d9c89d0..0542ab93dc57e 100644
--- a/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-2.ll
+++ b/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-2.ll
@@ -1,25 +1,25 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s
-declare void @bar(i32*)
-declare void @baz(i32*)
+declare void @bar(ptr)
+declare void @baz(ptr)
; CHECK-LABEL: @test_load_combine_metadata(
; Check that dereferenceable metadata is combined
-; CHECK: load i32*, i32** %p
+; CHECK: load ptr, ptr %p
; CHECK-SAME: !dereferenceable ![[DEREF:[0-9]+]]
; CHECK: t:
; CHECK: f:
-define void @test_load_combine_metadata(i1 %c, i32** %p) {
+define void @test_load_combine_metadata(i1 %c, ptr %p) {
br i1 %c, label %t, label %f
t:
- %v1 = load i32*, i32** %p, !dereferenceable !0
- call void @bar(i32* %v1)
+ %v1 = load ptr, ptr %p, !dereferenceable !0
+ call void @bar(ptr %v1)
br label %cont
f:
- %v2 = load i32*, i32** %p, !dereferenceable !1
- call void @baz(i32* %v2)
+ %v2 = load ptr, ptr %p, !dereferenceable !1
+ call void @baz(ptr %v2)
br label %cont
cont:
diff --git a/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-3.ll b/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-3.ll
index 1ea747d24b185..82c08f3ac3c2a 100644
--- a/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-3.ll
+++ b/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-3.ll
@@ -1,25 +1,25 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s
-declare void @bar(i32*)
-declare void @baz(i32*)
+declare void @bar(ptr)
+declare void @baz(ptr)
; CHECK-LABEL: @test_load_combine_metadata(
; Check that dereferenceable_or_null metadata is combined
-; CHECK: load i32*, i32** %p
+; CHECK: load ptr, ptr %p
; CHECK-SAME: !dereferenceable_or_null ![[DEREF:[0-9]+]]
; CHECK: t:
; CHECK: f:
-define void @test_load_combine_metadata(i1 %c, i32** %p) {
+define void @test_load_combine_metadata(i1 %c, ptr %p) {
br i1 %c, label %t, label %f
t:
- %v1 = load i32*, i32** %p, !dereferenceable_or_null !0
- call void @bar(i32* %v1)
+ %v1 = load ptr, ptr %p, !dereferenceable_or_null !0
+ call void @bar(ptr %v1)
br label %cont
f:
- %v2 = load i32*, i32** %p, !dereferenceable_or_null !1
- call void @baz(i32* %v2)
+ %v2 = load ptr, ptr %p, !dereferenceable_or_null !1
+ call void @baz(ptr %v2)
br label %cont
cont:
diff --git a/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata.ll b/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata.ll
index c9c7889cc93ba..89b6bfb566e09 100644
--- a/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata.ll
+++ b/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata.ll
@@ -1,25 +1,25 @@
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s
-declare void @bar(i32*)
-declare void @baz(i32*)
+declare void @bar(ptr)
+declare void @baz(ptr)
; CHECK-LABEL: @test_load_combine_metadata(
; Check that align metadata is combined
-; CHECK: load i32*, i32** %p
+; CHECK: load ptr, ptr %p
; CHECK-SAME: !align ![[ALIGN:[0-9]+]]
; CHECK: t:
; CHECK: f:
-define void @test_load_combine_metadata(i1 %c, i32** %p) {
+define void @test_load_combine_metadata(i1 %c, ptr %p) {
br i1 %c, label %t, label %f
t:
- %v1 = load i32*, i32** %p, !align !0
- call void @bar(i32* %v1)
+ %v1 = load ptr, ptr %p, !align !0
+ call void @bar(ptr %v1)
br label %cont
f:
- %v2 = load i32*, i32** %p, !align !1
- call void @baz(i32* %v2)
+ %v2 = load ptr, ptr %p, !align !1
+ call void @baz(ptr %v2)
br label %cont
cont:
diff --git a/llvm/test/Transforms/SimplifyCFG/preserve-make-implicit-on-switch-to-br.ll b/llvm/test/Transforms/SimplifyCFG/preserve-make-implicit-on-switch-to-br.ll
index 2ef5a4757e6c1..6b8c91c724286 100644
--- a/llvm/test/Transforms/SimplifyCFG/preserve-make-implicit-on-switch-to-br.ll
+++ b/llvm/test/Transforms/SimplifyCFG/preserve-make-implicit-on-switch-to-br.ll
@@ -4,13 +4,13 @@
; a conditional BranchInst. This test checks the converted BranchInst preserve the
; make.implicit metadata.
-declare i32 @consume(i32*)
+declare i32 @consume(ptr)
declare void @trap()
-define i32 @copy-metadata(i32* %x) {
+define i32 @copy-metadata(ptr %x) {
entry:
- %x.int = ptrtoint i32* %x to i64
+ %x.int = ptrtoint ptr %x to i64
; CHECK: br i1 %cond, label %is_null, label %default, !make.implicit !0
switch i64 %x.int, label %default [
@@ -18,7 +18,7 @@ entry:
], !make.implicit !0
default:
- %0 = call i32 @consume(i32* %x)
+ %0 = call i32 @consume(ptr %x)
ret i32 %0
is_null:
diff --git a/llvm/test/Transforms/SimplifyCFG/preserve-store-alignment.ll b/llvm/test/Transforms/SimplifyCFG/preserve-store-alignment.ll
index 32c8539e639c8..00cee73da428c 100644
--- a/llvm/test/Transforms/SimplifyCFG/preserve-store-alignment.ll
+++ b/llvm/test/Transforms/SimplifyCFG/preserve-store-alignment.ll
@@ -9,10 +9,10 @@
define i32 @align_both_equal() local_unnamed_addr {
; CHECK-LABEL: @align_both_equal(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, ptr getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], ptr @counters, i64 0, i32 1), align 8
; CHECK-NEXT: [[TMP1:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 1, i64 1>
-; CHECK-NEXT: store <2 x i64> [[TMP1]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
-; CHECK-NEXT: [[TMP2:%.*]] = load i64, i64* @m, align 8
+; CHECK-NEXT: store <2 x i64> [[TMP1]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 8
+; CHECK-NEXT: [[TMP2:%.*]] = load i64, ptr @m, align 8
; CHECK-NEXT: [[AND:%.*]] = and i64 [[TMP2]], 1
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i64 [[AND]], 0
; CHECK-NEXT: [[TMP3:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 2, i64 2>
@@ -26,23 +26,23 @@ define i32 @align_both_equal() local_unnamed_addr {
; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
; CHECK-NEXT: br i1 [[TMP8]], label [[TMP9:%.*]], label [[TMP10:%.*]]
; CHECK: 9:
-; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 8
; CHECK-NEXT: br label [[TMP10]]
; CHECK: 10:
; CHECK-NEXT: ret i32 0
;
entry:
- %0 = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+ %0 = load <2 x i64>, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
%1 = add nsw <2 x i64> %0, <i64 1, i64 1>
- store <2 x i64> %1, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
- %2 = load i64, i64* @m, align 8
+ store <2 x i64> %1, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
+ %2 = load i64, ptr @m, align 8
%and = and i64 %2, 1
%tobool = icmp eq i64 %and, 0
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %entry
%3 = add nsw <2 x i64> %0, <i64 2, i64 2>
- store <2 x i64> %3, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+ store <2 x i64> %3, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
br label %if.end
if.end: ; preds = %entry, %if.then
@@ -53,7 +53,7 @@ if.end: ; preds = %entry, %if.then
if.then6: ; preds = %if.end
%5 = add nsw <2 x i64> %4, <i64 1, i64 1>
- store <2 x i64> %5, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+ store <2 x i64> %5, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
br label %if.end9
if.end9: ; preds = %if.end, %if.then6
@@ -63,10 +63,10 @@ if.end9: ; preds = %if.end, %if.then6
define i32 @align_not_equal() local_unnamed_addr {
; CHECK-LABEL: @align_not_equal(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, ptr getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], ptr @counters, i64 0, i32 1), align 8
; CHECK-NEXT: [[TMP1:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 1, i64 1>
-; CHECK-NEXT: store <2 x i64> [[TMP1]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
-; CHECK-NEXT: [[TMP2:%.*]] = load i64, i64* @m, align 8
+; CHECK-NEXT: store <2 x i64> [[TMP1]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 8
+; CHECK-NEXT: [[TMP2:%.*]] = load i64, ptr @m, align 8
; CHECK-NEXT: [[AND:%.*]] = and i64 [[TMP2]], 1
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i64 [[AND]], 0
; CHECK-NEXT: [[TMP3:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 2, i64 2>
@@ -80,23 +80,23 @@ define i32 @align_not_equal() local_unnamed_addr {
; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
; CHECK-NEXT: br i1 [[TMP8]], label [[TMP9:%.*]], label [[TMP10:%.*]]
; CHECK: 9:
-; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 8
; CHECK-NEXT: br label [[TMP10]]
; CHECK: 10:
; CHECK-NEXT: ret i32 0
;
entry:
- %0 = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+ %0 = load <2 x i64>, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
%1 = add nsw <2 x i64> %0, <i64 1, i64 1>
- store <2 x i64> %1, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
- %2 = load i64, i64* @m, align 8
+ store <2 x i64> %1, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
+ %2 = load i64, ptr @m, align 8
%and = and i64 %2, 1
%tobool = icmp eq i64 %and, 0
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %entry
%3 = add nsw <2 x i64> %0, <i64 2, i64 2>
- store <2 x i64> %3, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 16
+ store <2 x i64> %3, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 16
br label %if.end
if.end: ; preds = %entry, %if.then
@@ -107,7 +107,7 @@ if.end: ; preds = %entry, %if.then
if.then6: ; preds = %if.end
%5 = add nsw <2 x i64> %4, <i64 1, i64 1>
- store <2 x i64> %5, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+ store <2 x i64> %5, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
br label %if.end9
if.end9: ; preds = %if.end, %if.then6
@@ -117,10 +117,10 @@ if.end9: ; preds = %if.end, %if.then6
define i32 @align_single_zero() local_unnamed_addr {
; CHECK-LABEL: @align_single_zero(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, ptr getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], ptr @counters, i64 0, i32 1), align 8
; CHECK-NEXT: [[TMP1:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 1, i64 1>
-; CHECK-NEXT: store <2 x i64> [[TMP1]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
-; CHECK-NEXT: [[TMP2:%.*]] = load i64, i64* @m, align 8
+; CHECK-NEXT: store <2 x i64> [[TMP1]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 8
+; CHECK-NEXT: [[TMP2:%.*]] = load i64, ptr @m, align 8
; CHECK-NEXT: [[AND:%.*]] = and i64 [[TMP2]], 1
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i64 [[AND]], 0
; CHECK-NEXT: [[TMP3:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 2, i64 2>
@@ -134,23 +134,23 @@ define i32 @align_single_zero() local_unnamed_addr {
; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
; CHECK-NEXT: br i1 [[TMP8]], label [[TMP9:%.*]], label [[TMP10:%.*]]
; CHECK: 9:
-; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 8
; CHECK-NEXT: br label [[TMP10]]
; CHECK: 10:
; CHECK-NEXT: ret i32 0
;
entry:
- %0 = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+ %0 = load <2 x i64>, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
%1 = add nsw <2 x i64> %0, <i64 1, i64 1>
- store <2 x i64> %1, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
- %2 = load i64, i64* @m, align 8
+ store <2 x i64> %1, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
+ %2 = load i64, ptr @m, align 8
%and = and i64 %2, 1
%tobool = icmp eq i64 %and, 0
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %entry
%3 = add nsw <2 x i64> %0, <i64 2, i64 2>
- store <2 x i64> %3, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*)
+ store <2 x i64> %3, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1)
br label %if.end
if.end: ; preds = %entry, %if.then
@@ -161,7 +161,7 @@ if.end: ; preds = %entry, %if.then
if.then6: ; preds = %if.end
%5 = add nsw <2 x i64> %4, <i64 1, i64 1>
- store <2 x i64> %5, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+ store <2 x i64> %5, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
br label %if.end9
if.end9: ; preds = %if.end, %if.then6
@@ -171,10 +171,10 @@ if.end9: ; preds = %if.end, %if.then6
define i32 @align_single_zero_second_greater_default() local_unnamed_addr {
; CHECK-LABEL: @align_single_zero_second_greater_default(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, ptr getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], ptr @counters, i64 0, i32 1), align 8
; CHECK-NEXT: [[TMP1:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 1, i64 1>
-; CHECK-NEXT: store <2 x i64> [[TMP1]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
-; CHECK-NEXT: [[TMP2:%.*]] = load i64, i64* @m, align 8
+; CHECK-NEXT: store <2 x i64> [[TMP1]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 8
+; CHECK-NEXT: [[TMP2:%.*]] = load i64, ptr @m, align 8
; CHECK-NEXT: [[AND:%.*]] = and i64 [[TMP2]], 1
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i64 [[AND]], 0
; CHECK-NEXT: [[TMP3:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 2, i64 2>
@@ -188,23 +188,23 @@ define i32 @align_single_zero_second_greater_default() local_unnamed_addr {
; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
; CHECK-NEXT: br i1 [[TMP8]], label [[TMP9:%.*]], label [[TMP10:%.*]]
; CHECK: 9:
-; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 16
+; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 16
; CHECK-NEXT: br label [[TMP10]]
; CHECK: 10:
; CHECK-NEXT: ret i32 0
;
entry:
- %0 = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+ %0 = load <2 x i64>, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
%1 = add nsw <2 x i64> %0, <i64 1, i64 1>
- store <2 x i64> %1, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
- %2 = load i64, i64* @m, align 8
+ store <2 x i64> %1, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
+ %2 = load i64, ptr @m, align 8
%and = and i64 %2, 1
%tobool = icmp eq i64 %and, 0
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %entry
%3 = add nsw <2 x i64> %0, <i64 2, i64 2>
- store <2 x i64> %3, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 32
+ store <2 x i64> %3, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 32
br label %if.end
if.end: ; preds = %entry, %if.then
@@ -215,7 +215,7 @@ if.end: ; preds = %entry, %if.then
if.then6: ; preds = %if.end
%5 = add nsw <2 x i64> %4, <i64 1, i64 1>
- store <2 x i64> %5, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*)
+ store <2 x i64> %5, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1)
br label %if.end9
if.end9: ; preds = %if.end, %if.then6
@@ -225,10 +225,10 @@ if.end9: ; preds = %if.end, %if.then6
define i32 @align_both_zero() local_unnamed_addr {
; CHECK-LABEL: @align_both_zero(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, ptr getelementptr inbounds ([[STRUCT_COUNTERS:%.*]], ptr @counters, i64 0, i32 1), align 8
; CHECK-NEXT: [[TMP1:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 1, i64 1>
-; CHECK-NEXT: store <2 x i64> [[TMP1]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
-; CHECK-NEXT: [[TMP2:%.*]] = load i64, i64* @m, align 8
+; CHECK-NEXT: store <2 x i64> [[TMP1]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 8
+; CHECK-NEXT: [[TMP2:%.*]] = load i64, ptr @m, align 8
; CHECK-NEXT: [[AND:%.*]] = and i64 [[TMP2]], 1
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i64 [[AND]], 0
; CHECK-NEXT: [[TMP3:%.*]] = add nsw <2 x i64> [[TMP0]], <i64 2, i64 2>
@@ -242,23 +242,23 @@ define i32 @align_both_zero() local_unnamed_addr {
; CHECK-NEXT: [[TMP8:%.*]] = or i1 [[TMP6]], [[TMP7]]
; CHECK-NEXT: br i1 [[TMP8]], label [[TMP9:%.*]], label [[TMP10:%.*]]
; CHECK: 9:
-; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], <2 x i64>* bitcast (i64* getelementptr inbounds ([[STRUCT_COUNTERS]], %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 16
+; CHECK-NEXT: store <2 x i64> [[SIMPLIFYCFG_MERGE]], ptr getelementptr inbounds ([[STRUCT_COUNTERS]], ptr @counters, i64 0, i32 1), align 16
; CHECK-NEXT: br label [[TMP10]]
; CHECK: 10:
; CHECK-NEXT: ret i32 0
;
entry:
- %0 = load <2 x i64>, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
+ %0 = load <2 x i64>, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
%1 = add nsw <2 x i64> %0, <i64 1, i64 1>
- store <2 x i64> %1, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*), align 8
- %2 = load i64, i64* @m, align 8
+ store <2 x i64> %1, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1), align 8
+ %2 = load i64, ptr @m, align 8
%and = and i64 %2, 1
%tobool = icmp eq i64 %and, 0
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %entry
%3 = add nsw <2 x i64> %0, <i64 2, i64 2>
- store <2 x i64> %3, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*)
+ store <2 x i64> %3, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1)
br label %if.end
if.end: ; preds = %entry, %if.then
@@ -269,7 +269,7 @@ if.end: ; preds = %entry, %if.then
if.then6: ; preds = %if.end
%5 = add nsw <2 x i64> %4, <i64 1, i64 1>
- store <2 x i64> %5, <2 x i64>* bitcast (i64* getelementptr inbounds (%struct.Counters, %struct.Counters* @counters, i64 0, i32 1) to <2 x i64>*)
+ store <2 x i64> %5, ptr getelementptr inbounds (%struct.Counters, ptr @counters, i64 0, i32 1)
br label %if.end9
if.end9: ; preds = %if.end, %if.then6
diff --git a/llvm/test/Transforms/SimplifyCFG/seh-nounwind.ll b/llvm/test/Transforms/SimplifyCFG/seh-nounwind.ll
index 4d9bd4b53aca4..fb503bfdbdc2b 100644
--- a/llvm/test/Transforms/SimplifyCFG/seh-nounwind.ll
+++ b/llvm/test/Transforms/SimplifyCFG/seh-nounwind.ll
@@ -10,14 +10,14 @@ entry:
ret i32 %div
}
-define i32 @main() nounwind personality i8* bitcast (i32 (...)* @__C_specific_handler to i8*) {
+define i32 @main() nounwind personality ptr @__C_specific_handler {
entry:
%call = invoke i32 @div(i32 10, i32 0)
to label %__try.cont unwind label %lpad
lpad:
- %0 = landingpad { i8*, i32 }
- catch i8* null
+ %0 = landingpad { ptr, i32 }
+ catch ptr null
br label %__try.cont
__try.cont:
diff --git a/llvm/test/Transforms/SimplifyCFG/simplifyUnreachable-degenerate-conditional-branch-with-matching-destinations.ll b/llvm/test/Transforms/SimplifyCFG/simplifyUnreachable-degenerate-conditional-branch-with-matching-destinations.ll
index 2f47871a6578d..6cfaa8d0dcd01 100644
--- a/llvm/test/Transforms/SimplifyCFG/simplifyUnreachable-degenerate-conditional-branch-with-matching-destinations.ll
+++ b/llvm/test/Transforms/SimplifyCFG/simplifyUnreachable-degenerate-conditional-branch-with-matching-destinations.ll
@@ -11,20 +11,20 @@ define void @widget() {
; CHECK-NEXT: unreachable
;
bb:
- %i = load i16, i16* @global, align 1
+ %i = load i16, ptr @global, align 1
%i13 = icmp ne i16 %i, 0
br i1 %i13, label %bb16, label %bb14
bb14: ; preds = %bb
- %i15 = load i16, i16* @global.1, align 1
+ %i15 = load i16, ptr @global.1, align 1
br label %bb23
bb16: ; preds = %bb
- %i17 = load i16, i16* @global, align 1
+ %i17 = load i16, ptr @global, align 1
%i18 = sdiv i16 2, %i17
%i19 = icmp ne i16 %i18, 0
%i20 = zext i1 %i19 to i16
- %i21 = load i16, i16* @global.1, align 1
+ %i21 = load i16, ptr @global.1, align 1
br i1 %i19, label %bb22, label %bb23
bb22: ; preds = %bb16
@@ -32,6 +32,6 @@ bb22: ; preds = %bb16
bb23: ; preds = %bb22, %bb16, %bb14
%i24 = phi i16 [ %i20, %bb22 ], [ %i21, %bb16 ], [ %i15, %bb14 ]
- store i16 %i24, i16* @global.2, align 1
+ store i16 %i24, ptr @global.2, align 1
unreachable
}
diff --git a/llvm/test/Transforms/SimplifyCFG/sink-inf-loop.ll b/llvm/test/Transforms/SimplifyCFG/sink-inf-loop.ll
index d23301749e523..95b6a2b70dd4c 100644
--- a/llvm/test/Transforms/SimplifyCFG/sink-inf-loop.ll
+++ b/llvm/test/Transforms/SimplifyCFG/sink-inf-loop.ll
@@ -3,24 +3,24 @@
; This would infinite-loop because we allowed code sinking to examine an infinite-loop block (%j).
-define void @PR49541(i32* %t1, i32 %a, i1 %bool) {
+define void @PR49541(ptr %t1, i32 %a, i1 %bool) {
; CHECK-LABEL: @PR49541(
; CHECK-NEXT: entry:
; CHECK-NEXT: br label [[I:%.*]]
; CHECK: j:
; CHECK-NEXT: [[T3:%.*]] = phi i32 [ [[B:%.*]], [[J:%.*]] ], [ [[A:%.*]], [[COND_TRUE:%.*]] ], [ [[A]], [[COND_FALSE:%.*]] ]
; CHECK-NEXT: [[T2:%.*]] = phi i32 [ [[T2]], [[J]] ], [ [[PRE2:%.*]], [[COND_TRUE]] ], [ 0, [[COND_FALSE]] ]
-; CHECK-NEXT: [[B]] = load i32, i32* [[T1:%.*]], align 4
+; CHECK-NEXT: [[B]] = load i32, ptr [[T1:%.*]], align 4
; CHECK-NEXT: br label [[J]]
; CHECK: i:
; CHECK-NEXT: [[G_1:%.*]] = phi i16 [ undef, [[ENTRY:%.*]] ], [ [[G_1]], [[COND_FALSE]] ]
; CHECK-NEXT: br i1 [[BOOL:%.*]], label [[COND_FALSE]], label [[COND_TRUE]]
; CHECK: cond.true:
; CHECK-NEXT: [[TOBOOL9_NOT:%.*]] = icmp eq i16 [[G_1]], 0
-; CHECK-NEXT: [[PRE2]] = load i32, i32* [[T1]], align 4
+; CHECK-NEXT: [[PRE2]] = load i32, ptr [[T1]], align 4
; CHECK-NEXT: br label [[J]]
; CHECK: cond.false:
-; CHECK-NEXT: [[T5:%.*]] = load i32, i32* [[T1]], align 4
+; CHECK-NEXT: [[T5:%.*]] = load i32, ptr [[T1]], align 4
; CHECK-NEXT: [[B2:%.*]] = icmp eq i32 [[T5]], 0
; CHECK-NEXT: br i1 [[B2]], label [[J]], label [[I]]
;
@@ -30,7 +30,7 @@ entry:
j:
%t3 = phi i32 [ %b, %j ], [ %a, %cond.true ], [ %a, %cond.false ]
%t2 = phi i32 [ %t2, %j ], [ %pre2, %cond.true ], [ 0, %cond.false ]
- %b = load i32, i32* %t1, align 4
+ %b = load i32, ptr %t1, align 4
br label %j
i:
@@ -39,11 +39,11 @@ i:
cond.true:
%tobool9.not = icmp eq i16 %g.1, 0
- %pre2 = load i32, i32* %t1, align 4
+ %pre2 = load i32, ptr %t1, align 4
br label %j
cond.false:
- %t5 = load i32, i32* %t1, align 4
+ %t5 = load i32, ptr %t1, align 4
%b2 = icmp eq i32 %t5, 0
br i1 %b2, label %j, label %i
}
diff --git a/llvm/test/Transforms/SimplifyCFG/speculate-call.ll b/llvm/test/Transforms/SimplifyCFG/speculate-call.ll
index 4e6724e5765bc..0d198c7e13f54 100644
--- a/llvm/test/Transforms/SimplifyCFG/speculate-call.ll
+++ b/llvm/test/Transforms/SimplifyCFG/speculate-call.ll
@@ -25,18 +25,18 @@ define i32 @func() #0 {
; Since the function is speculatable, the nonnull attribute need not be dropped
; since it propagates poison (and call executes fine) if the parameter is indeed
; null.
-define i32 @strip_attr(i32 * %p) {
+define i32 @strip_attr(ptr %p) {
; CHECK-LABEL: strip_attr
; CHECK-LABEL: entry:
-; CHECK: %nullchk = icmp ne i32* %p, null
-; CHECK: %val = call i32 @func_nonnull(i32* nonnull %p)
+; CHECK: %nullchk = icmp ne ptr %p, null
+; CHECK: %val = call i32 @func_nonnull(ptr nonnull %p)
; CHECK: select
entry:
- %nullchk = icmp ne i32* %p, null
+ %nullchk = icmp ne ptr %p, null
br i1 %nullchk, label %if, label %end
if:
- %val = call i32 @func_nonnull(i32* nonnull %p) #1
+ %val = call i32 @func_nonnull(ptr nonnull %p) #1
br label %end
end:
@@ -46,18 +46,18 @@ end:
; We should strip the deref attribute since it can cause UB when the
; speculatable call is moved.
-define i32 @strip_attr2(i32 * %p) {
+define i32 @strip_attr2(ptr %p) {
; CHECK-LABEL: strip_attr2
; CHECK-LABEL: entry:
-; CHECK: %nullchk = icmp ne i32* %p, null
-; CHECK: %val = call i32 @func_nonnull(i32* %p)
+; CHECK: %nullchk = icmp ne ptr %p, null
+; CHECK: %val = call i32 @func_nonnull(ptr %p)
; CHECK: select
entry:
- %nullchk = icmp ne i32* %p, null
+ %nullchk = icmp ne ptr %p, null
br i1 %nullchk, label %if, label %end
if:
- %val = call i32 @func_nonnull(i32* dereferenceable(12) %p) #1
+ %val = call i32 @func_nonnull(ptr dereferenceable(12) %p) #1
br label %end
end:
@@ -65,7 +65,7 @@ end:
ret i32 %ret
}
-declare i32 @func_nonnull(i32*) #1
+declare i32 @func_nonnull(ptr) #1
attributes #0 = { nounwind readnone speculatable }
attributes #1 = { nounwind argmemonly speculatable }
diff --git a/llvm/test/Transforms/SimplifyCFG/speculate-math.ll b/llvm/test/Transforms/SimplifyCFG/speculate-math.ll
index 05599bebdd758..0a46cec945798 100644
--- a/llvm/test/Transforms/SimplifyCFG/speculate-math.ll
+++ b/llvm/test/Transforms/SimplifyCFG/speculate-math.ll
@@ -32,13 +32,13 @@ cond.end:
ret double %cond
}
-define void @sqrt_test(float addrspace(1)* noalias nocapture %out, float %a) nounwind {
+define void @sqrt_test(ptr addrspace(1) noalias nocapture %out, float %a) nounwind {
; CHECK-LABEL: @sqrt_test(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP0:%.*]] = tail call float @llvm.sqrt.f32(float [[A]]) #2
; CHECK-NEXT: [[COND_I:%.*]] = select afn i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-NEXT: ret void
;
entry:
@@ -51,17 +51,17 @@ cond.else.i: ; preds = %entry
test_sqrt.exit: ; preds = %cond.else.i, %entry
%cond.i = phi afn float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @fabs_test(float addrspace(1)* noalias nocapture %out, float %a) nounwind {
+define void @fabs_test(ptr addrspace(1) noalias nocapture %out, float %a) nounwind {
; CHECK-LABEL: @fabs_test(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP0:%.*]] = tail call float @llvm.fabs.f32(float [[A]]) #2
; CHECK-NEXT: [[COND_I:%.*]] = select reassoc i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-NEXT: ret void
;
entry:
@@ -74,17 +74,17 @@ cond.else.i: ; preds = %entry
test_fabs.exit: ; preds = %cond.else.i, %entry
%cond.i = phi reassoc float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @fma_test(float addrspace(1)* noalias nocapture %out, float %a, float %b, float %c) nounwind {
+define void @fma_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b, float %c) nounwind {
; CHECK-LABEL: @fma_test(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP0:%.*]] = tail call float @llvm.fma.f32(float [[A]], float [[B:%.*]], float [[C:%.*]]) #2
; CHECK-NEXT: [[COND_I:%.*]] = select reassoc nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-NEXT: ret void
;
entry:
@@ -97,17 +97,17 @@ cond.else.i: ; preds = %entry
test_fma.exit: ; preds = %cond.else.i, %entry
%cond.i = phi nsz reassoc float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @fmuladd_test(float addrspace(1)* noalias nocapture %out, float %a, float %b, float %c) nounwind {
+define void @fmuladd_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b, float %c) nounwind {
; CHECK-LABEL: @fmuladd_test(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP0:%.*]] = tail call float @llvm.fmuladd.f32(float [[A]], float [[B:%.*]], float [[C:%.*]]) #2
; CHECK-NEXT: [[COND_I:%.*]] = select ninf i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-NEXT: ret void
;
entry:
@@ -120,17 +120,17 @@ cond.else.i: ; preds = %entry
test_fmuladd.exit: ; preds = %cond.else.i, %entry
%cond.i = phi ninf float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @minnum_test(float addrspace(1)* noalias nocapture %out, float %a, float %b) nounwind {
+define void @minnum_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b) nounwind {
; CHECK-LABEL: @minnum_test(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP0:%.*]] = tail call float @llvm.minnum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-NEXT: [[COND_I:%.*]] = select i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-NEXT: ret void
;
entry:
@@ -143,17 +143,17 @@ cond.else.i: ; preds = %entry
test_minnum.exit: ; preds = %cond.else.i, %entry
%cond.i = phi float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @maxnum_test(float addrspace(1)* noalias nocapture %out, float %a, float %b) nounwind {
+define void @maxnum_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b) nounwind {
; CHECK-LABEL: @maxnum_test(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP0:%.*]] = tail call float @llvm.maxnum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-NEXT: [[COND_I:%.*]] = select ninf nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-NEXT: ret void
;
entry:
@@ -166,17 +166,17 @@ cond.else.i: ; preds = %entry
test_maxnum.exit: ; preds = %cond.else.i, %entry
%cond.i = phi ninf nsz float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @minimum_test(float addrspace(1)* noalias nocapture %out, float %a, float %b) nounwind {
+define void @minimum_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b) nounwind {
; CHECK-LABEL: @minimum_test(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP0:%.*]] = tail call float @llvm.minimum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-NEXT: [[COND_I:%.*]] = select reassoc i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-NEXT: ret void
;
entry:
@@ -189,17 +189,17 @@ cond.else.i: ; preds = %entry
test_minimum.exit: ; preds = %cond.else.i, %entry
%cond.i = phi reassoc float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
-define void @maximum_test(float addrspace(1)* noalias nocapture %out, float %a, float %b) nounwind {
+define void @maximum_test(ptr addrspace(1) noalias nocapture %out, float %a, float %b) nounwind {
; CHECK-LABEL: @maximum_test(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_I:%.*]] = fcmp olt float [[A:%.*]], 0.000000e+00
; CHECK-NEXT: [[TMP0:%.*]] = tail call float @llvm.maximum.f32(float [[A]], float [[B:%.*]]) #2
; CHECK-NEXT: [[COND_I:%.*]] = select nsz i1 [[CMP_I]], float 0x7FF8000000000000, float [[TMP0]]
-; CHECK-NEXT: store float [[COND_I]], float addrspace(1)* [[OUT:%.*]], align 4
+; CHECK-NEXT: store float [[COND_I]], ptr addrspace(1) [[OUT:%.*]], align 4
; CHECK-NEXT: ret void
;
entry:
@@ -212,6 +212,6 @@ cond.else.i: ; preds = %entry
test_maximum.exit: ; preds = %cond.else.i, %entry
%cond.i = phi nsz float [ %0, %cond.else.i ], [ 0x7FF8000000000000, %entry ]
- store float %cond.i, float addrspace(1)* %out, align 4
+ store float %cond.i, ptr addrspace(1) %out, align 4
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/speculate-store.ll b/llvm/test/Transforms/SimplifyCFG/speculate-store.ll
index 234abb1d9027c..6fbae7a0b2a75 100644
--- a/llvm/test/Transforms/SimplifyCFG/speculate-store.ll
+++ b/llvm/test/Transforms/SimplifyCFG/speculate-store.ll
@@ -1,25 +1,25 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S < %s | FileCheck %s
-define void @ifconvertstore(i32* %A, i32 %B, i32 %C, i32 %D) {
+define void @ifconvertstore(ptr %A, i32 %B, i32 %C, i32 %D) {
; CHECK-LABEL: @ifconvertstore(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i32 [[B:%.*]], i32* [[A:%.*]], align 4
+; CHECK-NEXT: store i32 [[B:%.*]], ptr [[A:%.*]], align 4
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[D:%.*]], 42
; CHECK-NEXT: [[SPEC_STORE_SELECT:%.*]] = select i1 [[CMP]], i32 [[C:%.*]], i32 [[B]], !prof [[PROF0:![0-9]+]]
-; CHECK-NEXT: store i32 [[SPEC_STORE_SELECT]], i32* [[A]], align 4
+; CHECK-NEXT: store i32 [[SPEC_STORE_SELECT]], ptr [[A]], align 4
; CHECK-NEXT: ret void
;
entry:
; First store to the location.
- store i32 %B, i32* %A
+ store i32 %B, ptr %A
%cmp = icmp sgt i32 %D, 42
br i1 %cmp, label %if.then, label %ret.end, !prof !0
; Make sure we speculate stores like the following one. It is cheap compared to
; a mispredicated branch.
if.then:
- store i32 %C, i32* %A
+ store i32 %C, ptr %A
br label %ret.end
ret.end:
@@ -28,25 +28,25 @@ ret.end:
; Store to a
diff erent location.
-define void @noifconvertstore1(i32* %A1, i32* %A2, i32 %B, i32 %C, i32 %D) {
+define void @noifconvertstore1(ptr %A1, ptr %A2, i32 %B, i32 %C, i32 %D) {
; CHECK-LABEL: @noifconvertstore1(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i32 [[B:%.*]], i32* [[A1:%.*]], align 4
+; CHECK-NEXT: store i32 [[B:%.*]], ptr [[A1:%.*]], align 4
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[D:%.*]], 42
; CHECK-NEXT: br i1 [[CMP]], label [[IF_THEN:%.*]], label [[RET_END:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: store i32 [[C:%.*]], i32* [[A2:%.*]], align 4
+; CHECK-NEXT: store i32 [[C:%.*]], ptr [[A2:%.*]], align 4
; CHECK-NEXT: br label [[RET_END]]
; CHECK: ret.end:
; CHECK-NEXT: ret void
;
entry:
- store i32 %B, i32* %A1
+ store i32 %B, ptr %A1
%cmp = icmp sgt i32 %D, 42
br i1 %cmp, label %if.then, label %ret.end
if.then:
- store i32 %C, i32* %A2
+ store i32 %C, ptr %A2
br label %ret.end
ret.end:
@@ -56,28 +56,28 @@ ret.end:
; This function could store to our address, so we can't repeat the first store a second time.
declare void @unknown_fun()
-define void @noifconvertstore2(i32* %A, i32 %B, i32 %C, i32 %D) {
+define void @noifconvertstore2(ptr %A, i32 %B, i32 %C, i32 %D) {
; CHECK-LABEL: @noifconvertstore2(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i32 [[B:%.*]], i32* [[A:%.*]], align 4
+; CHECK-NEXT: store i32 [[B:%.*]], ptr [[A:%.*]], align 4
; CHECK-NEXT: call void @unknown_fun()
; CHECK-NEXT: [[CMP6:%.*]] = icmp sgt i32 [[D:%.*]], 42
; CHECK-NEXT: br i1 [[CMP6]], label [[IF_THEN:%.*]], label [[RET_END:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: store i32 [[C:%.*]], i32* [[A]], align 4
+; CHECK-NEXT: store i32 [[C:%.*]], ptr [[A]], align 4
; CHECK-NEXT: br label [[RET_END]]
; CHECK: ret.end:
; CHECK-NEXT: ret void
;
entry:
; First store to the location.
- store i32 %B, i32* %A
+ store i32 %B, ptr %A
call void @unknown_fun()
%cmp6 = icmp sgt i32 %D, 42
br i1 %cmp6, label %if.then, label %ret.end
if.then:
- store i32 %C, i32* %A
+ store i32 %C, ptr %A
br label %ret.end
ret.end:
@@ -86,26 +86,26 @@ ret.end:
; Make sure we don't speculate volatile stores.
-define void @noifconvertstore_volatile(i32* %A, i32 %B, i32 %C, i32 %D) {
+define void @noifconvertstore_volatile(ptr %A, i32 %B, i32 %C, i32 %D) {
; CHECK-LABEL: @noifconvertstore_volatile(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i32 [[B:%.*]], i32* [[A:%.*]], align 4
+; CHECK-NEXT: store i32 [[B:%.*]], ptr [[A:%.*]], align 4
; CHECK-NEXT: [[CMP6:%.*]] = icmp sgt i32 [[D:%.*]], 42
; CHECK-NEXT: br i1 [[CMP6]], label [[IF_THEN:%.*]], label [[RET_END:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: store volatile i32 [[C:%.*]], i32* [[A]], align 4
+; CHECK-NEXT: store volatile i32 [[C:%.*]], ptr [[A]], align 4
; CHECK-NEXT: br label [[RET_END]]
; CHECK: ret.end:
; CHECK-NEXT: ret void
;
entry:
; First store to the location.
- store i32 %B, i32* %A
+ store i32 %B, ptr %A
%cmp6 = icmp sgt i32 %D, 42
br i1 %cmp6, label %if.then, label %ret.end
if.then:
- store volatile i32 %C, i32* %A
+ store volatile i32 %C, ptr %A
br label %ret.end
ret.end:
@@ -118,39 +118,35 @@ define i32 @load_before_store_noescape(i64 %i, i32 %b) {
; CHECK-LABEL: @load_before_store_noescape(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[A:%.*]] = alloca [2 x i32], align 8
-; CHECK-NEXT: [[TMP0:%.*]] = bitcast [2 x i32]* [[A]] to i64*
-; CHECK-NEXT: store i64 4294967296, i64* [[TMP0]], align 8
-; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [2 x i32], [2 x i32]* [[A]], i64 0, i64 [[I:%.*]]
-; CHECK-NEXT: [[TMP1:%.*]] = load i32, i32* [[ARRAYIDX]], align 4
+; CHECK-NEXT: store i64 4294967296, ptr [[A]], align 8
+; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [2 x i32], ptr [[A]], i64 0, i64 [[I:%.*]]
+; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr [[ARRAYIDX]], align 4
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP1]], [[B:%.*]]
; CHECK-NEXT: [[SPEC_STORE_SELECT:%.*]] = select i1 [[CMP]], i32 [[B]], i32 [[TMP1]]
-; CHECK-NEXT: store i32 [[SPEC_STORE_SELECT]], i32* [[ARRAYIDX]], align 4
-; CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds [2 x i32], [2 x i32]* [[A]], i64 0, i64 0
-; CHECK-NEXT: [[TMP2:%.*]] = load i32, i32* [[ARRAYIDX1]], align 4
-; CHECK-NEXT: [[ARRAYIDX2:%.*]] = getelementptr inbounds [2 x i32], [2 x i32]* [[A]], i64 0, i64 1
-; CHECK-NEXT: [[TMP3:%.*]] = load i32, i32* [[ARRAYIDX2]], align 4
+; CHECK-NEXT: store i32 [[SPEC_STORE_SELECT]], ptr [[ARRAYIDX]], align 4
+; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[A]], align 4
+; CHECK-NEXT: [[ARRAYIDX2:%.*]] = getelementptr inbounds [2 x i32], ptr [[A]], i64 0, i64 1
+; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[ARRAYIDX2]], align 4
; CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[TMP2]], [[TMP3]]
; CHECK-NEXT: ret i32 [[ADD]]
;
entry:
%a = alloca [2 x i32], align 8
- %0 = bitcast [2 x i32]* %a to i64*
- store i64 4294967296, i64* %0, align 8
- %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 %i
- %1 = load i32, i32* %arrayidx, align 4
- %cmp = icmp slt i32 %1, %b
+ store i64 4294967296, ptr %a, align 8
+ %arrayidx = getelementptr inbounds [2 x i32], ptr %a, i64 0, i64 %i
+ %0 = load i32, ptr %arrayidx, align 4
+ %cmp = icmp slt i32 %0, %b
br i1 %cmp, label %if.then, label %if.end
if.then:
- store i32 %b, i32* %arrayidx, align 4
+ store i32 %b, ptr %arrayidx, align 4
br label %if.end
if.end:
- %arrayidx1 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 0
- %2 = load i32, i32* %arrayidx1, align 4
- %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 1
- %3 = load i32, i32* %arrayidx2, align 4
- %add = add nsw i32 %2, %3
+ %1 = load i32, ptr %a, align 4
+ %arrayidx2 = getelementptr inbounds [2 x i32], ptr %a, i64 0, i64 1
+ %2 = load i32, ptr %arrayidx2, align 4
+ %add = add nsw i32 %1, %2
ret i32 %add
}
@@ -159,50 +155,46 @@ define i32 @load_before_store_escape(i64 %i, i32 %b) {
; CHECK-LABEL: @load_before_store_escape(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[A:%.*]] = alloca [2 x i32], align 8
-; CHECK-NEXT: [[TMP0:%.*]] = bitcast [2 x i32]* [[A]] to i64*
-; CHECK-NEXT: store i64 4294967296, i64* [[TMP0]], align 8
-; CHECK-NEXT: call void @fork_some_threads([2 x i32]* [[A]])
-; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [2 x i32], [2 x i32]* [[A]], i64 0, i64 [[I:%.*]]
-; CHECK-NEXT: [[TMP1:%.*]] = load i32, i32* [[ARRAYIDX]], align 4
+; CHECK-NEXT: store i64 4294967296, ptr [[A]], align 8
+; CHECK-NEXT: call void @fork_some_threads(ptr [[A]])
+; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [2 x i32], ptr [[A]], i64 0, i64 [[I:%.*]]
+; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr [[ARRAYIDX]], align 4
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP1]], [[B:%.*]]
; CHECK-NEXT: br i1 [[CMP]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: store i32 [[B]], i32* [[ARRAYIDX]], align 4
+; CHECK-NEXT: store i32 [[B]], ptr [[ARRAYIDX]], align 4
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
-; CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds [2 x i32], [2 x i32]* [[A]], i64 0, i64 0
-; CHECK-NEXT: [[TMP2:%.*]] = load i32, i32* [[ARRAYIDX1]], align 4
-; CHECK-NEXT: [[ARRAYIDX2:%.*]] = getelementptr inbounds [2 x i32], [2 x i32]* [[A]], i64 0, i64 1
-; CHECK-NEXT: [[TMP3:%.*]] = load i32, i32* [[ARRAYIDX2]], align 4
+; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[A]], align 4
+; CHECK-NEXT: [[ARRAYIDX2:%.*]] = getelementptr inbounds [2 x i32], ptr [[A]], i64 0, i64 1
+; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[ARRAYIDX2]], align 4
; CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[TMP2]], [[TMP3]]
; CHECK-NEXT: call void @join_some_threads()
; CHECK-NEXT: ret i32 [[ADD]]
;
entry:
%a = alloca [2 x i32], align 8
- %0 = bitcast [2 x i32]* %a to i64*
- store i64 4294967296, i64* %0, align 8
- call void @fork_some_threads([2 x i32]* %a)
- %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 %i
- %1 = load i32, i32* %arrayidx, align 4
- %cmp = icmp slt i32 %1, %b
+ store i64 4294967296, ptr %a, align 8
+ call void @fork_some_threads(ptr %a)
+ %arrayidx = getelementptr inbounds [2 x i32], ptr %a, i64 0, i64 %i
+ %0 = load i32, ptr %arrayidx, align 4
+ %cmp = icmp slt i32 %0, %b
br i1 %cmp, label %if.then, label %if.end
if.then:
- store i32 %b, i32* %arrayidx, align 4
+ store i32 %b, ptr %arrayidx, align 4
br label %if.end
if.end:
- %arrayidx1 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 0
- %2 = load i32, i32* %arrayidx1, align 4
- %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 1
- %3 = load i32, i32* %arrayidx2, align 4
- %add = add nsw i32 %2, %3
+ %1 = load i32, ptr %a, align 4
+ %arrayidx2 = getelementptr inbounds [2 x i32], ptr %a, i64 0, i64 1
+ %2 = load i32, ptr %arrayidx2, align 4
+ %add = add nsw i32 %1, %2
call void @join_some_threads()
ret i32 %add
}
-declare void @fork_some_threads([2 x i32] *);
+declare void @fork_some_threads(ptr);
declare void @join_some_threads();
; Don't speculate if it's not the only instruction in the block (not counting
@@ -211,44 +203,40 @@ define i32 @not_alone_in_block(i64 %i, i32 %b) {
; CHECK-LABEL: @not_alone_in_block(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[A:%.*]] = alloca [2 x i32], align 8
-; CHECK-NEXT: [[TMP0:%.*]] = bitcast [2 x i32]* [[A]] to i64*
-; CHECK-NEXT: store i64 4294967296, i64* [[TMP0]], align 8
-; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [2 x i32], [2 x i32]* [[A]], i64 0, i64 [[I:%.*]]
-; CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds [2 x i32], [2 x i32]* [[A]], i64 0, i64 0
-; CHECK-NEXT: [[TMP1:%.*]] = load i32, i32* [[ARRAYIDX]], align 4
+; CHECK-NEXT: store i64 4294967296, ptr [[A]], align 8
+; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [2 x i32], ptr [[A]], i64 0, i64 [[I:%.*]]
+; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr [[ARRAYIDX]], align 4
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP1]], [[B:%.*]]
; CHECK-NEXT: br i1 [[CMP]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: store i32 [[B]], i32* [[ARRAYIDX]], align 4
-; CHECK-NEXT: store i32 [[B]], i32* [[ARRAYIDX1]], align 4
+; CHECK-NEXT: store i32 [[B]], ptr [[ARRAYIDX]], align 4
+; CHECK-NEXT: store i32 [[B]], ptr [[A]], align 4
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
-; CHECK-NEXT: [[TMP2:%.*]] = load i32, i32* [[ARRAYIDX1]], align 4
-; CHECK-NEXT: [[ARRAYIDX2:%.*]] = getelementptr inbounds [2 x i32], [2 x i32]* [[A]], i64 0, i64 1
-; CHECK-NEXT: [[TMP3:%.*]] = load i32, i32* [[ARRAYIDX2]], align 4
+; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[A]], align 4
+; CHECK-NEXT: [[ARRAYIDX2:%.*]] = getelementptr inbounds [2 x i32], ptr [[A]], i64 0, i64 1
+; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[ARRAYIDX2]], align 4
; CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[TMP2]], [[TMP3]]
; CHECK-NEXT: ret i32 [[ADD]]
;
entry:
%a = alloca [2 x i32], align 8
- %0 = bitcast [2 x i32]* %a to i64*
- store i64 4294967296, i64* %0, align 8
- %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 %i
- %arrayidx1 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 0
- %1 = load i32, i32* %arrayidx, align 4
- %cmp = icmp slt i32 %1, %b
+ store i64 4294967296, ptr %a, align 8
+ %arrayidx = getelementptr inbounds [2 x i32], ptr %a, i64 0, i64 %i
+ %0 = load i32, ptr %arrayidx, align 4
+ %cmp = icmp slt i32 %0, %b
br i1 %cmp, label %if.then, label %if.end
if.then:
- store i32 %b, i32* %arrayidx, align 4
- store i32 %b, i32* %arrayidx1, align 4
+ store i32 %b, ptr %arrayidx, align 4
+ store i32 %b, ptr %a, align 4
br label %if.end
if.end:
- %2 = load i32, i32* %arrayidx1, align 4
- %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %a, i64 0, i64 1
- %3 = load i32, i32* %arrayidx2, align 4
- %add = add nsw i32 %2, %3
+ %1 = load i32, ptr %a, align 4
+ %arrayidx2 = getelementptr inbounds [2 x i32], ptr %a, i64 0, i64 1
+ %2 = load i32, ptr %arrayidx2, align 4
+ %add = add nsw i32 %1, %2
ret i32 %add
}
diff --git a/llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll b/llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll
index b3ef46be1573d..04f2cbfb2ba88 100644
--- a/llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll
+++ b/llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll
@@ -8,20 +8,20 @@
define void @yes(i1 %c) nounwind {
entry:
- %a = alloca [4 x i64*], align 8
- %__a.addr = getelementptr [4 x i64*], [4 x i64*]* %a, i64 0, i64 3
- call void @frob(i64** %__a.addr)
+ %a = alloca [4 x ptr], align 8
+ %__a.addr = getelementptr [4 x ptr], ptr %a, i64 0, i64 3
+ call void @frob(ptr %__a.addr)
br i1 %c, label %if.then, label %if.end
if.then: ; preds = %entry
br label %return
if.end: ; preds = %entry
- %tmp5 = load i64*, i64** %__a.addr, align 8
+ %tmp5 = load ptr, ptr %__a.addr, align 8
br label %return
return: ; preds = %if.end, %if.then
- %storemerge = phi i64* [ undef, %if.then ], [ %tmp5, %if.end ]
+ %storemerge = phi ptr [ undef, %if.then ], [ %tmp5, %if.end ]
ret void
}
@@ -30,20 +30,20 @@ return: ; preds = %if.end, %if.then
define void @no0(i1 %c) nounwind {
entry:
- %a = alloca [4 x i64*], align 8
- %__a.addr = getelementptr [4 x i64*], [4 x i64*]* %a, i64 0, i64 4
- call void @frob(i64** %__a.addr)
+ %a = alloca [4 x ptr], align 8
+ %__a.addr = getelementptr [4 x ptr], ptr %a, i64 0, i64 4
+ call void @frob(ptr %__a.addr)
br i1 %c, label %if.then, label %if.end
if.then: ; preds = %entry
br label %return
if.end: ; preds = %entry
- %tmp5 = load i64*, i64** %__a.addr, align 8
+ %tmp5 = load ptr, ptr %__a.addr, align 8
br label %return
return: ; preds = %if.end, %if.then
- %storemerge = phi i64* [ undef, %if.then ], [ %tmp5, %if.end ]
+ %storemerge = phi ptr [ undef, %if.then ], [ %tmp5, %if.end ]
ret void
}
@@ -52,20 +52,20 @@ return: ; preds = %if.end, %if.then
define void @no1(i1 %c, i64 %n) nounwind {
entry:
- %a = alloca [4 x i64*], align 8
- %__a.addr = getelementptr [4 x i64*], [4 x i64*]* %a, i64 0, i64 %n
- call void @frob(i64** %__a.addr)
+ %a = alloca [4 x ptr], align 8
+ %__a.addr = getelementptr [4 x ptr], ptr %a, i64 0, i64 %n
+ call void @frob(ptr %__a.addr)
br i1 %c, label %if.then, label %if.end
if.then: ; preds = %entry
br label %return
if.end: ; preds = %entry
- %tmp5 = load i64*, i64** %__a.addr, align 8
+ %tmp5 = load ptr, ptr %__a.addr, align 8
br label %return
return: ; preds = %if.end, %if.then
- %storemerge = phi i64* [ undef, %if.then ], [ %tmp5, %if.end ]
+ %storemerge = phi ptr [ undef, %if.then ], [ %tmp5, %if.end ]
ret void
}
@@ -74,21 +74,21 @@ return: ; preds = %if.end, %if.then
define void @no2(i1 %c, i64 %n) nounwind {
entry:
- %a = alloca [4 x i64*], align 8
- %__a.addr = getelementptr [4 x i64*], [4 x i64*]* %a, i64 1, i64 0
- call void @frob(i64** %__a.addr)
+ %a = alloca [4 x ptr], align 8
+ %__a.addr = getelementptr [4 x ptr], ptr %a, i64 1, i64 0
+ call void @frob(ptr %__a.addr)
br i1 %c, label %if.then, label %if.end
if.then: ; preds = %entry
br label %return
if.end: ; preds = %entry
- %tmp5 = load i64*, i64** %__a.addr, align 8
+ %tmp5 = load ptr, ptr %__a.addr, align 8
br label %return
return: ; preds = %if.end, %if.then
- %storemerge = phi i64* [ undef, %if.then ], [ %tmp5, %if.end ]
+ %storemerge = phi ptr [ undef, %if.then ], [ %tmp5, %if.end ]
ret void
}
-declare void @frob(i64** nocapture %p)
+declare void @frob(ptr nocapture %p)
diff --git a/llvm/test/Transforms/SimplifyCFG/statepoint-invoke-unwind.ll b/llvm/test/Transforms/SimplifyCFG/statepoint-invoke-unwind.ll
index 8c5dcf13de812..eb4b6bde15d42 100644
--- a/llvm/test/Transforms/SimplifyCFG/statepoint-invoke-unwind.ll
+++ b/llvm/test/Transforms/SimplifyCFG/statepoint-invoke-unwind.ll
@@ -2,20 +2,20 @@
; Test that statepoint intrinsic is marked with Throwable attribute and it is
; not optimized into call
-declare i64 addrspace(1)* @gc_call()
-declare token @llvm.experimental.gc.statepoint.p0f_p1i64f(i64, i32, i64 addrspace(1)* ()*, i32, i32, ...)
-declare i32* @fake_personality_function()
+declare ptr addrspace(1) @gc_call()
+declare token @llvm.experimental.gc.statepoint.p0(i64, i32, ptr addrspace(1) ()*, i32, i32, ...)
+declare ptr @fake_personality_function()
-define i32 @test() gc "statepoint-example" personality i32* ()* @fake_personality_function {
+define i32 @test() gc "statepoint-example" personality ptr @fake_personality_function {
; CHECK-LABEL: test
entry:
; CHECK-LABEL: entry:
- ; CHECK-NEXT: %sp = invoke token (i64, i32, i64 addrspace(1)* ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i64f
- %sp = invoke token (i64, i32, i64 addrspace(1)* ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i64f(i64 0, i32 0, i64 addrspace(1)* ()* elementtype(i64 addrspace(1)* ()) @gc_call, i32 0, i32 0, i32 0, i32 0)
+ ; CHECK-NEXT: %sp = invoke token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0
+ %sp = invoke token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 0, i32 0, ptr elementtype(ptr addrspace(1) ()) @gc_call, i32 0, i32 0, i32 0, i32 0)
to label %normal unwind label %exception
exception:
- %lpad = landingpad { i8*, i32 }
+ %lpad = landingpad { ptr, i32 }
cleanup
ret i32 0
diff --git a/llvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll b/llvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll
index 9126c3873f973..4136f33983a2b 100644
--- a/llvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll
+++ b/llvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll
@@ -113,7 +113,7 @@ b:
; This would crash because we did not clean up the
; default block of the switch before removing the switch.
-define void @PR42737(i32* %a, i1 %c) {
+define void @PR42737(ptr %a, i1 %c) {
; CHECK-LABEL: @PR42737(
; CHECK-NEXT: entry:
; CHECK-NEXT: unreachable
@@ -122,7 +122,7 @@ entry:
br i1 %c, label %switch, label %else
else:
- store i32 2, i32* %a
+ store i32 2, ptr %a
br label %switch
switch:
@@ -147,10 +147,10 @@ unreach2:
}
-define void @pr53208_single_reachable_dest(i8 %sw, i32* %p0) {
+define void @pr53208_single_reachable_dest(i8 %sw, ptr %p0) {
; CHECK-LABEL: @pr53208_single_reachable_dest(
; CHECK-NEXT: group2:
-; CHECK-NEXT: call void @bar(i32* [[P0:%.*]])
+; CHECK-NEXT: call void @bar(ptr [[P0:%.*]])
; CHECK-NEXT: ret void
;
switch i8 %sw, label %group3 [
@@ -183,9 +183,9 @@ group3:
br label %exit
exit:
- %phi = phi i32* [ null, %group3 ], [ %p0, %group2 ], [ null, %group1 ]
- call void @bar(i32* %phi)
+ %phi = phi ptr [ null, %group3 ], [ %p0, %group2 ], [ null, %group1 ]
+ call void @bar(ptr %phi)
ret void
}
-declare void @bar(i32* nonnull dereferenceable(4))
+declare void @bar(ptr nonnull dereferenceable(4))
diff --git a/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll b/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll
index 60a567ca7b3b5..14757e0dc6aad 100644
--- a/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll
+++ b/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll
@@ -89,7 +89,7 @@ label.9: ; preds = %endif.0
then.6: ; preds = %label.9
br label %endif.6
endif.6: ; preds = %then.6, %label.9
- store i32 0, i32* null
+ store i32 0, ptr null
br label %switchexit
switchexit: ; preds = %endif.6, %loopentry.2, %loopentry.1, %loopentry.0, %endif.0
br i1 false, label %endif.7, label %then.7
diff --git a/llvm/test/Transforms/SimplifyCFG/switch-to-select-multiple-edge-per-block-phi.ll b/llvm/test/Transforms/SimplifyCFG/switch-to-select-multiple-edge-per-block-phi.ll
index 2bb9a5776d405..e7be89b60ebf2 100644
--- a/llvm/test/Transforms/SimplifyCFG/switch-to-select-multiple-edge-per-block-phi.ll
+++ b/llvm/test/Transforms/SimplifyCFG/switch-to-select-multiple-edge-per-block-phi.ll
@@ -19,11 +19,11 @@
define i32 @fn1() {
; CHECK-LABEL: @fn1(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* @b, align 4
+; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @b, align 4
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[TMP0]], 0
; CHECK-NEXT: br i1 [[TOBOOL]], label [[RETURN:%.*]], label [[IF_THEN:%.*]]
; CHECK: if.then:
-; CHECK-NEXT: [[TMP1:%.*]] = load i32, i32* @a, align 4
+; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr @a, align 4
; CHECK-NEXT: [[SWITCH_SELECTCMP:%.*]] = icmp eq i32 [[TMP1]], 0
; CHECK-NEXT: [[SWITCH_SELECT:%.*]] = select i1 [[SWITCH_SELECTCMP]], i32 0, i32 0
; CHECK-NEXT: [[SWITCH_SELECTCMP1:%.*]] = icmp eq i32 [[TMP1]], 5
@@ -34,12 +34,12 @@ define i32 @fn1() {
; CHECK-NEXT: ret i32 [[RETVAL_0]]
;
entry:
- %0 = load i32, i32* @b, align 4
+ %0 = load i32, ptr @b, align 4
%tobool = icmp eq i32 %0, 0
br i1 %tobool, label %if.end3, label %if.then
if.then:
- %1 = load i32, i32* @a, align 4
+ %1 = load i32, ptr @a, align 4
switch i32 %1, label %if.end3 [
i32 5, label %return
i32 0, label %return
diff --git a/llvm/test/Transforms/SimplifyCFG/switch_create-custom-dl.ll b/llvm/test/Transforms/SimplifyCFG/switch_create-custom-dl.ll
index c214bc32361ad..1396a95415020 100644
--- a/llvm/test/Transforms/SimplifyCFG/switch_create-custom-dl.ll
+++ b/llvm/test/Transforms/SimplifyCFG/switch_create-custom-dl.ll
@@ -33,9 +33,9 @@ F: ; preds = %0
ret void
}
-define void @test1_ptr(i32* %V) {
+define void @test1_ptr(ptr %V) {
; CHECK-LABEL: @test1_ptr(
-; CHECK-NEXT: [[MAGICPTR:%.*]] = ptrtoint i32* [[V:%.*]] to i40
+; CHECK-NEXT: [[MAGICPTR:%.*]] = ptrtoint ptr [[V:%.*]] to i40
; CHECK-NEXT: switch i40 [[MAGICPTR]], label [[F:%.*]] [
; CHECK-NEXT: i40 17, label [[T:%.*]]
; CHECK-NEXT: i40 4, label [[T]]
@@ -49,8 +49,8 @@ define void @test1_ptr(i32* %V) {
; CHECK-NEXT: call void @foo2()
; CHECK-NEXT: br label [[COMMON_RET]]
;
- %C1 = icmp eq i32* %V, inttoptr (i32 4 to i32*)
- %C2 = icmp eq i32* %V, inttoptr (i32 17 to i32*)
+ %C1 = icmp eq ptr %V, inttoptr (i32 4 to ptr)
+ %C2 = icmp eq ptr %V, inttoptr (i32 17 to ptr)
%CN = or i1 %C1, %C2 ; <i1> [#uses=1]
br i1 %CN, label %T, label %F
T: ; preds = %0
@@ -61,9 +61,9 @@ F: ; preds = %0
ret void
}
-define void @test1_ptr_as1(i32 addrspace(1)* %V) {
+define void @test1_ptr_as1(ptr addrspace(1) %V) {
; CHECK-LABEL: @test1_ptr_as1(
-; CHECK-NEXT: [[MAGICPTR:%.*]] = ptrtoint i32 addrspace(1)* [[V:%.*]] to i40
+; CHECK-NEXT: [[MAGICPTR:%.*]] = ptrtoint ptr addrspace(1) [[V:%.*]] to i40
; CHECK-NEXT: switch i40 [[MAGICPTR]], label [[F:%.*]] [
; CHECK-NEXT: i40 17, label [[T:%.*]]
; CHECK-NEXT: i40 4, label [[T]]
@@ -77,8 +77,8 @@ define void @test1_ptr_as1(i32 addrspace(1)* %V) {
; CHECK-NEXT: call void @foo2()
; CHECK-NEXT: br label [[COMMON_RET]]
;
- %C1 = icmp eq i32 addrspace(1)* %V, inttoptr (i32 4 to i32 addrspace(1)*)
- %C2 = icmp eq i32 addrspace(1)* %V, inttoptr (i32 17 to i32 addrspace(1)*)
+ %C1 = icmp eq ptr addrspace(1) %V, inttoptr (i32 4 to ptr addrspace(1))
+ %C2 = icmp eq ptr addrspace(1) %V, inttoptr (i32 17 to ptr addrspace(1))
%CN = or i1 %C1, %C2 ; <i1> [#uses=1]
br i1 %CN, label %T, label %F
T: ; preds = %0
@@ -214,19 +214,19 @@ lor.end: ; preds = %entry, %entry, %ent
}
-define i1 @test6({ i32, i32 }* %I) {
+define i1 @test6(ptr %I) {
; CHECK-LABEL: @test6(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP_1_I:%.*]] = getelementptr { i32, i32 }, { i32, i32 }* [[I:%.*]], i64 0, i32 1
-; CHECK-NEXT: [[TMP_2_I:%.*]] = load i32, i32* [[TMP_1_I]], align 4
+; CHECK-NEXT: [[TMP_1_I:%.*]] = getelementptr { i32, i32 }, ptr [[I:%.*]], i64 0, i32 1
+; CHECK-NEXT: [[TMP_2_I:%.*]] = load i32, ptr [[TMP_1_I]], align 4
; CHECK-NEXT: [[TMP_2_I_OFF:%.*]] = add i32 [[TMP_2_I]], -14
; CHECK-NEXT: [[SWITCH:%.*]] = icmp ult i32 [[TMP_2_I_OFF]], 6
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[SWITCH]], i1 true, i1 false
; CHECK-NEXT: ret i1 [[SPEC_SELECT]]
;
entry:
- %tmp.1.i = getelementptr { i32, i32 }, { i32, i32 }* %I, i64 0, i32 1 ; <i32*> [#uses=1]
- %tmp.2.i = load i32, i32* %tmp.1.i ; <i32> [#uses=6]
+ %tmp.1.i = getelementptr { i32, i32 }, ptr %I, i64 0, i32 1 ; <ptr> [#uses=1]
+ %tmp.2.i = load i32, ptr %tmp.1.i ; <i32> [#uses=6]
%tmp.2 = icmp eq i32 %tmp.2.i, 14 ; <i1> [#uses=1]
br i1 %tmp.2, label %shortcirc_done.4, label %shortcirc_next.0
shortcirc_next.0: ; preds = %entry
diff --git a/llvm/test/Transforms/SimplifyCFG/switch_create.ll b/llvm/test/Transforms/SimplifyCFG/switch_create.ll
index 72131b19e950a..94de928cc5ecb 100644
--- a/llvm/test/Transforms/SimplifyCFG/switch_create.ll
+++ b/llvm/test/Transforms/SimplifyCFG/switch_create.ll
@@ -60,9 +60,9 @@ F:
ret void
}
-define void @test1_ptr(i32* %V) {
+define void @test1_ptr(ptr %V) {
; DL-LABEL: @test1_ptr(
-; DL-NEXT: [[MAGICPTR:%.*]] = ptrtoint i32* [[V:%.*]] to i32
+; DL-NEXT: [[MAGICPTR:%.*]] = ptrtoint ptr [[V:%.*]] to i32
; DL-NEXT: switch i32 [[MAGICPTR]], label [[F:%.*]] [
; DL-NEXT: i32 17, label [[T:%.*]]
; DL-NEXT: i32 4, label [[T]]
@@ -76,8 +76,8 @@ define void @test1_ptr(i32* %V) {
; DL-NEXT: call void @foo2()
; DL-NEXT: br label [[COMMON_RET]]
;
- %C1 = icmp eq i32* %V, inttoptr (i32 4 to i32*)
- %C2 = icmp eq i32* %V, inttoptr (i32 17 to i32*)
+ %C1 = icmp eq ptr %V, inttoptr (i32 4 to ptr)
+ %C2 = icmp eq ptr %V, inttoptr (i32 17 to ptr)
%CN = or i1 %C1, %C2 ; <i1> [#uses=1]
br i1 %CN, label %T, label %F
T: ; preds = %0
@@ -88,9 +88,9 @@ F: ; preds = %0
ret void
}
-define void @test1_ptr_as1(i32 addrspace(1)* %V) {
+define void @test1_ptr_as1(ptr addrspace(1) %V) {
; DL-LABEL: @test1_ptr_as1(
-; DL-NEXT: [[MAGICPTR:%.*]] = ptrtoint i32 addrspace(1)* [[V:%.*]] to i16
+; DL-NEXT: [[MAGICPTR:%.*]] = ptrtoint ptr addrspace(1) [[V:%.*]] to i16
; DL-NEXT: switch i16 [[MAGICPTR]], label [[F:%.*]] [
; DL-NEXT: i16 17, label [[T:%.*]]
; DL-NEXT: i16 4, label [[T]]
@@ -104,8 +104,8 @@ define void @test1_ptr_as1(i32 addrspace(1)* %V) {
; DL-NEXT: call void @foo2()
; DL-NEXT: br label [[COMMON_RET]]
;
- %C1 = icmp eq i32 addrspace(1)* %V, inttoptr (i32 4 to i32 addrspace(1)*)
- %C2 = icmp eq i32 addrspace(1)* %V, inttoptr (i32 17 to i32 addrspace(1)*)
+ %C1 = icmp eq ptr addrspace(1) %V, inttoptr (i32 4 to ptr addrspace(1))
+ %C2 = icmp eq ptr addrspace(1) %V, inttoptr (i32 17 to ptr addrspace(1))
%CN = or i1 %C1, %C2 ; <i1> [#uses=1]
br i1 %CN, label %T, label %F
T: ; preds = %0
@@ -268,19 +268,19 @@ lor.end: ; preds = %entry, %entry, %ent
}
-define i1 @test6({ i32, i32 }* %I) {
+define i1 @test6(ptr %I) {
; CHECK-LABEL: @test6(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[TMP_1_I:%.*]] = getelementptr { i32, i32 }, { i32, i32 }* [[I:%.*]], i64 0, i32 1
-; CHECK-NEXT: [[TMP_2_I:%.*]] = load i32, i32* [[TMP_1_I]], align 4
+; CHECK-NEXT: [[TMP_1_I:%.*]] = getelementptr { i32, i32 }, ptr [[I:%.*]], i64 0, i32 1
+; CHECK-NEXT: [[TMP_2_I:%.*]] = load i32, ptr [[TMP_1_I]], align 4
; CHECK-NEXT: [[TMP_2_I_OFF:%.*]] = add i32 [[TMP_2_I]], -14
; CHECK-NEXT: [[SWITCH:%.*]] = icmp ult i32 [[TMP_2_I_OFF]], 6
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[SWITCH]], i1 true, i1 false
; CHECK-NEXT: ret i1 [[SPEC_SELECT]]
;
entry:
- %tmp.1.i = getelementptr { i32, i32 }, { i32, i32 }* %I, i64 0, i32 1 ; <i32*> [#uses=1]
- %tmp.2.i = load i32, i32* %tmp.1.i ; <i32> [#uses=6]
+ %tmp.1.i = getelementptr { i32, i32 }, ptr %I, i64 0, i32 1 ; <ptr> [#uses=1]
+ %tmp.2.i = load i32, ptr %tmp.1.i ; <i32> [#uses=6]
%tmp.2 = icmp eq i32 %tmp.2.i, 14 ; <i1> [#uses=1]
br i1 %tmp.2, label %shortcirc_done.4, label %shortcirc_next.0
shortcirc_next.0: ; preds = %entry
diff --git a/llvm/test/Transforms/SimplifyCFG/switch_ub.ll b/llvm/test/Transforms/SimplifyCFG/switch_ub.ll
index 53794ee9f17ec..6aa57d9856601 100644
--- a/llvm/test/Transforms/SimplifyCFG/switch_ub.ll
+++ b/llvm/test/Transforms/SimplifyCFG/switch_ub.ll
@@ -5,7 +5,7 @@ declare void @foo_01()
declare void @foo_02()
declare void @foo_03()
-define i32 @test_01(i32* %p, i32 %x, i1 %cond) {
+define i32 @test_01(ptr %p, i32 %x, i1 %cond) {
; CHECK-LABEL: @test_01(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[COND:%.*]], label [[BB:%.*]], label [[COMMON_RET:%.*]]
@@ -13,7 +13,7 @@ define i32 @test_01(i32* %p, i32 %x, i1 %cond) {
; CHECK-NEXT: [[COMMON_RET_OP:%.*]] = phi i32 [ [[R:%.*]], [[BB]] ], [ 0, [[ENTRY:%.*]] ]
; CHECK-NEXT: ret i32 [[COMMON_RET_OP]]
; CHECK: bb:
-; CHECK-NEXT: [[R]] = load i32, i32* [[P:%.*]], align 4
+; CHECK-NEXT: [[R]] = load i32, ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[COMMON_RET]]
;
entry:
@@ -25,15 +25,15 @@ pred:
i32 -654321, label %bb]
bb:
- %phi = phi i32* [null, %pred], [null, %pred], [null, %pred], [%p, %entry]
- %r = load i32, i32* %phi
+ %phi = phi ptr [null, %pred], [null, %pred], [null, %pred], [%p, %entry]
+ %r = load i32, ptr %phi
ret i32 %r
other_succ:
ret i32 0
}
-define i32 @test_02(i32* %p, i32 %x, i1 %cond) {
+define i32 @test_02(ptr %p, i32 %x, i1 %cond) {
; CHECK-LABEL: @test_02(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[COND:%.*]], label [[BB:%.*]], label [[COMMON_RET:%.*]]
@@ -41,7 +41,7 @@ define i32 @test_02(i32* %p, i32 %x, i1 %cond) {
; CHECK-NEXT: [[COMMON_RET_OP:%.*]] = phi i32 [ [[R:%.*]], [[BB]] ], [ 0, [[ENTRY:%.*]] ]
; CHECK-NEXT: ret i32 [[COMMON_RET_OP]]
; CHECK: bb:
-; CHECK-NEXT: [[R]] = load i32, i32* [[P:%.*]], align 4
+; CHECK-NEXT: [[R]] = load i32, ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[COMMON_RET]]
;
entry:
@@ -53,15 +53,15 @@ pred:
i32 -654321, label %other_succ]
bb:
- %phi = phi i32* [null, %pred], [%p, %entry]
- %r = load i32, i32* %phi
+ %phi = phi ptr [null, %pred], [%p, %entry]
+ %r = load i32, ptr %phi
ret i32 %r
other_succ:
ret i32 0
}
-define i32 @test_03(i32* %p, i32 %x, i1 %cond) {
+define i32 @test_03(ptr %p, i32 %x, i1 %cond) {
; CHECK-LABEL: @test_03(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[COND:%.*]], label [[BB:%.*]], label [[PRED:%.*]]
@@ -80,7 +80,7 @@ define i32 @test_03(i32* %p, i32 %x, i1 %cond) {
; CHECK: unreachable:
; CHECK-NEXT: unreachable
; CHECK: bb:
-; CHECK-NEXT: [[R]] = load i32, i32* [[P:%.*]], align 4
+; CHECK-NEXT: [[R]] = load i32, ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[COMMON_RET]]
; CHECK: do_1:
; CHECK-NEXT: call void @foo_01()
@@ -104,8 +104,8 @@ pred:
i32 3, label %do_3]
bb:
- %phi = phi i32* [null, %pred], [%p, %entry]
- %r = load i32, i32* %phi
+ %phi = phi ptr [null, %pred], [%p, %entry]
+ %r = load i32, ptr %phi
ret i32 %r
do_1:
@@ -124,7 +124,7 @@ other_succ:
ret i32 0
}
-define i32 @test_04(i32* %p, i32 %x, i1 %cond) {
+define i32 @test_04(ptr %p, i32 %x, i1 %cond) {
; CHECK-LABEL: @test_04(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[COND:%.*]], label [[BB:%.*]], label [[PRED:%.*]]
@@ -138,7 +138,7 @@ define i32 @test_04(i32* %p, i32 %x, i1 %cond) {
; CHECK-NEXT: [[COMMON_RET_OP:%.*]] = phi i32 [ [[R:%.*]], [[BB]] ], [ 1, [[DO_1]] ], [ 1, [[DO_2]] ], [ 1, [[DO_3]] ], [ 0, [[PRED]] ]
; CHECK-NEXT: ret i32 [[COMMON_RET_OP]]
; CHECK: bb:
-; CHECK-NEXT: [[R]] = load i32, i32* [[P:%.*]], align 4
+; CHECK-NEXT: [[R]] = load i32, ptr [[P:%.*]], align 4
; CHECK-NEXT: br label [[COMMON_RET]]
; CHECK: do_1:
; CHECK-NEXT: call void @foo_01()
@@ -162,8 +162,8 @@ pred:
i32 3, label %do_3]
bb:
- %phi = phi i32* [null, %pred], [null, %pred], [null, %pred], [%p, %entry]
- %r = load i32, i32* %phi
+ %phi = phi ptr [null, %pred], [null, %pred], [null, %pred], [%p, %entry]
+ %r = load i32, ptr %phi
ret i32 %r
do_1:
diff --git a/llvm/test/Transforms/SimplifyCFG/tail-merge-assert.ll b/llvm/test/Transforms/SimplifyCFG/tail-merge-assert.ll
index bb348312cbbb5..f79370fc19c70 100644
--- a/llvm/test/Transforms/SimplifyCFG/tail-merge-assert.ll
+++ b/llvm/test/Transforms/SimplifyCFG/tail-merge-assert.ll
@@ -19,7 +19,7 @@
@.str.2 = private unnamed_addr constant [10 x i8] c"y - x > 7\00", align 1
@.str.3 = private unnamed_addr constant [11 x i8] c"y - x < 40\00", align 1
-declare void @glibc_assert_fail(i8*, i8*, i32, i8*)
+declare void @glibc_assert_fail(ptr, ptr, i32, ptr)
define void @merge_glibc_asserts(i32 %x, i32 %y) {
; CHECK-LABEL: @merge_glibc_asserts(
@@ -27,20 +27,20 @@ define void @merge_glibc_asserts(i32 %x, i32 %y) {
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i32 [[Y:%.*]], [[X:%.*]]
; CHECK-NEXT: br i1 [[CMP]], label [[COND_END:%.*]], label [[COND_FALSE:%.*]]
; CHECK: cond.false:
-; CHECK-NEXT: tail call void @glibc_assert_fail(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @__PRETTY_FUNCTION__._Z1fjj, i64 0, i64 0))
+; CHECK-NEXT: tail call void @glibc_assert_fail(ptr @.str, ptr @.str.1, i32 3, ptr @__PRETTY_FUNCTION__._Z1fjj)
; CHECK-NEXT: unreachable
; CHECK: cond.end:
; CHECK-NEXT: [[SUB:%.*]] = sub i32 [[Y]], [[X]]
; CHECK-NEXT: [[CMP1:%.*]] = icmp ugt i32 [[SUB]], 7
; CHECK-NEXT: br i1 [[CMP1]], label [[COND_END4:%.*]], label [[COND_FALSE3:%.*]]
; CHECK: cond.false3:
-; CHECK-NEXT: tail call void @glibc_assert_fail(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 4, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @__PRETTY_FUNCTION__._Z1fjj, i64 0, i64 0))
+; CHECK-NEXT: tail call void @glibc_assert_fail(ptr @.str.2, ptr @.str.1, i32 4, ptr @__PRETTY_FUNCTION__._Z1fjj)
; CHECK-NEXT: unreachable
; CHECK: cond.end4:
; CHECK-NEXT: [[CMP6:%.*]] = icmp ult i32 [[SUB]], 40
; CHECK-NEXT: br i1 [[CMP6]], label [[COND_END9:%.*]], label [[COND_FALSE8:%.*]]
; CHECK: cond.false8:
-; CHECK-NEXT: tail call void @glibc_assert_fail(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 5, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @__PRETTY_FUNCTION__._Z1fjj, i64 0, i64 0))
+; CHECK-NEXT: tail call void @glibc_assert_fail(ptr @.str.3, ptr @.str.1, i32 5, ptr @__PRETTY_FUNCTION__._Z1fjj)
; CHECK-NEXT: unreachable
; CHECK: cond.end9:
; CHECK-NEXT: ret void
@@ -50,7 +50,7 @@ entry:
br i1 %cmp, label %cond.end, label %cond.false
cond.false: ; preds = %entry
- tail call void @glibc_assert_fail(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @__PRETTY_FUNCTION__._Z1fjj, i64 0, i64 0)) #2
+ tail call void @glibc_assert_fail(ptr @.str, ptr @.str.1, i32 3, ptr @__PRETTY_FUNCTION__._Z1fjj) #2
unreachable
cond.end: ; preds = %entry
@@ -59,7 +59,7 @@ cond.end: ; preds = %entry
br i1 %cmp1, label %cond.end4, label %cond.false3
cond.false3: ; preds = %cond.end
- tail call void @glibc_assert_fail(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 4, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @__PRETTY_FUNCTION__._Z1fjj, i64 0, i64 0)) #2
+ tail call void @glibc_assert_fail(ptr @.str.2, ptr @.str.1, i32 4, ptr @__PRETTY_FUNCTION__._Z1fjj) #2
unreachable
cond.end4: ; preds = %cond.end
@@ -67,7 +67,7 @@ cond.end4: ; preds = %cond.end
br i1 %cmp6, label %cond.end9, label %cond.false8
cond.false8: ; preds = %cond.end4
- tail call void @glibc_assert_fail(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i32 5, i8* getelementptr inbounds ([35 x i8], [35 x i8]* @__PRETTY_FUNCTION__._Z1fjj, i64 0, i64 0)) #2
+ tail call void @glibc_assert_fail(ptr @.str.3, ptr @.str.1, i32 5, ptr @__PRETTY_FUNCTION__._Z1fjj) #2
unreachable
cond.end9: ; preds = %cond.end4
diff --git a/llvm/test/Transforms/SimplifyCFG/tail-merge-noreturn.ll b/llvm/test/Transforms/SimplifyCFG/tail-merge-noreturn.ll
index e933b62de4e4b..d44efce15ada2 100644
--- a/llvm/test/Transforms/SimplifyCFG/tail-merge-noreturn.ll
+++ b/llvm/test/Transforms/SimplifyCFG/tail-merge-noreturn.ll
@@ -314,9 +314,9 @@ cont3:
; Don't tail merge these noreturn blocks using lifetime end. It prevents us
; from sharing stack slots for x and y.
-declare void @escape_i32_ptr(i32*)
-declare void @llvm.lifetime.start(i64, i8* nocapture)
-declare void @llvm.lifetime.end(i64, i8* nocapture)
+declare void @escape_i32_ptr(ptr)
+declare void @llvm.lifetime.start(i64, ptr nocapture)
+declare void @llvm.lifetime.end(i64, ptr nocapture)
define void @dont_merge_lifetimes(i32 %c1, i32 %c2) {
; CHECK-LABEL: @dont_merge_lifetimes(
@@ -328,29 +328,27 @@ define void @dont_merge_lifetimes(i32 %c1, i32 %c2) {
; CHECK-NEXT: i32 42, label [[IF_THEN3:%.*]]
; CHECK-NEXT: ]
; CHECK: if.then:
-; CHECK-NEXT: [[TMP0:%.*]] = bitcast i32* [[X]] to i8*
-; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull [[TMP0]])
-; CHECK-NEXT: store i32 0, i32* [[X]], align 4
+; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr nonnull [[X]])
+; CHECK-NEXT: store i32 0, ptr [[X]], align 4
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[C2:%.*]], 0
; CHECK-NEXT: br i1 [[TOBOOL]], label [[IF_END:%.*]], label [[IF_THEN1:%.*]]
; CHECK: if.then1:
-; CHECK-NEXT: call void @escape_i32_ptr(i32* nonnull [[X]])
+; CHECK-NEXT: call void @escape_i32_ptr(ptr nonnull [[X]])
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
-; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull [[TMP0]])
+; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 4, ptr nonnull [[X]])
; CHECK-NEXT: call void @abort()
; CHECK-NEXT: unreachable
; CHECK: if.then3:
-; CHECK-NEXT: [[TMP1:%.*]] = bitcast i32* [[Y]] to i8*
-; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull [[TMP1]])
-; CHECK-NEXT: store i32 0, i32* [[Y]], align 4
+; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr nonnull [[Y]])
+; CHECK-NEXT: store i32 0, ptr [[Y]], align 4
; CHECK-NEXT: [[TOBOOL5:%.*]] = icmp eq i32 [[C2]], 0
; CHECK-NEXT: br i1 [[TOBOOL5]], label [[IF_END7:%.*]], label [[IF_THEN6:%.*]]
; CHECK: if.then6:
-; CHECK-NEXT: call void @escape_i32_ptr(i32* nonnull [[Y]])
+; CHECK-NEXT: call void @escape_i32_ptr(ptr nonnull [[Y]])
; CHECK-NEXT: br label [[IF_END7]]
; CHECK: if.end7:
-; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull [[TMP1]])
+; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 4, ptr nonnull [[Y]])
; CHECK-NEXT: call void @abort()
; CHECK-NEXT: unreachable
; CHECK: if.end9:
@@ -365,34 +363,32 @@ entry:
]
if.then: ; preds = %entry
- %0 = bitcast i32* %x to i8*
- call void @llvm.lifetime.start(i64 4, i8* nonnull %0)
- store i32 0, i32* %x, align 4
+ call void @llvm.lifetime.start(i64 4, ptr nonnull %x)
+ store i32 0, ptr %x, align 4
%tobool = icmp eq i32 %c2, 0
br i1 %tobool, label %if.end, label %if.then1
if.then1: ; preds = %if.then
- call void @escape_i32_ptr(i32* nonnull %x)
+ call void @escape_i32_ptr(ptr nonnull %x)
br label %if.end
if.end: ; preds = %if.then1, %if.then
- call void @llvm.lifetime.end(i64 4, i8* nonnull %0)
+ call void @llvm.lifetime.end(i64 4, ptr nonnull %x)
call void @abort()
unreachable
if.then3: ; preds = %entry
- %1 = bitcast i32* %y to i8*
- call void @llvm.lifetime.start(i64 4, i8* nonnull %1)
- store i32 0, i32* %y, align 4
+ call void @llvm.lifetime.start(i64 4, ptr nonnull %y)
+ store i32 0, ptr %y, align 4
%tobool5 = icmp eq i32 %c2, 0
br i1 %tobool5, label %if.end7, label %if.then6
if.then6: ; preds = %if.then3
- call void @escape_i32_ptr(i32* nonnull %y)
+ call void @escape_i32_ptr(ptr nonnull %y)
br label %if.end7
if.end7: ; preds = %if.then6, %if.then3
- call void @llvm.lifetime.end(i64 4, i8* nonnull %1)
+ call void @llvm.lifetime.end(i64 4, ptr nonnull %y)
call void @abort()
unreachable
diff --git a/llvm/test/Transforms/SimplifyCFG/tail-merge-resume.ll b/llvm/test/Transforms/SimplifyCFG/tail-merge-resume.ll
index c2d2b291ab4c6..5db8de5a25ee0 100644
--- a/llvm/test/Transforms/SimplifyCFG/tail-merge-resume.ll
+++ b/llvm/test/Transforms/SimplifyCFG/tail-merge-resume.ll
@@ -12,7 +12,7 @@ declare void @quux()
declare void @quuz()
declare void @common()
-define void @merge_simple(i1 %cond) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define void @merge_simple(i1 %cond) personality ptr @__gxx_personality_v0 {
; CHECK-LABEL: @merge_simple(
; CHECK-NEXT: invoke void @maybe_throws()
; CHECK-NEXT: to label [[INVOKE_CONT:%.*]] unwind label [[LPAD:%.*]]
@@ -25,24 +25,24 @@ define void @merge_simple(i1 %cond) personality i8* bitcast (i32 (...)* @__gxx_p
; CHECK: invoke.cont3:
; CHECK-NEXT: ret void
; CHECK: lpad:
-; CHECK-NEXT: [[LP:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @foo()
; CHECK-NEXT: br i1 [[COND:%.*]], label [[RESUME0:%.*]], label [[RESUME1:%.*]]
; CHECK: lpad2:
-; CHECK-NEXT: [[LP2:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[LP2:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @bar()
; CHECK-NEXT: br label [[RESUME2:%.*]]
; CHECK: lpad3:
-; CHECK-NEXT: [[LP3:%.*]] = landingpad { i8*, i32 }
+; CHECK-NEXT: [[LP3:%.*]] = landingpad { ptr, i32 }
; CHECK-NEXT: cleanup
; CHECK-NEXT: call void @baz()
; CHECK-NEXT: br label [[RESUME2]]
; CHECK: common.resume:
-; CHECK-NEXT: [[COMMON_RESUME_OP:%.*]] = phi { i8*, i32 } [ [[LP]], [[RESUME0]] ], [ [[LP]], [[RESUME1]] ], [ [[SEMICOMMON_LP:%.*]], [[RESUME2]] ]
+; CHECK-NEXT: [[COMMON_RESUME_OP:%.*]] = phi { ptr, i32 } [ [[LP]], [[RESUME0]] ], [ [[LP]], [[RESUME1]] ], [ [[SEMICOMMON_LP:%.*]], [[RESUME2]] ]
; CHECK-NEXT: call void @common()
-; CHECK-NEXT: resume { i8*, i32 } [[COMMON_RESUME_OP]]
+; CHECK-NEXT: resume { ptr, i32 } [[COMMON_RESUME_OP]]
; CHECK: resume0:
; CHECK-NEXT: call void @qux()
; CHECK-NEXT: br label [[COMMON_RESUME:%.*]]
@@ -50,7 +50,7 @@ define void @merge_simple(i1 %cond) personality i8* bitcast (i32 (...)* @__gxx_p
; CHECK-NEXT: call void @quux()
; CHECK-NEXT: br label [[COMMON_RESUME]]
; CHECK: resume2:
-; CHECK-NEXT: [[SEMICOMMON_LP]] = phi { i8*, i32 } [ [[LP2]], [[LPAD2]] ], [ [[LP3]], [[LPAD3]] ]
+; CHECK-NEXT: [[SEMICOMMON_LP]] = phi { ptr, i32 } [ [[LP2]], [[LPAD2]] ], [ [[LP3]], [[LPAD3]] ]
; CHECK-NEXT: call void @quuz()
; CHECK-NEXT: br label [[COMMON_RESUME]]
;
@@ -66,35 +66,35 @@ invoke.cont3:
ret void
lpad:
- %lp = landingpad { i8*, i32 } cleanup
+ %lp = landingpad { ptr, i32 } cleanup
call void @foo()
br i1 %cond, label %resume0, label %resume1
lpad2:
- %lp2 = landingpad { i8*, i32 } cleanup
+ %lp2 = landingpad { ptr, i32 } cleanup
call void @bar()
br label %resume2
lpad3:
- %lp3 = landingpad { i8*, i32 } cleanup
+ %lp3 = landingpad { ptr, i32 } cleanup
call void @baz()
br label %resume2
resume0:
call void @qux()
call void @common()
- resume { i8*, i32 } %lp
+ resume { ptr, i32 } %lp
resume1:
call void @quux()
call void @common()
- resume { i8*, i32 } %lp
+ resume { ptr, i32 } %lp
resume2:
- %semicommon.lp = phi { i8*, i32 } [ %lp2, %lpad2 ], [ %lp3, %lpad3 ]
+ %semicommon.lp = phi { ptr, i32 } [ %lp2, %lpad2 ], [ %lp3, %lpad3 ]
call void @quuz()
call void @common()
- resume { i8*, i32 } %semicommon.lp
+ resume { ptr, i32 } %semicommon.lp
}
declare dso_local i32 @__gxx_personality_v0(...)
diff --git a/llvm/test/Transforms/SimplifyCFG/tautological-conditional-branch.ll b/llvm/test/Transforms/SimplifyCFG/tautological-conditional-branch.ll
index 22b02c48254f0..fbaba5592cf35 100644
--- a/llvm/test/Transforms/SimplifyCFG/tautological-conditional-branch.ll
+++ b/llvm/test/Transforms/SimplifyCFG/tautological-conditional-branch.ll
@@ -1,11 +1,11 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
-%0 = type { %1*, %2* }
-%1 = type { %0* }
-%2 = type { %0*, %2* }
+%0 = type { ptr, ptr }
+%1 = type { ptr }
+%2 = type { ptr, ptr }
-define void @eggs(i1 %arg, i1 %arg16, %0* %arg17, %0* %arg18, %0* %arg19) {
+define void @eggs(i1 %arg, i1 %arg16, ptr %arg17, ptr %arg18, ptr %arg19) {
; CHECK-LABEL: @eggs(
; CHECK-NEXT: bb:
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[BB20:%.*]], label [[BB21:%.*]]
@@ -13,15 +13,14 @@ define void @eggs(i1 %arg, i1 %arg16, %0* %arg17, %0* %arg18, %0* %arg19) {
; CHECK-NEXT: call void @wombat()
; CHECK-NEXT: unreachable
; CHECK: bb21:
-; CHECK-NEXT: [[I:%.*]] = icmp eq %0* [[ARG17:%.*]], null
+; CHECK-NEXT: [[I:%.*]] = icmp eq ptr [[ARG17:%.*]], null
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[I]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP0]])
; CHECK-NEXT: call void @hoge()
; CHECK-NEXT: [[TMP1:%.*]] = xor i1 [[ARG16:%.*]], true
; CHECK-NEXT: call void @llvm.assume(i1 [[TMP1]])
-; CHECK-NEXT: [[I27:%.*]] = getelementptr inbounds [[TMP0]], %0* [[ARG19:%.*]], i64 0, i32 0
-; CHECK-NEXT: [[I28:%.*]] = load %1*, %1** [[I27]], align 8
-; CHECK-NEXT: call void @pluto.1(%1* [[I28]])
+; CHECK-NEXT: [[I28:%.*]] = load ptr, ptr [[ARG19:%.*]], align 8
+; CHECK-NEXT: call void @pluto.1(ptr [[I28]])
; CHECK-NEXT: call void @pluto()
; CHECK-NEXT: ret void
;
@@ -33,7 +32,7 @@ bb20: ; preds = %bb
br label %bb24
bb21: ; preds = %bb
- %i = icmp eq %0* %arg17, null
+ %i = icmp eq ptr %arg17, null
br i1 %i, label %bb24, label %bb22
bb22: ; preds = %bb21
@@ -45,10 +44,9 @@ bb23: ; preds = %bb22
bb24: ; preds = %bb23, %bb22, %bb21, %bb20
%i25 = phi i1 [ false, %bb21 ], [ false, %bb20 ], [ false, %bb23 ], [ false, %bb22 ]
- %i26 = phi %0* [ null, %bb21 ], [ null, %bb20 ], [ %arg19, %bb23 ], [ null, %bb22 ]
- %i27 = getelementptr inbounds %0, %0* %i26, i64 0, i32 0
- %i28 = load %1*, %1** %i27, align 8
- call void @pluto.1(%1* %i28)
+ %i26 = phi ptr [ null, %bb21 ], [ null, %bb20 ], [ %arg19, %bb23 ], [ null, %bb22 ]
+ %i28 = load ptr, ptr %i26, align 8
+ call void @pluto.1(ptr %i28)
br i1 %i25, label %bb30, label %bb29
bb29: ; preds = %bb24
@@ -64,4 +62,4 @@ declare void @wombat()
declare void @pluto()
declare void @spam()
declare void @hoge()
-declare void @pluto.1(%1*)
+declare void @pluto.1(ptr)
diff --git a/llvm/test/Transforms/SimplifyCFG/trap-debugloc.ll b/llvm/test/Transforms/SimplifyCFG/trap-debugloc.ll
index da325a6f436fc..2d83684d5f5e6 100644
--- a/llvm/test/Transforms/SimplifyCFG/trap-debugloc.ll
+++ b/llvm/test/Transforms/SimplifyCFG/trap-debugloc.ll
@@ -3,7 +3,7 @@
; Assign DebugLoc to unreachable instruction.
define void @foo() nounwind ssp !dbg !0 {
; CHECK: unreachable, !dbg
- store i32 42, i32* null, !dbg !5
+ store i32 42, ptr null, !dbg !5
ret void, !dbg !7
}
diff --git a/llvm/test/Transforms/SimplifyCFG/trap-no-null-opt-debugloc.ll b/llvm/test/Transforms/SimplifyCFG/trap-no-null-opt-debugloc.ll
index b6870d1b8ee80..46125bba27173 100644
--- a/llvm/test/Transforms/SimplifyCFG/trap-no-null-opt-debugloc.ll
+++ b/llvm/test/Transforms/SimplifyCFG/trap-no-null-opt-debugloc.ll
@@ -1,9 +1,9 @@
; RUN: opt -S -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s
define void @foo() nounwind ssp #0 !dbg !0 {
-; CHECK: store i32 42, i32* null
+; CHECK: store i32 42, ptr null
; CHECK-NOT: call void @llvm.trap()
; CHECK: ret void
- store i32 42, i32* null, !dbg !5
+ store i32 42, ptr null, !dbg !5
ret void, !dbg !7
}
diff --git a/llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll b/llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
index d4e7721249163..0dc61c64dfa43 100644
--- a/llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
+++ b/llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
@@ -19,7 +19,7 @@ entry:
br i1 %0, label %bb, label %return
bb: ; preds = %entry
- %1 = load volatile i32, i32* null
+ %1 = load volatile i32, ptr null
unreachable
br label %return
@@ -40,7 +40,7 @@ entry:
br i1 %0, label %bb, label %return
bb: ; preds = %entry
- %1 = load volatile i32, i32* null
+ %1 = load volatile i32, ptr null
unreachable
br label %return
@@ -55,7 +55,7 @@ define void @test2() nounwind {
; CHECK-NEXT: unreachable
;
entry:
- store i32 4,i32* null
+ store i32 4,ptr null
ret void
}
@@ -63,11 +63,11 @@ entry:
define void @test2_no_null_opt() nounwind #0 {
; CHECK-LABEL: @test2_no_null_opt(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i32 4, i32* null, align 4
+; CHECK-NEXT: store i32 4, ptr null, align 4
; CHECK-NEXT: ret void
;
entry:
- store i32 4,i32* null
+ store i32 4,ptr null
ret void
}
@@ -75,11 +75,11 @@ entry:
define void @test3() nounwind {
; CHECK-LABEL: @test3(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store volatile i32 4, i32* null, align 4
+; CHECK-NEXT: store volatile i32 4, ptr null, align 4
; CHECK-NEXT: ret void
;
entry:
- store volatile i32 4, i32* null
+ store volatile i32 4, ptr null
ret void
}
@@ -87,22 +87,22 @@ entry:
define void @test3_no_null_opt() nounwind #0 {
; CHECK-LABEL: @test3_no_null_opt(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store volatile i32 4, i32* null, align 4
+; CHECK-NEXT: store volatile i32 4, ptr null, align 4
; CHECK-NEXT: ret void
;
entry:
- store volatile i32 4, i32* null
+ store volatile i32 4, ptr null
ret void
}
; Check store before unreachable.
-define void @test4(i1 %C, i32* %P) {
+define void @test4(i1 %C, ptr %P) {
; CHECK-LABEL: @test4(
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 [[C:%.*]], label [[T:%.*]], label [[F:%.*]]
; CHECK: T:
-; CHECK-NEXT: store volatile i32 0, i32* [[P:%.*]], align 4
+; CHECK-NEXT: store volatile i32 0, ptr [[P:%.*]], align 4
; CHECK-NEXT: unreachable
; CHECK: F:
; CHECK-NEXT: ret void
@@ -110,14 +110,14 @@ define void @test4(i1 %C, i32* %P) {
entry:
br i1 %C, label %T, label %F
T:
- store volatile i32 0, i32* %P
+ store volatile i32 0, ptr %P
unreachable
F:
ret void
}
; Check cmpxchg before unreachable.
-define void @test5(i1 %C, i32* %P) {
+define void @test5(i1 %C, ptr %P) {
; CHECK-LABEL: @test5(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[C:%.*]], true
@@ -127,14 +127,14 @@ define void @test5(i1 %C, i32* %P) {
entry:
br i1 %C, label %T, label %F
T:
- cmpxchg volatile i32* %P, i32 0, i32 1 seq_cst seq_cst
+ cmpxchg volatile ptr %P, i32 0, i32 1 seq_cst seq_cst
unreachable
F:
ret void
}
; Check atomicrmw before unreachable.
-define void @test6(i1 %C, i32* %P) {
+define void @test6(i1 %C, ptr %P) {
; CHECK-LABEL: @test6(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = xor i1 [[C:%.*]], true
@@ -144,7 +144,7 @@ define void @test6(i1 %C, i32* %P) {
entry:
br i1 %C, label %T, label %F
T:
- atomicrmw volatile xchg i32* %P, i32 0 seq_cst
+ atomicrmw volatile xchg ptr %P, i32 0 seq_cst
unreachable
F:
ret void
diff --git a/llvm/test/Transforms/SimplifyCFG/two-entry-phi-fold-crash.ll b/llvm/test/Transforms/SimplifyCFG/two-entry-phi-fold-crash.ll
index 966eea4640f0a..cb6ea16feb330 100644
--- a/llvm/test/Transforms/SimplifyCFG/two-entry-phi-fold-crash.ll
+++ b/llvm/test/Transforms/SimplifyCFG/two-entry-phi-fold-crash.ll
@@ -1,16 +1,16 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -S -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 2>&1 | FileCheck %s
-declare i32 @blam(i8*, i32)
+declare i32 @blam(ptr, i32)
-define i32 @wibble(i8* %arg, i8** %arg1) {
+define i32 @wibble(ptr %arg, ptr %arg1) {
; CHECK-LABEL: @wibble(
; CHECK-NEXT: bb:
; CHECK-NEXT: br label [[BB2:%.*]]
; CHECK: bb2:
; CHECK-NEXT: [[BORG:%.*]] = phi i32 [ 0, [[BB:%.*]] ], [ [[BORG]], [[BB2]] ]
; CHECK-NEXT: [[BORG3:%.*]] = phi i32 [ 8, [[BB]] ], [ [[SPEC_SELECT:%.*]], [[BB2]] ]
-; CHECK-NEXT: [[BORG4:%.*]] = tail call i32 @blam(i8* [[ARG:%.*]], i32 [[BORG]])
+; CHECK-NEXT: [[BORG4:%.*]] = tail call i32 @blam(ptr [[ARG:%.*]], i32 [[BORG]])
; CHECK-NEXT: [[BORG5:%.*]] = icmp eq i32 [[BORG4]], 0
; CHECK-NEXT: [[SPEC_SELECT]] = select i1 [[BORG5]], i32 [[BORG3]], i32 [[BORG4]]
; CHECK-NEXT: [[BORG11:%.*]] = icmp ult i32 [[BORG]], 2
@@ -24,12 +24,12 @@ bb:
bb2: ; preds = %bb8, %bb
%borg = phi i32 [ 0, %bb ], [ %borg9, %bb8 ]
%borg3 = phi i32 [ 8, %bb ], [ %borg10, %bb8 ]
- %borg4 = tail call i32 @blam(i8* %arg, i32 %borg)
+ %borg4 = tail call i32 @blam(ptr %arg, i32 %borg)
%borg5 = icmp eq i32 %borg4, 0
br i1 %borg5, label %bb8, label %bb6
bb6: ; preds = %bb2
- %borg7 = load i8*, i8** %arg1, align 4
+ %borg7 = load ptr, ptr %arg1, align 4
br label %bb8
bb8: ; preds = %bb6, %bb2
diff --git a/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.ll b/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
index 5044d420a7e04..57930c91b9796 100644
--- a/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
+++ b/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
@@ -1,20 +1,20 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
-define i1 @qux(i8* %m, i8* %n, i8* %o, i8* %p) nounwind {
+define i1 @qux(ptr %m, ptr %n, ptr %o, ptr %p) nounwind {
; CHECK-LABEL: @qux(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[T7:%.*]] = icmp eq i8* [[M:%.*]], [[N:%.*]]
-; CHECK-NEXT: [[T15:%.*]] = icmp eq i8* [[O:%.*]], [[P:%.*]]
+; CHECK-NEXT: [[T7:%.*]] = icmp eq ptr [[M:%.*]], [[N:%.*]]
+; CHECK-NEXT: [[T15:%.*]] = icmp eq ptr [[O:%.*]], [[P:%.*]]
; CHECK-NEXT: [[SPEC_SELECT:%.*]] = select i1 [[T7]], i1 [[T15]], i1 false, !prof [[PROF0:![0-9]+]]
; CHECK-NEXT: ret i1 [[SPEC_SELECT]]
;
entry:
- %t7 = icmp eq i8* %m, %n
+ %t7 = icmp eq ptr %m, %n
br i1 %t7, label %bb, label %UnifiedReturnBlock, !prof !0
bb:
- %t15 = icmp eq i8* %o, %p
+ %t15 = icmp eq ptr %o, %p
br label %UnifiedReturnBlock
UnifiedReturnBlock:
@@ -28,11 +28,11 @@ UnifiedReturnBlock:
define i32 @PR50638() {
; CHECK-LABEL: @PR50638(
; CHECK-NEXT: entry:
-; CHECK-NEXT: store i32 0, i32* @a, align 4
+; CHECK-NEXT: store i32 0, ptr @a, align 4
; CHECK-NEXT: ret i32 0
;
entry:
- store i32 0, i32* @a, align 4
+ store i32 0, ptr @a, align 4
br label %pre.for
pre.for:
@@ -42,7 +42,7 @@ pre.for:
for:
%cmp = phi i1 [ true, %pre.for ], [ false, %post.for ]
%storemerge = phi i32 [ 0, %pre.for ], [ 1, %post.for ]
- store i32 %storemerge, i32* @a, align 4
+ store i32 %storemerge, ptr @a, align 4
br i1 %cmp, label %post.for, label %pre.for
post.for:
diff --git a/llvm/test/Transforms/SimplifyCFG/unprofitable-pr.ll b/llvm/test/Transforms/SimplifyCFG/unprofitable-pr.ll
index a9a70283265ac..709a83b45a403 100644
--- a/llvm/test/Transforms/SimplifyCFG/unprofitable-pr.ll
+++ b/llvm/test/Transforms/SimplifyCFG/unprofitable-pr.ll
@@ -5,290 +5,287 @@
target datalayout = "e-p:64:64-p5:32:32-A5"
declare void @llvm.assume(i1)
-declare i1 @llvm.type.test(i8*, metadata) nounwind readnone
+declare i1 @llvm.type.test(ptr, metadata) nounwind readnone
-define void @test_01(i1 %c, i64* align 1 %ptr) local_unnamed_addr #0 {
+define void @test_01(i1 %c, ptr align 1 %ptr) local_unnamed_addr #0 {
; CHECK-LABEL: @test_01(
; CHECK-NEXT: br i1 [[C:%.*]], label [[TRUE2_CRITEDGE:%.*]], label [[FALSE1:%.*]]
; CHECK: false1:
-; CHECK-NEXT: store volatile i64 1, i64* [[PTR:%.*]], align 4
-; CHECK-NEXT: [[PTRINT:%.*]] = ptrtoint i64* [[PTR]] to i64
+; CHECK-NEXT: store volatile i64 1, ptr [[PTR:%.*]], align 4
+; CHECK-NEXT: [[PTRINT:%.*]] = ptrtoint ptr [[PTR]] to i64
; CHECK-NEXT: [[MASKEDPTR:%.*]] = and i64 [[PTRINT]], 7
; CHECK-NEXT: [[MASKCOND:%.*]] = icmp eq i64 [[MASKEDPTR]], 0
; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND]])
-; CHECK-NEXT: store volatile i64 0, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 3, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 0, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 3, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET:%.*]]
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: true2.critedge:
-; CHECK-NEXT: [[PTRINT_C:%.*]] = ptrtoint i64* [[PTR]] to i64
+; CHECK-NEXT: [[PTRINT_C:%.*]] = ptrtoint ptr [[PTR]] to i64
; CHECK-NEXT: [[MASKEDPTR_C:%.*]] = and i64 [[PTRINT_C]], 7
; CHECK-NEXT: [[MASKCOND_C:%.*]] = icmp eq i64 [[MASKEDPTR_C]], 0
; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND_C]])
-; CHECK-NEXT: store volatile i64 0, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 2, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 0, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 2, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET]]
;
br i1 %c, label %true1, label %false1
true1: ; preds = %false1, %0
- %ptrint = ptrtoint i64* %ptr to i64
+ %ptrint = ptrtoint ptr %ptr to i64
%maskedptr = and i64 %ptrint, 7
%maskcond = icmp eq i64 %maskedptr, 0
tail call void @llvm.assume(i1 %maskcond)
- store volatile i64 0, i64* %ptr, align 8
+ store volatile i64 0, ptr %ptr, align 8
br i1 %c, label %true2, label %false2
false1: ; preds = %0
- store volatile i64 1, i64* %ptr, align 4
+ store volatile i64 1, ptr %ptr, align 4
br label %true1
true2: ; preds = %true1
- store volatile i64 2, i64* %ptr, align 8
+ store volatile i64 2, ptr %ptr, align 8
ret void
false2: ; preds = %true1
- store volatile i64 3, i64* %ptr, align 8
+ store volatile i64 3, ptr %ptr, align 8
ret void
}
; Corner case: the block has max possible size for which we still do PRE.
-define void @test_02(i1 %c, i64* align 1 %ptr) local_unnamed_addr #0 {
+define void @test_02(i1 %c, ptr align 1 %ptr) local_unnamed_addr #0 {
; CHECK-LABEL: @test_02(
; CHECK-NEXT: br i1 [[C:%.*]], label [[TRUE2_CRITEDGE:%.*]], label [[FALSE1:%.*]]
; CHECK: false1:
-; CHECK-NEXT: store volatile i64 1, i64* [[PTR:%.*]], align 4
-; CHECK-NEXT: [[PTRINT:%.*]] = ptrtoint i64* [[PTR]] to i64
+; CHECK-NEXT: store volatile i64 1, ptr [[PTR:%.*]], align 4
+; CHECK-NEXT: [[PTRINT:%.*]] = ptrtoint ptr [[PTR]] to i64
; CHECK-NEXT: [[MASKEDPTR:%.*]] = and i64 [[PTRINT]], 7
; CHECK-NEXT: [[MASKCOND:%.*]] = icmp eq i64 [[MASKEDPTR]], 0
; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND]])
-; CHECK-NEXT: store volatile i64 0, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 3, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 0, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 3, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET:%.*]]
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: true2.critedge:
-; CHECK-NEXT: [[PTRINT_C:%.*]] = ptrtoint i64* [[PTR]] to i64
+; CHECK-NEXT: [[PTRINT_C:%.*]] = ptrtoint ptr [[PTR]] to i64
; CHECK-NEXT: [[MASKEDPTR_C:%.*]] = and i64 [[PTRINT_C]], 7
; CHECK-NEXT: [[MASKCOND_C:%.*]] = icmp eq i64 [[MASKEDPTR_C]], 0
; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND_C]])
-; CHECK-NEXT: store volatile i64 0, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 2, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 0, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 2, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET]]
;
br i1 %c, label %true1, label %false1
true1: ; preds = %false1, %0
- %ptrint = ptrtoint i64* %ptr to i64
+ %ptrint = ptrtoint ptr %ptr to i64
%maskedptr = and i64 %ptrint, 7
%maskcond = icmp eq i64 %maskedptr, 0
tail call void @llvm.assume(i1 %maskcond)
- store volatile i64 0, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
+ store volatile i64 0, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
br i1 %c, label %true2, label %false2
false1: ; preds = %0
- store volatile i64 1, i64* %ptr, align 4
+ store volatile i64 1, ptr %ptr, align 4
br label %true1
true2: ; preds = %true1
- store volatile i64 2, i64* %ptr, align 8
+ store volatile i64 2, ptr %ptr, align 8
ret void
false2: ; preds = %true1
- store volatile i64 3, i64* %ptr, align 8
+ store volatile i64 3, ptr %ptr, align 8
ret void
}
; This block is too huge for PRE.
-define void @test_03(i1 %c, i64* align 1 %ptr) local_unnamed_addr #0 {
+define void @test_03(i1 %c, ptr align 1 %ptr) local_unnamed_addr #0 {
; CHECK-LABEL: @test_03(
; CHECK-NEXT: br i1 [[C:%.*]], label [[TRUE1:%.*]], label [[FALSE1:%.*]]
; CHECK: true1:
-; CHECK-NEXT: [[PTRINT:%.*]] = ptrtoint i64* [[PTR:%.*]] to i64
+; CHECK-NEXT: [[PTRINT:%.*]] = ptrtoint ptr [[PTR:%.*]] to i64
; CHECK-NEXT: [[MASKEDPTR:%.*]] = and i64 [[PTRINT]], 7
; CHECK-NEXT: [[MASKCOND:%.*]] = icmp eq i64 [[MASKEDPTR]], 0
; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND]])
-; CHECK-NEXT: store volatile i64 0, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 0, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
; CHECK-NEXT: br i1 [[C]], label [[TRUE2:%.*]], label [[FALSE2:%.*]]
; CHECK: false1:
-; CHECK-NEXT: store volatile i64 1, i64* [[PTR]], align 4
+; CHECK-NEXT: store volatile i64 1, ptr [[PTR]], align 4
; CHECK-NEXT: br label [[TRUE1]]
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: true2:
-; CHECK-NEXT: store volatile i64 2, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 2, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET:%.*]]
; CHECK: false2:
-; CHECK-NEXT: store volatile i64 3, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 3, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET]]
;
br i1 %c, label %true1, label %false1
true1: ; preds = %false1, %0
- %ptrint = ptrtoint i64* %ptr to i64
+ %ptrint = ptrtoint ptr %ptr to i64
%maskedptr = and i64 %ptrint, 7
%maskcond = icmp eq i64 %maskedptr, 0
tail call void @llvm.assume(i1 %maskcond)
- store volatile i64 0, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
+ store volatile i64 0, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
br i1 %c, label %true2, label %false2
false1: ; preds = %0
- store volatile i64 1, i64* %ptr, align 4
+ store volatile i64 1, ptr %ptr, align 4
br label %true1
true2: ; preds = %true1
- store volatile i64 2, i64* %ptr, align 8
+ store volatile i64 2, ptr %ptr, align 8
ret void
false2: ; preds = %true1
- store volatile i64 3, i64* %ptr, align 8
+ store volatile i64 3, ptr %ptr, align 8
ret void
}
; Try the max block size for PRE again but with the bitcast/type test/assume
; sequence used for whole program devirt.
-define void @test_04(i1 %c, i64* align 1 %ptr, [3 x i8*]* %vtable) local_unnamed_addr #0 {
+define void @test_04(i1 %c, ptr align 1 %ptr, ptr %vtable) local_unnamed_addr #0 {
; CHECK-LABEL: @test_04(
; CHECK-NEXT: br i1 [[C:%.*]], label [[TRUE2_CRITEDGE:%.*]], label [[FALSE1:%.*]]
; CHECK: false1:
-; CHECK-NEXT: store volatile i64 1, i64* [[PTR:%.*]], align 4
-; CHECK-NEXT: [[VTABLEI8:%.*]] = bitcast [3 x i8*]* [[VTABLE:%.*]] to i8*
-; CHECK-NEXT: [[P:%.*]] = call i1 @llvm.type.test(i8* [[VTABLEI8]], metadata !"foo")
+; CHECK-NEXT: store volatile i64 1, ptr [[PTR:%.*]], align 4
+; CHECK-NEXT: [[P:%.*]] = call i1 @llvm.type.test(ptr [[VTABLE:%.*]], metadata !"foo")
; CHECK-NEXT: tail call void @llvm.assume(i1 [[P]])
-; CHECK-NEXT: store volatile i64 0, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 3, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 0, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 3, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET:%.*]]
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: true2.critedge:
-; CHECK-NEXT: [[VTABLEI8_C:%.*]] = bitcast [3 x i8*]* [[VTABLE]] to i8*
-; CHECK-NEXT: [[P_C:%.*]] = call i1 @llvm.type.test(i8* [[VTABLEI8_C]], metadata !"foo")
+; CHECK-NEXT: [[P_C:%.*]] = call i1 @llvm.type.test(ptr [[VTABLE]], metadata !"foo")
; CHECK-NEXT: tail call void @llvm.assume(i1 [[P_C]])
-; CHECK-NEXT: store volatile i64 0, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 2, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 0, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 2, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET]]
;
br i1 %c, label %true1, label %false1
true1: ; preds = %false1, %0
- %vtablei8 = bitcast [3 x i8*]* %vtable to i8*
- %p = call i1 @llvm.type.test(i8* %vtablei8, metadata !"foo")
+ %p = call i1 @llvm.type.test(ptr %vtable, metadata !"foo")
tail call void @llvm.assume(i1 %p)
- store volatile i64 0, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
+ store volatile i64 0, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
br i1 %c, label %true2, label %false2
false1: ; preds = %0
- store volatile i64 1, i64* %ptr, align 4
+ store volatile i64 1, ptr %ptr, align 4
br label %true1
true2: ; preds = %true1
- store volatile i64 2, i64* %ptr, align 8
+ store volatile i64 2, ptr %ptr, align 8
ret void
false2: ; preds = %true1
- store volatile i64 3, i64* %ptr, align 8
+ store volatile i64 3, ptr %ptr, align 8
ret void
}
; The load, icmp and assume should not count towards the limit, they are
; ephemeral.
-define void @test_non_speculatable(i1 %c, i64* align 1 %ptr, i8* %ptr2) local_unnamed_addr #0 {
+define void @test_non_speculatable(i1 %c, ptr align 1 %ptr, ptr %ptr2) local_unnamed_addr #0 {
; CHECK-LABEL: @test_non_speculatable(
; CHECK-NEXT: br i1 [[C:%.*]], label [[TRUE2_CRITEDGE:%.*]], label [[FALSE1:%.*]]
; CHECK: false1:
-; CHECK-NEXT: store volatile i64 1, i64* [[PTR:%.*]], align 4
-; CHECK-NEXT: [[V:%.*]] = load i8, i8* [[PTR2:%.*]], align 1
+; CHECK-NEXT: store volatile i64 1, ptr [[PTR:%.*]], align 4
+; CHECK-NEXT: [[V:%.*]] = load i8, ptr [[PTR2:%.*]], align 1
; CHECK-NEXT: [[C2:%.*]] = icmp eq i8 [[V]], 42
; CHECK-NEXT: call void @llvm.assume(i1 [[C2]])
-; CHECK-NEXT: store volatile i64 0, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 3, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 0, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 3, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET:%.*]]
; CHECK: common.ret:
; CHECK-NEXT: ret void
; CHECK: true2.critedge:
-; CHECK-NEXT: [[V_C:%.*]] = load i8, i8* [[PTR2]], align 1
+; CHECK-NEXT: [[V_C:%.*]] = load i8, ptr [[PTR2]], align 1
; CHECK-NEXT: [[C2_C:%.*]] = icmp eq i8 [[V_C]], 42
; CHECK-NEXT: call void @llvm.assume(i1 [[C2_C]])
-; CHECK-NEXT: store volatile i64 0, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 -1, i64* [[PTR]], align 8
-; CHECK-NEXT: store volatile i64 2, i64* [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 0, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 -1, ptr [[PTR]], align 8
+; CHECK-NEXT: store volatile i64 2, ptr [[PTR]], align 8
; CHECK-NEXT: br label [[COMMON_RET]]
;
br i1 %c, label %true1, label %false1
true1: ; preds = %false1, %0
- %v = load i8, i8* %ptr2
+ %v = load i8, ptr %ptr2
%c2 = icmp eq i8 %v, 42
call void @llvm.assume(i1 %c2)
- store volatile i64 0, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
- store volatile i64 -1, i64* %ptr, align 8
+ store volatile i64 0, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
+ store volatile i64 -1, ptr %ptr, align 8
br i1 %c, label %true2, label %false2
false1: ; preds = %0
- store volatile i64 1, i64* %ptr, align 4
+ store volatile i64 1, ptr %ptr, align 4
br label %true1
true2: ; preds = %true1
- store volatile i64 2, i64* %ptr, align 8
+ store volatile i64 2, ptr %ptr, align 8
ret void
false2: ; preds = %true1
- store volatile i64 3, i64* %ptr, align 8
+ store volatile i64 3, ptr %ptr, align 8
ret void
}
diff --git a/llvm/test/Transforms/SimplifyCFG/unreachable-cleanuppad.ll b/llvm/test/Transforms/SimplifyCFG/unreachable-cleanuppad.ll
index a9a54ff3e24b0..7e4387163576c 100644
--- a/llvm/test/Transforms/SimplifyCFG/unreachable-cleanuppad.ll
+++ b/llvm/test/Transforms/SimplifyCFG/unreachable-cleanuppad.ll
@@ -6,7 +6,7 @@ declare i32 @__CxxFrameHandler3(...)
declare void @fn_2()
-define void @fn_1(i1 %B) personality i32 (...)* @__CxxFrameHandler3 {
+define void @fn_1(i1 %B) personality ptr @__CxxFrameHandler3 {
entry:
br i1 %B, label %__Ea.exit, label %lor.lhs.false.i.i
@@ -22,7 +22,7 @@ ehcleanup.i:
br label %arraydestroy.body.i
arraydestroy.body.i:
- %gep = getelementptr i8, i8* null, i32 -1
+ %gep = getelementptr i8, ptr null, i32 -1
br label %dtor.exit.i
dtor.exit.i:
diff --git a/llvm/test/Transforms/SimplifyCFG/wc-widen-block.ll b/llvm/test/Transforms/SimplifyCFG/wc-widen-block.ll
index ea4abedaf88fd..438fe619fb276 100644
--- a/llvm/test/Transforms/SimplifyCFG/wc-widen-block.ll
+++ b/llvm/test/Transforms/SimplifyCFG/wc-widen-block.ll
@@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S < %s | FileCheck %s
-define i32 @basic(i1 %cond_0, i32* %p) {
+define i32 @basic(i1 %cond_0, ptr %p) {
; CHECK-LABEL: @basic(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[WIDENABLE_COND:%.*]] = call i1 @llvm.experimental.widenable.condition()
@@ -11,7 +11,7 @@ define i32 @basic(i1 %cond_0, i32* %p) {
; CHECK-NEXT: [[DEOPTRET:%.*]] = call i32 (...) @llvm.experimental.deoptimize.i32() [ "deopt"() ]
; CHECK-NEXT: ret i32 [[DEOPTRET]]
; CHECK: guarded:
-; CHECK-NEXT: [[V:%.*]] = load i32, i32* [[P:%.*]], align 4
+; CHECK-NEXT: [[V:%.*]] = load i32, ptr [[P:%.*]], align 4
; CHECK-NEXT: [[COND_1:%.*]] = icmp eq i32 [[V]], 0
; CHECK-NEXT: br i1 [[COND_1]], label [[RETURN:%.*]], label [[DEOPT]], !prof [[PROF0]]
; CHECK: return:
@@ -27,7 +27,7 @@ deopt:
ret i32 %deoptret
guarded:
- %v = load i32, i32* %p
+ %v = load i32, ptr %p
%cond_1 = icmp eq i32 %v, 0
br i1 %cond_1, label %return, label %deopt2, !prof !0
@@ -74,7 +74,7 @@ return:
ret i32 0
}
-define i32 @basic_swapped_branch(i1 %cond_0, i32* %p) {
+define i32 @basic_swapped_branch(i1 %cond_0, ptr %p) {
; CHECK-LABEL: @basic_swapped_branch(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[WIDENABLE_COND:%.*]] = call i1 @llvm.experimental.widenable.condition()
@@ -84,7 +84,7 @@ define i32 @basic_swapped_branch(i1 %cond_0, i32* %p) {
; CHECK-NEXT: [[DEOPTRET:%.*]] = call i32 (...) @llvm.experimental.deoptimize.i32() [ "deopt"() ]
; CHECK-NEXT: ret i32 [[DEOPTRET]]
; CHECK: guarded:
-; CHECK-NEXT: [[V:%.*]] = load i32, i32* [[P:%.*]], align 4
+; CHECK-NEXT: [[V:%.*]] = load i32, ptr [[P:%.*]], align 4
; CHECK-NEXT: [[COND_1:%.*]] = icmp eq i32 [[V]], 0
; CHECK-NEXT: br i1 [[COND_1]], label [[DEOPT]], label [[RETURN:%.*]], !prof [[PROF0]]
; CHECK: return:
@@ -100,7 +100,7 @@ deopt:
ret i32 %deoptret
guarded:
- %v = load i32, i32* %p
+ %v = load i32, ptr %p
%cond_1 = icmp eq i32 %v, 0
br i1 %cond_1, label %deopt2, label %return, !prof !0
@@ -308,7 +308,7 @@ deopt2:
; This one is subtle - We can't widen only one branch use of the
; widenable condition as two branches are correlated. We'd have to
; widen them *both*.
-define i32 @neg_correlated(i1 %cond_0, i1 %cond_1, i32* %p) {
+define i32 @neg_correlated(i1 %cond_0, i1 %cond_1, ptr %p) {
; CHECK-LABEL: @neg_correlated(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[WIDENABLE_COND:%.*]] = call i1 @llvm.experimental.widenable.condition()
@@ -324,7 +324,7 @@ define i32 @neg_correlated(i1 %cond_0, i1 %cond_1, i32* %p) {
; CHECK-NEXT: [[DEOPTRET2:%.*]] = call i32 (...) @llvm.experimental.deoptimize.i32() [ "deopt"() ]
; CHECK-NEXT: ret i32 [[DEOPTRET2]]
; CHECK: guarded2:
-; CHECK-NEXT: [[V:%.*]] = load i32, i32* [[P:%.*]], align 4
+; CHECK-NEXT: [[V:%.*]] = load i32, ptr [[P:%.*]], align 4
; CHECK-NEXT: [[COND_2:%.*]] = icmp eq i32 [[V]], 0
; CHECK-NEXT: br i1 [[COND_2]], label [[RETURN:%.*]], label [[DEOPT3:%.*]], !prof [[PROF0]]
; CHECK: deopt3:
@@ -351,7 +351,7 @@ deopt2:
ret i32 %deoptret2
guarded2:
- %v = load i32, i32* %p
+ %v = load i32, ptr %p
%cond_2 = icmp eq i32 %v, 0
br i1 %cond_2, label %return, label %deopt3, !prof !0
@@ -363,7 +363,7 @@ return:
ret i32 0
}
-define i32 @trivial_wb(i1 %cond_0, i32* %p) {
+define i32 @trivial_wb(i1 %cond_0, ptr %p) {
; CHECK-LABEL: @trivial_wb(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[WIDENABLE_COND:%.*]] = call i1 @llvm.experimental.widenable.condition()
@@ -372,7 +372,7 @@ define i32 @trivial_wb(i1 %cond_0, i32* %p) {
; CHECK-NEXT: [[DEOPTRET:%.*]] = call i32 (...) @llvm.experimental.deoptimize.i32() [ "deopt"() ]
; CHECK-NEXT: ret i32 [[DEOPTRET]]
; CHECK: guarded:
-; CHECK-NEXT: [[V:%.*]] = load i32, i32* [[P:%.*]], align 4
+; CHECK-NEXT: [[V:%.*]] = load i32, ptr [[P:%.*]], align 4
; CHECK-NEXT: [[COND_1:%.*]] = icmp eq i32 [[V]], 0
; CHECK-NEXT: br i1 [[COND_1]], label [[RETURN:%.*]], label [[DEOPT]], !prof [[PROF0]]
; CHECK: return:
@@ -387,7 +387,7 @@ deopt:
ret i32 %deoptret
guarded:
- %v = load i32, i32* %p
+ %v = load i32, ptr %p
%cond_1 = icmp eq i32 %v, 0
br i1 %cond_1, label %return, label %deopt2, !prof !0
@@ -400,7 +400,7 @@ return:
}
-define i32 @swapped_wb(i1 %cond_0, i32* %p) {
+define i32 @swapped_wb(i1 %cond_0, ptr %p) {
; CHECK-LABEL: @swapped_wb(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[WIDENABLE_COND:%.*]] = call i1 @llvm.experimental.widenable.condition()
@@ -410,7 +410,7 @@ define i32 @swapped_wb(i1 %cond_0, i32* %p) {
; CHECK-NEXT: [[DEOPTRET:%.*]] = call i32 (...) @llvm.experimental.deoptimize.i32() [ "deopt"() ]
; CHECK-NEXT: ret i32 [[DEOPTRET]]
; CHECK: guarded:
-; CHECK-NEXT: [[V:%.*]] = load i32, i32* [[P:%.*]], align 4
+; CHECK-NEXT: [[V:%.*]] = load i32, ptr [[P:%.*]], align 4
; CHECK-NEXT: [[COND_1:%.*]] = icmp eq i32 [[V]], 0
; CHECK-NEXT: br i1 [[COND_1]], label [[RETURN:%.*]], label [[DEOPT]], !prof [[PROF0]]
; CHECK: return:
@@ -426,7 +426,7 @@ deopt:
ret i32 %deoptret
guarded:
- %v = load i32, i32* %p
+ %v = load i32, ptr %p
%cond_1 = icmp eq i32 %v, 0
br i1 %cond_1, label %return, label %deopt2, !prof !0
diff --git a/llvm/test/Transforms/SimplifyCFG/wineh-unreachable.ll b/llvm/test/Transforms/SimplifyCFG/wineh-unreachable.ll
index 446d35f996182..853d65da548c4 100644
--- a/llvm/test/Transforms/SimplifyCFG/wineh-unreachable.ll
+++ b/llvm/test/Transforms/SimplifyCFG/wineh-unreachable.ll
@@ -4,7 +4,7 @@
declare void @Personality()
declare void @f()
-define void @test1() personality i8* bitcast (void ()* @Personality to i8*) {
+define void @test1() personality ptr @Personality {
; CHECK-LABEL: @test1(
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @f()
@@ -20,7 +20,7 @@ unreachable.unwind:
unreachable
}
-define void @test2() personality i8* bitcast (void ()* @Personality to i8*) {
+define void @test2() personality ptr @Personality {
; CHECK-LABEL: @test2(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @f()
@@ -54,7 +54,7 @@ unreachable:
unreachable
}
-define void @test3() personality i8* bitcast (void ()* @Personality to i8*) {
+define void @test3() personality ptr @Personality {
; CHECK-LABEL: @test3(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @f()
@@ -84,7 +84,7 @@ unreachable.unwind:
unreachable
}
-define void @test5() personality i8* bitcast (void ()* @Personality to i8*) {
+define void @test5() personality ptr @Personality {
; CHECK-LABEL: @test5(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @f()
@@ -112,7 +112,7 @@ exit:
unreachable
}
-define void @test6() personality i8* bitcast (void ()* @Personality to i8*) {
+define void @test6() personality ptr @Personality {
; CHECK-LABEL: @test6(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @f()
@@ -120,7 +120,7 @@ define void @test6() personality i8* bitcast (void ()* @Personality to i8*) {
; CHECK: catch.pad:
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch.body] unwind to caller
; CHECK: catch.body:
-; CHECK-NEXT: [[CATCH:%.*]] = catchpad within [[CS1]] [i8* null, i32 0, i8* null]
+; CHECK-NEXT: [[CATCH:%.*]] = catchpad within [[CS1]] [ptr null, i32 0, ptr null]
; CHECK-NEXT: catchret from [[CATCH]] to label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -133,14 +133,14 @@ catch.pad:
%cs1 = catchswitch within none [label %catch.body, label %catch.body] unwind to caller
catch.body:
- %catch = catchpad within %cs1 [i8* null, i32 0, i8* null]
+ %catch = catchpad within %cs1 [ptr null, i32 0, ptr null]
catchret from %catch to label %exit
exit:
ret void
}
-define void @test7() personality i8* bitcast (void ()* @Personality to i8*) {
+define void @test7() personality ptr @Personality {
; CHECK-LABEL: @test7(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @f()
@@ -148,7 +148,7 @@ define void @test7() personality i8* bitcast (void ()* @Personality to i8*) {
; CHECK: catch.pad:
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch.body] unwind to caller
; CHECK: catch.body:
-; CHECK-NEXT: [[CATCH:%.*]] = catchpad within [[CS1]] [i8* null, i32 0, i8* null]
+; CHECK-NEXT: [[CATCH:%.*]] = catchpad within [[CS1]] [ptr null, i32 0, ptr null]
; CHECK-NEXT: catchret from [[CATCH]] to label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -161,18 +161,18 @@ catch.pad:
%cs1 = catchswitch within none [label %catch.body, label %catch.body2] unwind to caller
catch.body:
- %catch = catchpad within %cs1 [i8* null, i32 0, i8* null]
+ %catch = catchpad within %cs1 [ptr null, i32 0, ptr null]
catchret from %catch to label %exit
catch.body2:
- %catch2 = catchpad within %cs1 [i8* null, i32 0, i8* null]
+ %catch2 = catchpad within %cs1 [ptr null, i32 0, ptr null]
catchret from %catch2 to label %exit
exit:
ret void
}
-define void @test8() personality i8* bitcast (void ()* @Personality to i8*) {
+define void @test8() personality ptr @Personality {
; CHECK-LABEL: @test8(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @f()
@@ -180,7 +180,7 @@ define void @test8() personality i8* bitcast (void ()* @Personality to i8*) {
; CHECK: catch.pad:
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch.body] unwind to caller
; CHECK: catch.body:
-; CHECK-NEXT: [[CATCH:%.*]] = catchpad within [[CS1]] [i8* null, i32 0, i8* null]
+; CHECK-NEXT: [[CATCH:%.*]] = catchpad within [[CS1]] [ptr null, i32 0, ptr null]
; CHECK-NEXT: catchret from [[CATCH]] to label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -193,18 +193,18 @@ catch.pad:
%cs1 = catchswitch within none [label %catch.body, label %catch.body2] unwind to caller
catch.body2:
- %catch2 = catchpad within %cs1 [i8* null, i32 0, i8* null]
+ %catch2 = catchpad within %cs1 [ptr null, i32 0, ptr null]
catchret from %catch2 to label %exit
catch.body:
- %catch = catchpad within %cs1 [i8* null, i32 0, i8* null]
+ %catch = catchpad within %cs1 [ptr null, i32 0, ptr null]
catchret from %catch to label %exit
exit:
ret void
}
-define void @test9() personality i8* bitcast (void ()* @Personality to i8*) {
+define void @test9() personality ptr @Personality {
; CHECK-LABEL: @test9(
; CHECK-NEXT: entry:
; CHECK-NEXT: invoke void @f()
@@ -212,10 +212,10 @@ define void @test9() personality i8* bitcast (void ()* @Personality to i8*) {
; CHECK: catch.pad:
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label [[CATCH_BODY:%.*]], label %catch.body2] unwind to caller
; CHECK: catch.body:
-; CHECK-NEXT: [[CATCH:%.*]] = catchpad within [[CS1]] [i8* null, i32 0, i8* null]
+; CHECK-NEXT: [[CATCH:%.*]] = catchpad within [[CS1]] [ptr null, i32 0, ptr null]
; CHECK-NEXT: catchret from [[CATCH]] to label [[EXIT]]
; CHECK: catch.body2:
-; CHECK-NEXT: [[CATCH2:%.*]] = catchpad within [[CS1]] [i8* null, i32 64, i8* null]
+; CHECK-NEXT: [[CATCH2:%.*]] = catchpad within [[CS1]] [ptr null, i32 64, ptr null]
; CHECK-NEXT: catchret from [[CATCH2]] to label [[EXIT]]
; CHECK: exit:
; CHECK-NEXT: ret void
@@ -228,11 +228,11 @@ catch.pad:
%cs1 = catchswitch within none [label %catch.body, label %catch.body2] unwind to caller
catch.body:
- %catch = catchpad within %cs1 [i8* null, i32 0, i8* null]
+ %catch = catchpad within %cs1 [ptr null, i32 0, ptr null]
catchret from %catch to label %exit
catch.body2:
- %catch2 = catchpad within %cs1 [i8* null, i32 64, i8* null]
+ %catch2 = catchpad within %cs1 [ptr null, i32 64, ptr null]
catchret from %catch2 to label %exit
exit:
More information about the llvm-commits
mailing list