Index: llvm/test/CodeGen/PowerPC/opt-builtins-ppc-xlcompat-cas.ll =================================================================== --- llvm/test/CodeGen/PowerPC/opt-builtins-ppc-xlcompat-cas.ll +++ llvm/test/CodeGen/PowerPC/opt-builtins-ppc-xlcompat-cas.ll @@ -4,35 +4,35 @@ ; CHECK-LABEL: @test_builtin_ppc_compare_and_swaplp( ; CHECK-NEXT: entry: ; CHECK-NEXT: [[A_ADDR:%.*]] = alloca i64, align 8 -; CHECK-NEXT: store i64 [[A:%.*]], i64* [[A_ADDR]], align 8 -; CHECK-NEXT: [[TMP0:%.*]] = cmpxchg weak volatile i64* [[A_ADDR]], i64 [[B:%.*]], i64 [[C:%.*]] monotonic monotonic, align 8 +; CHECK-NEXT: store i64 [[A:%.*]], ptr [[A_ADDR]], align 8 +; CHECK-NEXT: [[TMP0:%.*]] = cmpxchg weak volatile ptr [[A_ADDR]], i64 [[B:%.*]], i64 [[C:%.*]] monotonic monotonic, align 8 ; CHECK-NEXT: ret void ; entry: %a.addr = alloca i64, align 8 %b.addr = alloca i64, align 8 %c.addr = alloca i64, align 8 - store i64 %a, i64* %a.addr, align 8 - store i64 %b, i64* %b.addr, align 8 - store i64 %c, i64* %c.addr, align 8 - %0 = load i64, i64* %c.addr, align 8 - %1 = load i64, i64* %b.addr, align 8 - %2 = cmpxchg weak volatile i64* %a.addr, i64 %1, i64 %0 monotonic monotonic, align 8 + store i64 %a, ptr %a.addr, align 8 + store i64 %b, ptr %b.addr, align 8 + store i64 %c, ptr %c.addr, align 8 + %0 = load i64, ptr %c.addr, align 8 + %1 = load i64, ptr %b.addr, align 8 + %2 = cmpxchg weak volatile ptr %a.addr, i64 %1, i64 %0 monotonic monotonic, align 8 %3 = extractvalue { i64, i1 } %2, 0 %4 = extractvalue { i64, i1 } %2, 1 - store i64 %3, i64* %b.addr, align 8 + store i64 %3, ptr %b.addr, align 8 ret void } -define dso_local void @test_builtin_ppc_compare_and_swaplp_loop(i64* %a) { +define dso_local void @test_builtin_ppc_compare_and_swaplp_loop(ptr %a) { ; CHECK-LABEL: @test_builtin_ppc_compare_and_swaplp_loop( ; CHECK-NEXT: entry: -; CHECK-NEXT: [[CALL:%.*]] = tail call i64 bitcast (i64 (...)* @bar to i64 ()*)() +; CHECK-NEXT: [[CALL:%.*]] = tail call i64 @bar() ; CHECK-NEXT: br label [[DO_BODY:%.*]] ; CHECK: do.body: ; CHECK-NEXT: [[X_0:%.*]] = phi i64 [ [[CALL]], [[ENTRY:%.*]] ], [ [[TMP1:%.*]], [[DO_BODY]] ] ; CHECK-NEXT: [[ADD:%.*]] = add nsw i64 [[X_0]], 1 -; CHECK-NEXT: [[TMP0:%.*]] = cmpxchg weak volatile i64* [[A:%.*]], i64 [[X_0]], i64 [[ADD]] monotonic monotonic, align 8 +; CHECK-NEXT: [[TMP0:%.*]] = cmpxchg weak volatile ptr [[A:%.*]], i64 [[X_0]], i64 [[ADD]] monotonic monotonic, align 8 ; CHECK-NEXT: [[TMP1]] = extractvalue { i64, i1 } [[TMP0]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i64, i1 } [[TMP0]], 1 ; CHECK-NEXT: br i1 [[TMP2]], label [[DO_BODY]], label [[DO_END:%.*]] @@ -40,26 +40,26 @@ ; CHECK-NEXT: ret void ; entry: - %a.addr = alloca i64*, align 8 + %a.addr = alloca ptr, align 8 %x = alloca i64, align 8 - store i64* %a, i64** %a.addr, align 8 - %call = call i64 bitcast (i64 (...)* @bar to i64 ()*)() - store i64 %call, i64* %x, align 8 + store ptr %a, ptr %a.addr, align 8 + %call = call i64 @bar() + store i64 %call, ptr %x, align 8 br label %do.body do.body: ; preds = %do.cond, %entry br label %do.cond do.cond: ; preds = %do.body - %0 = load i64*, i64** %a.addr, align 8 - %1 = load i64, i64* %x, align 8 + %0 = load ptr, ptr %a.addr, align 8 + %1 = load i64, ptr %x, align 8 %add = add nsw i64 %1, 1 - %2 = load i64*, i64** %a.addr, align 8 - %3 = load i64, i64* %x, align 8 - %4 = cmpxchg weak volatile i64* %2, i64 %3, i64 %add monotonic monotonic, align 8 + %2 = load ptr, ptr %a.addr, align 8 + %3 = load i64, ptr %x, align 8 + %4 = cmpxchg weak volatile ptr %2, i64 %3, i64 %add monotonic monotonic, align 8 %5 = extractvalue { i64, i1 } %4, 0 %6 = extractvalue { i64, i1 } %4, 1 - store i64 %5, i64* %x, align 8 + store i64 %5, ptr %x, align 8 %tobool = icmp ne i1 %6, false br i1 %tobool, label %do.body, label %do.end Index: llvm/test/CodeGen/PowerPC/opt-cmp-inst-cr0-live.ll =================================================================== --- llvm/test/CodeGen/PowerPC/opt-cmp-inst-cr0-live.ll +++ llvm/test/CodeGen/PowerPC/opt-cmp-inst-cr0-live.ll @@ -84,12 +84,12 @@ ; In this case, we want to use OR_rec instead of OR + CMPLWI. ; CHECK-LABEL: fn5 -define zeroext i32 @fn5(i32* %p1, i32* %p2) { +define zeroext i32 @fn5(ptr %p1, ptr %p2) { ; CHECK: OR_rec ; CHECK-NOT: CMP ; CHECK: BCC - %v1 = load i32, i32* %p1 - %v2 = load i32, i32* %p2 + %v1 = load i32, ptr %p1 + %v2 = load i32, ptr %p2 %1 = or i32 %v1, %v2 %2 = icmp eq i32 %1, 0 br i1 %2, label %foo, label %bar @@ -105,7 +105,7 @@ ; against a non-zero value. ; CHECK-LABEL: fn6 -define i8* @fn6(i8* readonly %p) { +define ptr @fn6(ptr readonly %p) { ; CHECK: LBZU ; CHECK: EXTSB_rec ; CHECK-NOT: CMP @@ -116,22 +116,22 @@ ; CHECK: BCC entry: - %incdec.ptr = getelementptr inbounds i8, i8* %p, i64 -1 - %0 = load i8, i8* %incdec.ptr + %incdec.ptr = getelementptr inbounds i8, ptr %p, i64 -1 + %0 = load i8, ptr %incdec.ptr %cmp = icmp sgt i8 %0, -1 br i1 %cmp, label %out, label %if.end if.end: - %incdec.ptr2 = getelementptr inbounds i8, i8* %p, i64 -2 - %1 = load i8, i8* %incdec.ptr2 + %incdec.ptr2 = getelementptr inbounds i8, ptr %p, i64 -2 + %1 = load i8, ptr %incdec.ptr2 %cmp4 = icmp sgt i8 %1, -1 br i1 %cmp4, label %out, label %cleanup out: - %p.addr.0 = phi i8* [ %incdec.ptr, %entry ], [ %incdec.ptr2, %if.end ] + %p.addr.0 = phi ptr [ %incdec.ptr, %entry ], [ %incdec.ptr2, %if.end ] br label %cleanup cleanup: - %retval.0 = phi i8* [ %p.addr.0, %out ], [ null, %if.end ] - ret i8* %retval.0 + %retval.0 = phi ptr [ %p.addr.0, %out ], [ null, %if.end ] + ret ptr %retval.0 } Index: llvm/test/CodeGen/PowerPC/opt-li-add-to-addi.ll =================================================================== --- llvm/test/CodeGen/PowerPC/opt-li-add-to-addi.ll +++ llvm/test/CodeGen/PowerPC/opt-li-add-to-addi.ll @@ -13,7 +13,7 @@ br i1 %cmp, label %if.then, label %if.end if.then: - tail call void bitcast (void (...)* @callv to void ()*)() + tail call void @callv() br label %if.end if.end: @@ -37,7 +37,7 @@ br i1 %cmp, label %if.then, label %if.else if.then: - tail call void bitcast (void (...)* @callv to void ()*)() + tail call void @callv() br label %if.end4 if.else: @@ -45,7 +45,7 @@ br i1 %cmp1, label %if.then2, label %if.end4 if.then2: - tail call void bitcast (void (...)* @callv to void ()*)() + tail call void @callv() br label %if.end4 if.end4: Index: llvm/test/CodeGen/PowerPC/optcmp.ll =================================================================== --- llvm/test/CodeGen/PowerPC/optcmp.ll +++ llvm/test/CodeGen/PowerPC/optcmp.ll @@ -5,7 +5,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-f128:128:128-v128:128:128-n32:64" target triple = "powerpc64-unknown-linux-gnu" -define signext i32 @foo(i32 signext %a, i32 signext %b, i32* nocapture %c) #0 { +define signext i32 @foo(i32 signext %a, i32 signext %b, ptr nocapture %c) #0 { ; CHECK-LABEL: foo: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: cmpw 3, 4 @@ -27,13 +27,13 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %sub = sub nsw i32 %a, %b - store i32 %sub, i32* %c, align 4 + store i32 %sub, ptr %c, align 4 %cmp = icmp sgt i32 %a, %b %cond = select i1 %cmp, i32 %a, i32 %b ret i32 %cond } -define signext i32 @foo2(i32 signext %a, i32 signext %b, i32* nocapture %c) #0 { +define signext i32 @foo2(i32 signext %a, i32 signext %b, ptr nocapture %c) #0 { ; CHECK-LABEL: foo2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: slw 4, 3, 4 @@ -57,13 +57,13 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %shl = shl i32 %a, %b - store i32 %shl, i32* %c, align 4 + store i32 %shl, ptr %c, align 4 %cmp = icmp sgt i32 %shl, 0 %conv = zext i1 %cmp to i32 ret i32 %conv } -define i64 @fool(i64 %a, i64 %b, i64* nocapture %c) #0 { +define i64 @fool(i64 %a, i64 %b, ptr nocapture %c) #0 { ; CHECK-LABEL: fool: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sub. 6, 3, 4 @@ -83,13 +83,13 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %sub = sub nsw i64 %a, %b - store i64 %sub, i64* %c, align 8 + store i64 %sub, ptr %c, align 8 %cmp = icmp sgt i64 %a, %b %cond = select i1 %cmp, i64 %a, i64 %b ret i64 %cond } -define i64 @foolb(i64 %a, i64 %b, i64* nocapture %c) #0 { +define i64 @foolb(i64 %a, i64 %b, ptr nocapture %c) #0 { ; CHECK-LABEL: foolb: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sub. 6, 3, 4 @@ -109,13 +109,13 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %sub = sub nsw i64 %a, %b - store i64 %sub, i64* %c, align 8 + store i64 %sub, ptr %c, align 8 %cmp = icmp sle i64 %a, %b %cond = select i1 %cmp, i64 %a, i64 %b ret i64 %cond } -define i64 @foolc(i64 %a, i64 %b, i64* nocapture %c) #0 { +define i64 @foolc(i64 %a, i64 %b, ptr nocapture %c) #0 { ; CHECK-LABEL: foolc: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sub. 6, 4, 3 @@ -135,13 +135,13 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %sub = sub nsw i64 %b, %a - store i64 %sub, i64* %c, align 8 + store i64 %sub, ptr %c, align 8 %cmp = icmp sgt i64 %a, %b %cond = select i1 %cmp, i64 %a, i64 %b ret i64 %cond } -define i64 @foold(i64 %a, i64 %b, i64* nocapture %c) #0 { +define i64 @foold(i64 %a, i64 %b, ptr nocapture %c) #0 { ; CHECK-LABEL: foold: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sub. 6, 4, 3 @@ -161,13 +161,13 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %sub = sub nsw i64 %b, %a - store i64 %sub, i64* %c, align 8 + store i64 %sub, ptr %c, align 8 %cmp = icmp slt i64 %a, %b %cond = select i1 %cmp, i64 %a, i64 %b ret i64 %cond } -define i64 @foold2(i64 %a, i64 %b, i64* nocapture %c) #0 { +define i64 @foold2(i64 %a, i64 %b, ptr nocapture %c) #0 { ; CHECK-LABEL: foold2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sub. 6, 3, 4 @@ -187,13 +187,13 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %sub = sub nsw i64 %a, %b - store i64 %sub, i64* %c, align 8 + store i64 %sub, ptr %c, align 8 %cmp = icmp slt i64 %a, %b %cond = select i1 %cmp, i64 %a, i64 %b ret i64 %cond } -define i64 @foo2l(i64 %a, i64 %b, i64* nocapture %c) #0 { +define i64 @foo2l(i64 %a, i64 %b, ptr nocapture %c) #0 { ; CHECK-LABEL: foo2l: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sld 4, 3, 4 @@ -213,13 +213,13 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %shl = shl i64 %a, %b - store i64 %shl, i64* %c, align 8 + store i64 %shl, ptr %c, align 8 %cmp = icmp sgt i64 %shl, 0 %conv1 = zext i1 %cmp to i64 ret i64 %conv1 } -define double @food(double %a, double %b, double* nocapture %c) #0 { +define double @food(double %a, double %b, ptr nocapture %c) #0 { ; CHECK-LABEL: food: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fsub 0, 1, 2 @@ -241,13 +241,13 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %sub = fsub double %a, %b - store double %sub, double* %c, align 8 + store double %sub, ptr %c, align 8 %cmp = fcmp ogt double %a, %b %cond = select i1 %cmp, double %a, double %b ret double %cond } -define float @foof(float %a, float %b, float* nocapture %c) #0 { +define float @foof(float %a, float %b, ptr nocapture %c) #0 { ; CHECK-LABEL: foof: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: fsubs 0, 1, 2 @@ -269,7 +269,7 @@ ; CHECK-NO-ISEL-NEXT: blr entry: %sub = fsub float %a, %b - store float %sub, float* %c, align 4 + store float %sub, ptr %c, align 4 %cmp = fcmp ogt float %a, %b %cond = select i1 %cmp, float %a, float %b ret float %cond @@ -277,7 +277,7 @@ declare i64 @llvm.ctpop.i64(i64); -define signext i64 @fooct(i64 signext %a, i64 signext %b, i64* nocapture %c) #0 { +define signext i64 @fooct(i64 signext %a, i64 signext %b, ptr nocapture %c) #0 { ; CHECK-LABEL: fooct: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lis 6, 21845 @@ -346,7 +346,7 @@ entry: %sub = sub nsw i64 %a, %b %subc = call i64 @llvm.ctpop.i64(i64 %sub) - store i64 %subc, i64* %c, align 4 + store i64 %subc, ptr %c, align 4 %cmp = icmp sgt i64 %subc, 0 %cond = select i1 %cmp, i64 %a, i64 %b ret i64 %cond Index: llvm/test/CodeGen/PowerPC/or-addressing-mode.ll =================================================================== --- llvm/test/CodeGen/PowerPC/or-addressing-mode.ll +++ llvm/test/CodeGen/PowerPC/or-addressing-mode.ll @@ -1,22 +1,22 @@ ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu | not grep ori ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu | not grep rlwimi -define i32 @test1(i8* %P) { - %tmp.2.i = ptrtoint i8* %P to i32 ; [#uses=2] +define i32 @test1(ptr %P) { + %tmp.2.i = ptrtoint ptr %P to i32 ; [#uses=2] %tmp.4.i = and i32 %tmp.2.i, -65536 ; [#uses=1] %tmp.10.i = lshr i32 %tmp.2.i, 5 ; [#uses=1] %tmp.11.i = and i32 %tmp.10.i, 2040 ; [#uses=1] %tmp.13.i = or i32 %tmp.11.i, %tmp.4.i ; [#uses=1] - %tmp.14.i = inttoptr i32 %tmp.13.i to i32* ; [#uses=1] - %tmp.3 = load i32, i32* %tmp.14.i ; [#uses=1] + %tmp.14.i = inttoptr i32 %tmp.13.i to ptr ; [#uses=1] + %tmp.3 = load i32, ptr %tmp.14.i ; [#uses=1] ret i32 %tmp.3 } define i32 @test2(i32 %P) { %tmp.2 = shl i32 %P, 4 ; [#uses=1] %tmp.3 = or i32 %tmp.2, 2 ; [#uses=1] - %tmp.4 = inttoptr i32 %tmp.3 to i32* ; [#uses=1] - %tmp.5 = load i32, i32* %tmp.4 ; [#uses=1] + %tmp.4 = inttoptr i32 %tmp.3 to ptr ; [#uses=1] + %tmp.5 = load i32, ptr %tmp.4 ; [#uses=1] ret i32 %tmp.5 } Index: llvm/test/CodeGen/PowerPC/out-of-range-dform.ll =================================================================== --- llvm/test/CodeGen/PowerPC/out-of-range-dform.ll +++ llvm/test/CodeGen/PowerPC/out-of-range-dform.ll @@ -5,7 +5,7 @@ @_ZL3num = external dso_local unnamed_addr global float, align 4 -define dso_local void @main() local_unnamed_addr personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { +define dso_local void @main() local_unnamed_addr personality ptr @__gxx_personality_v0 { ; CHECK-P9-LABEL: main: ; CHECK-P9: # %bb.0: # %bb ; CHECK-P9-NEXT: mflr r0 @@ -34,8 +34,7 @@ ; CHECK-P9-NEXT: bne+ cr0, .LBB0_1 ; CHECK-P9-NEXT: .LBB0_2: # %bb16 bb: - %i = tail call noalias dereferenceable_or_null(6451600) i8* @malloc() - %i1 = bitcast i8* %i to float* + %i = tail call noalias dereferenceable_or_null(6451600) ptr @malloc() br label %bb2 bb2: ; preds = %bb5, %bb @@ -46,15 +45,15 @@ bb5: ; preds = %bb2 %i6 = mul nuw nsw i64 %i3, 1270 %i7 = add nuw nsw i64 %i6, 0 - %i8 = getelementptr inbounds float, float* %i1, i64 %i7 - store float undef, float* %i8, align 4 + %i8 = getelementptr inbounds float, ptr %i, i64 %i7 + store float undef, ptr %i8, align 4 %i9 = add nuw nsw i64 %i3, 3 - %i10 = load float, float* @_ZL3num, align 4 + %i10 = load float, ptr @_ZL3num, align 4 %i11 = fmul float %i10, 0x3E00000000000000 %i12 = mul nuw nsw i64 %i9, 1270 %i13 = add nuw nsw i64 %i12, 0 - %i14 = getelementptr inbounds float, float* %i1, i64 %i13 - store float %i11, float* %i14, align 4 + %i14 = getelementptr inbounds float, ptr %i, i64 %i13 + store float %i11, ptr %i14, align 4 %i15 = add nuw nsw i64 %i3, 5 br label %bb2 @@ -64,4 +63,4 @@ declare i32 @__gxx_personality_v0(...) -declare i8* @malloc() local_unnamed_addr +declare ptr @malloc() local_unnamed_addr Index: llvm/test/CodeGen/PowerPC/overflow-intrinsic-optimizations.ll =================================================================== --- llvm/test/CodeGen/PowerPC/overflow-intrinsic-optimizations.ll +++ llvm/test/CodeGen/PowerPC/overflow-intrinsic-optimizations.ll @@ -1,7 +1,7 @@ ; RUN: llc %s -mtriple=powerpc -o - | FileCheck %s ; RUN: llc %s -mtriple=powerpc64 -o - | FileCheck %s -define i1 @no__mulodi4(i32 %a, i64 %b, i32* %c) { +define i1 @no__mulodi4(i32 %a, i64 %b, ptr %c) { ; CHECK-LABEL: no__mulodi4 ; CHECK-NOT: bl __mulodi4 ; CHECK-NOT: bl __multi3 @@ -14,7 +14,7 @@ %5 = sext i32 %4 to i64 %6 = icmp ne i64 %3, %5 %7 = or i1 %2, %6 - store i32 %4, i32* %c, align 4 + store i32 %4, ptr %c, align 4 ret i1 %7 } Index: llvm/test/CodeGen/PowerPC/p10-constants.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-constants.ll +++ llvm/test/CodeGen/PowerPC/p10-constants.ll @@ -361,7 +361,7 @@ %b.1.i = phi i32 [ %b.2.i, %sw.epilog.i ], [ 0, %while.body ] %c.1.i = phi i32 [ %c.2.i, %sw.epilog.i ], [ 291, %while.body ] %d.1.i = phi i32 [ %d.2.i, %sw.epilog.i ], [ 1179648, %while.body ] - %0 = load i8, i8* null, align 1 + %0 = load i8, ptr null, align 1 %cmp1.i = icmp eq i8 %0, 1 br i1 %cmp1.i, label %if.then.i, label %if.else.i Index: llvm/test/CodeGen/PowerPC/p10-setbc-ri.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-setbc-ri.ll +++ llvm/test/CodeGen/PowerPC/p10-setbc-ri.ll @@ -137,7 +137,7 @@ entry: %cmp = icmp slt i8 %a, 1 %conv1 = zext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -159,7 +159,7 @@ entry: %cmp = icmp slt i32 %a, 1 %conv1 = zext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -181,7 +181,7 @@ entry: %cmp = icmp slt i64 %a, 1 %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -205,7 +205,7 @@ entry: %cmp = icmp slt i16 %a, 1 %conv1 = zext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } @@ -329,7 +329,7 @@ entry: %cmp = icmp sgt i8 %a, 1 %conv1 = zext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -351,7 +351,7 @@ entry: %cmp = icmp sgt i32 %a, 1 %conv1 = zext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -373,7 +373,7 @@ entry: %cmp = icmp sgt i64 %a, 1 %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -397,7 +397,7 @@ entry: %cmp = icmp sgt i16 %a, 1 %conv1 = zext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } @@ -521,7 +521,7 @@ entry: %cmp = icmp eq i8 %a, 1 %conv1 = zext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -543,7 +543,7 @@ entry: %cmp = icmp eq i32 %a, 1 %conv1 = zext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -565,7 +565,7 @@ entry: %cmp = icmp eq i64 %a, 1 %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -589,7 +589,7 @@ entry: %cmp = icmp eq i16 %a, 1 %conv1 = zext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } @@ -635,6 +635,6 @@ entry: %cmp = icmp ugt i64 %a, 1 %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/p10-setbc-rr.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-setbc-rr.ll +++ llvm/test/CodeGen/PowerPC/p10-setbc-rr.ll @@ -83,7 +83,7 @@ entry: %cmp = icmp eq i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -105,7 +105,7 @@ entry: %cmp = icmp eq i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -152,7 +152,7 @@ entry: %cmp = icmp eq i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -188,7 +188,7 @@ entry: %cmp = icmp eq i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -224,7 +224,7 @@ entry: %cmp = icmp eq i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -260,7 +260,7 @@ entry: %cmp = icmp eq i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -296,7 +296,7 @@ entry: %cmp = icmp eq i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -332,7 +332,7 @@ entry: %cmp = icmp sgt i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -355,7 +355,7 @@ entry: %cmp = icmp sgt i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -391,7 +391,7 @@ entry: %cmp = icmp sgt i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -427,7 +427,7 @@ entry: %cmp = icmp sgt i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -463,7 +463,7 @@ entry: %cmp = icmp slt i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -486,7 +486,7 @@ entry: %cmp = icmp slt i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -535,7 +535,7 @@ entry: %cmp = icmp slt i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -571,7 +571,7 @@ entry: %cmp = icmp slt i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -607,7 +607,7 @@ entry: %cmp = icmp eq i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -643,7 +643,7 @@ entry: %cmp = icmp eq i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -666,7 +666,7 @@ entry: %cmp = icmp eq i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -702,7 +702,7 @@ entry: %cmp = icmp eq i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -738,7 +738,7 @@ entry: %cmp = icmp eq i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -774,7 +774,7 @@ entry: %cmp = icmp eq i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -810,7 +810,7 @@ entry: %cmp = icmp eq i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -846,7 +846,7 @@ entry: %cmp = icmp eq i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -882,7 +882,7 @@ entry: %cmp = icmp sgt i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -918,6 +918,6 @@ entry: %cmp = icmp slt i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/p10-setbcr-ri.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-setbcr-ri.ll +++ llvm/test/CodeGen/PowerPC/p10-setbcr-ri.ll @@ -137,7 +137,7 @@ entry: %cmp = icmp ne i8 %a, 1 %conv1 = zext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -159,7 +159,7 @@ entry: %cmp = icmp ne i32 %a, 1 %conv1 = zext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -181,7 +181,7 @@ entry: %cmp = icmp ne i64 %a, 1 %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -205,7 +205,7 @@ entry: %cmp = icmp ne i16 %a, 1 %conv1 = zext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } Index: llvm/test/CodeGen/PowerPC/p10-setbcr-rr.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-setbcr-rr.ll +++ llvm/test/CodeGen/PowerPC/p10-setbcr-rr.ll @@ -88,7 +88,7 @@ entry: %cmp = icmp sge i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -111,7 +111,7 @@ entry: %cmp = icmp sge i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -160,7 +160,7 @@ entry: %cmp = icmp sge i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -196,7 +196,7 @@ entry: %cmp = icmp sge i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -232,7 +232,7 @@ entry: %cmp = icmp uge i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3 + store i64 %conv1, ptr @globalVal3 ret void } @@ -268,7 +268,7 @@ entry: %cmp = icmp sle i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -304,7 +304,7 @@ entry: %cmp = icmp sle i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -340,7 +340,7 @@ entry: %cmp = icmp sle i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -376,7 +376,7 @@ entry: %cmp = icmp sle i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -412,7 +412,7 @@ entry: %cmp = icmp ule i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3 + store i64 %conv1, ptr @globalVal3 ret void } @@ -446,7 +446,7 @@ entry: %cmp = icmp ne i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -468,7 +468,7 @@ entry: %cmp = icmp ne i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -502,7 +502,7 @@ entry: %cmp = icmp ne i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -536,7 +536,7 @@ entry: %cmp = icmp ne i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -570,7 +570,7 @@ entry: %cmp = icmp ne i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -604,7 +604,7 @@ entry: %cmp = icmp ne i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -638,7 +638,7 @@ entry: %cmp = icmp ne i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -672,7 +672,7 @@ entry: %cmp = icmp sge i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -706,7 +706,7 @@ entry: %cmp = icmp sge i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -740,7 +740,7 @@ entry: %cmp = icmp sge i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -774,7 +774,7 @@ entry: %cmp = icmp sge i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -810,7 +810,7 @@ entry: %cmp = icmp uge i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3 + store i64 %conv1, ptr @globalVal3 ret void } @@ -844,7 +844,7 @@ entry: %cmp = icmp sle i8 %a, %b %conv3 = zext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -878,7 +878,7 @@ entry: %cmp = icmp sle i32 %a, %b %conv = zext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -914,7 +914,7 @@ entry: %cmp = icmp sle i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -948,7 +948,7 @@ entry: %cmp = icmp sle i16 %a, %b %conv3 = zext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -984,7 +984,7 @@ entry: %cmp = icmp ule i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3 + store i64 %conv1, ptr @globalVal3 ret void } @@ -1018,7 +1018,7 @@ entry: %cmp = icmp ne i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -1052,6 +1052,6 @@ entry: %cmp = icmp ne i64 %a, %b %conv1 = zext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/p10-setnbc-ri.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-setnbc-ri.ll +++ llvm/test/CodeGen/PowerPC/p10-setnbc-ri.ll @@ -137,7 +137,7 @@ entry: %cmp = icmp slt i8 %a, 1 %conv1 = sext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -159,7 +159,7 @@ entry: %cmp = icmp slt i32 %a, 1 %conv1 = sext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -181,7 +181,7 @@ entry: %cmp = icmp slt i64 %a, 1 %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -205,7 +205,7 @@ entry: %cmp = icmp slt i16 %a, 1 %conv1 = sext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } @@ -329,7 +329,7 @@ entry: %cmp = icmp sgt i8 %a, 1 %conv1 = sext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -351,7 +351,7 @@ entry: %cmp = icmp sgt i32 %a, 1 %conv1 = sext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -373,7 +373,7 @@ entry: %cmp = icmp sgt i64 %a, 1 %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -397,7 +397,7 @@ entry: %cmp = icmp sgt i16 %a, 1 %conv1 = sext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } @@ -521,7 +521,7 @@ entry: %cmp = icmp eq i8 %a, 1 %conv1 = sext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -543,7 +543,7 @@ entry: %cmp = icmp eq i32 %a, 1 %conv1 = sext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -565,7 +565,7 @@ entry: %cmp = icmp eq i64 %a, 1 %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -589,7 +589,7 @@ entry: %cmp = icmp eq i16 %a, 1 %conv1 = sext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } @@ -635,7 +635,7 @@ entry: %cmp = icmp ugt i64 %a, 1 %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -825,7 +825,7 @@ entry: %cmp = icmp sgt i8 %a, 0 %conv1 = sext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -847,7 +847,7 @@ entry: %cmp = icmp sgt i32 %a, 0 %conv1 = sext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -869,7 +869,7 @@ entry: %cmp = icmp sgt i64 %a, 0 %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -891,7 +891,7 @@ entry: %cmp = icmp sgt i16 %a, 0 %conv1 = sext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } @@ -1009,7 +1009,7 @@ entry: %cmp = icmp eq i8 %a, 0 %conv1 = sext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -1031,7 +1031,7 @@ entry: %cmp = icmp eq i32 %a, 0 %conv1 = sext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -1053,7 +1053,7 @@ entry: %cmp = icmp eq i64 %a, 0 %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -1075,7 +1075,7 @@ entry: %cmp = icmp eq i16 %a, 0 %conv1 = sext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } Index: llvm/test/CodeGen/PowerPC/p10-setnbc-rr.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-setnbc-rr.ll +++ llvm/test/CodeGen/PowerPC/p10-setnbc-rr.ll @@ -84,7 +84,7 @@ entry: %cmp = icmp eq i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -106,7 +106,7 @@ entry: %cmp = icmp eq i32 %a, %b %conv = sext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -152,7 +152,7 @@ entry: %cmp = icmp eq i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -186,7 +186,7 @@ entry: %cmp = icmp eq i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -220,7 +220,7 @@ entry: %cmp = icmp eq i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -254,7 +254,7 @@ entry: %cmp = icmp eq i32 %a, %b %conv = sext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -288,7 +288,7 @@ entry: %cmp = icmp eq i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -322,7 +322,7 @@ entry: %cmp = icmp sgt i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -344,7 +344,7 @@ entry: %cmp = icmp sgt i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -378,7 +378,7 @@ entry: %cmp = icmp sgt i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -412,7 +412,7 @@ entry: %cmp = icmp sgt i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -446,7 +446,7 @@ entry: %cmp = icmp ugt i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -480,7 +480,7 @@ entry: %cmp = icmp ugt i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -514,7 +514,7 @@ entry: %cmp = icmp ugt i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -548,7 +548,7 @@ entry: %cmp = icmp slt i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -570,7 +570,7 @@ entry: %cmp = icmp slt i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -616,7 +616,7 @@ entry: %cmp = icmp slt i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -650,7 +650,7 @@ entry: %cmp = icmp slt i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -684,7 +684,7 @@ entry: %cmp = icmp ult i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -718,7 +718,7 @@ entry: %cmp = icmp ult i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -752,7 +752,7 @@ entry: %cmp = icmp ult i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -786,7 +786,7 @@ entry: %cmp = icmp eq i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -820,7 +820,7 @@ entry: %cmp = icmp eq i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -842,7 +842,7 @@ entry: %cmp = icmp eq i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -876,7 +876,7 @@ entry: %cmp = icmp eq i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -910,7 +910,7 @@ entry: %cmp = icmp eq i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -944,7 +944,7 @@ entry: %cmp = icmp eq i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -978,7 +978,7 @@ entry: %cmp = icmp eq i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -1012,7 +1012,7 @@ entry: %cmp = icmp eq i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -1046,7 +1046,7 @@ entry: %cmp = icmp sgt i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -1080,7 +1080,7 @@ entry: %cmp = icmp ugt i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -1114,7 +1114,7 @@ entry: %cmp = icmp ugt i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -1148,7 +1148,7 @@ entry: %cmp = icmp ugt i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -1182,7 +1182,7 @@ entry: %cmp = icmp slt i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -1216,7 +1216,7 @@ entry: %cmp = icmp ult i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -1250,7 +1250,7 @@ entry: %cmp = icmp ult i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -1284,7 +1284,7 @@ entry: %cmp = icmp ult i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } Index: llvm/test/CodeGen/PowerPC/p10-setnbcr-ri.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-setnbcr-ri.ll +++ llvm/test/CodeGen/PowerPC/p10-setnbcr-ri.ll @@ -131,7 +131,7 @@ entry: %cmp = icmp uge i8 %a, 1 %conv1 = sext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -153,7 +153,7 @@ entry: %cmp = icmp uge i32 %a, 1 %conv1 = sext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -175,7 +175,7 @@ entry: %cmp = icmp uge i64 %a, 1 %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -197,7 +197,7 @@ entry: %cmp = icmp uge i16 %a, 1 %conv1 = sext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } @@ -321,7 +321,7 @@ entry: %cmp = icmp ne i8 %a, 1 %conv1 = sext i1 %cmp to i8 - store i8 %conv1, i8* @globalVal, align 1 + store i8 %conv1, ptr @globalVal, align 1 ret void } @@ -343,7 +343,7 @@ entry: %cmp = icmp ne i32 %a, 1 %conv1 = sext i1 %cmp to i32 - store i32 %conv1, i32* @globalVal2, align 4 + store i32 %conv1, ptr @globalVal2, align 4 ret void } @@ -365,7 +365,7 @@ entry: %cmp = icmp ne i64 %a, 1 %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -389,7 +389,7 @@ entry: %cmp = icmp ne i16 %a, 1 %conv1 = sext i1 %cmp to i16 - store i16 %conv1, i16* @globalVal4, align 2 + store i16 %conv1, ptr @globalVal4, align 2 ret void } Index: llvm/test/CodeGen/PowerPC/p10-setnbcr-rr.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-setnbcr-rr.ll +++ llvm/test/CodeGen/PowerPC/p10-setnbcr-rr.ll @@ -83,7 +83,7 @@ entry: %cmp = icmp sge i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -105,7 +105,7 @@ entry: %cmp = icmp sge i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -151,7 +151,7 @@ entry: %cmp = icmp sge i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -185,7 +185,7 @@ entry: %cmp = icmp sge i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -219,7 +219,7 @@ entry: %cmp = icmp uge i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal + store i8 %conv3, ptr @globalVal ret void } @@ -253,7 +253,7 @@ entry: %cmp = icmp uge i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2 + store i32 %sub, ptr @globalVal2 ret void } @@ -287,7 +287,7 @@ entry: %cmp = icmp uge i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3 + store i64 %conv1, ptr @globalVal3 ret void } @@ -321,7 +321,7 @@ entry: %cmp = icmp uge i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4 + store i16 %conv3, ptr @globalVal4 ret void } @@ -355,7 +355,7 @@ entry: %cmp = icmp sle i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -389,7 +389,7 @@ entry: %cmp = icmp sle i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -423,7 +423,7 @@ entry: %cmp = icmp sle i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -457,7 +457,7 @@ entry: %cmp = icmp sle i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -491,7 +491,7 @@ entry: %cmp = icmp ule i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal + store i8 %conv3, ptr @globalVal ret void } @@ -525,7 +525,7 @@ entry: %cmp = icmp ule i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2 + store i32 %sub, ptr @globalVal2 ret void } @@ -559,7 +559,7 @@ entry: %cmp = icmp ule i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3 + store i64 %conv1, ptr @globalVal3 ret void } @@ -593,7 +593,7 @@ entry: %cmp = icmp ule i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4 + store i16 %conv3, ptr @globalVal4 ret void } @@ -627,7 +627,7 @@ entry: %cmp = icmp ne i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -649,7 +649,7 @@ entry: %cmp = icmp ne i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -683,7 +683,7 @@ entry: %cmp = icmp ne i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -717,7 +717,7 @@ entry: %cmp = icmp ne i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -751,7 +751,7 @@ entry: %cmp = icmp ne i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -785,7 +785,7 @@ entry: %cmp = icmp ne i32 %a, %b %conv = sext i1 %cmp to i32 - store i32 %conv, i32* @globalVal2, align 4 + store i32 %conv, ptr @globalVal2, align 4 ret void } @@ -819,7 +819,7 @@ entry: %cmp = icmp ne i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -853,7 +853,7 @@ entry: %cmp = icmp sge i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -887,7 +887,7 @@ entry: %cmp = icmp sge i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -921,7 +921,7 @@ entry: %cmp = icmp sge i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -955,7 +955,7 @@ entry: %cmp = icmp sge i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -989,7 +989,7 @@ entry: %cmp = icmp uge i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal + store i8 %conv3, ptr @globalVal ret void } @@ -1023,7 +1023,7 @@ entry: %cmp = icmp uge i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2 + store i32 %sub, ptr @globalVal2 ret void } @@ -1057,7 +1057,7 @@ entry: %cmp = icmp uge i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3 + store i64 %conv1, ptr @globalVal3 ret void } @@ -1091,7 +1091,7 @@ entry: %cmp = icmp uge i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4 + store i16 %conv3, ptr @globalVal4 ret void } @@ -1125,7 +1125,7 @@ entry: %cmp = icmp sle i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal, align 1 + store i8 %conv3, ptr @globalVal, align 1 ret void } @@ -1159,7 +1159,7 @@ entry: %cmp = icmp sle i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2, align 4 + store i32 %sub, ptr @globalVal2, align 4 ret void } @@ -1193,7 +1193,7 @@ entry: %cmp = icmp sle i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } @@ -1227,7 +1227,7 @@ entry: %cmp = icmp sle i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4, align 2 + store i16 %conv3, ptr @globalVal4, align 2 ret void } @@ -1261,7 +1261,7 @@ entry: %cmp = icmp ule i8 %a, %b %conv3 = sext i1 %cmp to i8 - store i8 %conv3, i8* @globalVal + store i8 %conv3, ptr @globalVal ret void } @@ -1295,7 +1295,7 @@ entry: %cmp = icmp ule i32 %a, %b %sub = sext i1 %cmp to i32 - store i32 %sub, i32* @globalVal2 + store i32 %sub, ptr @globalVal2 ret void } @@ -1329,7 +1329,7 @@ entry: %cmp = icmp ule i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3 + store i64 %conv1, ptr @globalVal3 ret void } @@ -1363,7 +1363,7 @@ entry: %cmp = icmp ule i16 %a, %b %conv3 = sext i1 %cmp to i16 - store i16 %conv3, i16* @globalVal4 + store i16 %conv3, ptr @globalVal4 ret void } @@ -1409,7 +1409,7 @@ entry: %cmp = icmp ne i64 %a, %b %conv1 = sext i1 %cmp to i64 - store i64 %conv1, i64* @globalVal3, align 8 + store i64 %conv1, ptr @globalVal3, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/p10-spill-creq.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-spill-creq.ll +++ llvm/test/CodeGen/PowerPC/p10-spill-creq.ll @@ -15,13 +15,13 @@ ; bit of any CR field is spilled. We need to test the spilling of a CR bit ; other than the LT bit. Hence this test case is rather complex. -%0 = type { i32, %1*, %0*, [1 x i8], i8*, i8*, i8*, i8*, i64, i32, [20 x i8] } -%1 = type { %1*, %0*, i32 } -%2 = type { [200 x i8], [200 x i8], %3*, %3*, %4*, %4*, %4*, %4*, %4*, i64 } -%3 = type { i64, i32, %3*, %3*, %3*, %3*, %4*, %4*, %4*, %4*, i64, i32, i32 } -%4 = type { i32, i64, %3*, %3*, i16, %4*, %4*, i64, i64 } +%0 = type { i32, ptr, ptr, [1 x i8], ptr, ptr, ptr, ptr, i64, i32, [20 x i8] } +%1 = type { ptr, ptr, i32 } +%2 = type { [200 x i8], [200 x i8], ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64 } +%3 = type { i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, i32, i32 } +%4 = type { i32, i64, ptr, ptr, i16, ptr, ptr, i64, i64 } -define dso_local double @P10_Spill_CR_EQ(%2* %arg) local_unnamed_addr #0 { +define dso_local double @P10_Spill_CR_EQ(ptr %arg) local_unnamed_addr #0 { ; CHECK-LABEL: P10_Spill_CR_EQ: ; CHECK: # %bb.0: # %bb ; CHECK-NEXT: mfcr r12 @@ -187,10 +187,10 @@ ; CHECK-NEXT: xsadddp f1, f0, f1 ; CHECK-NEXT: blr bb: - %tmp = getelementptr inbounds %4, %4* null, i64 undef, i32 7 - %tmp1 = load i64, i64* undef, align 8 - %tmp2 = load i64, i64* null, align 8 - %tmp3 = load i64, i64* %tmp, align 8 + %tmp = getelementptr inbounds %4, ptr null, i64 undef, i32 7 + %tmp1 = load i64, ptr undef, align 8 + %tmp2 = load i64, ptr null, align 8 + %tmp3 = load i64, ptr %tmp, align 8 %tmp4 = icmp eq i64 %tmp1, 0 %tmp5 = icmp eq i64 %tmp2, 0 %tmp6 = icmp eq i64 %tmp3, 0 @@ -200,7 +200,7 @@ br i1 %tmp4, label %bb12, label %bb10 bb10: ; preds = %bb - %tmp11 = load i32, i32* undef, align 8 + %tmp11 = load i32, ptr undef, align 8 br label %bb12 bb12: ; preds = %bb10, %bb @@ -208,7 +208,7 @@ br i1 %tmp5, label %bb16, label %bb14 bb14: ; preds = %bb12 - %tmp15 = load i32, i32* undef, align 8 + %tmp15 = load i32, ptr undef, align 8 br label %bb16 bb16: ; preds = %bb14, %bb12 @@ -216,7 +216,7 @@ br i1 %tmp6, label %bb20, label %bb18 bb18: ; preds = %bb16 - %tmp19 = load i32, i32* undef, align 8 + %tmp19 = load i32, ptr undef, align 8 br label %bb20 bb20: ; preds = %bb18, %bb16 @@ -236,7 +236,7 @@ br i1 %tmp31, label %bb34, label %bb36 bb34: ; preds = %bb20 - %tmp35 = load i64, i64* undef, align 8 + %tmp35 = load i64, ptr undef, align 8 br label %bb36 bb36: ; preds = %bb34, %bb20 @@ -244,7 +244,7 @@ br i1 %tmp33, label %bb38, label %bb40 bb38: ; preds = %bb36 - %tmp39 = load i64, i64* undef, align 8 + %tmp39 = load i64, ptr undef, align 8 br label %bb40 bb40: ; preds = %bb38, %bb36 @@ -258,15 +258,15 @@ br i1 %tmp47, label %bb48, label %bb50 bb48: ; preds = %bb40 - %tmp49 = load %3*, %3** undef, align 8 + %tmp49 = load ptr, ptr undef, align 8 br label %bb50 bb50: ; preds = %bb48, %bb40 - %tmp51 = phi %3* [ undef, %bb40 ], [ %tmp49, %bb48 ] + %tmp51 = phi ptr [ undef, %bb40 ], [ %tmp49, %bb48 ] br i1 %tmp45, label %bb52, label %bb54 bb52: ; preds = %bb50 - %tmp53 = load i32, i32* undef, align 8 + %tmp53 = load i32, ptr undef, align 8 br label %bb54 bb54: ; preds = %bb52, %bb50 @@ -274,13 +274,13 @@ br i1 %tmp46, label %bb56, label %bb58 bb56: ; preds = %bb54 - %tmp57 = load i32, i32* undef, align 8 + %tmp57 = load i32, ptr undef, align 8 br label %bb58 bb58: ; preds = %bb56, %bb54 %tmp59 = phi i32 [ undef, %bb54 ], [ %tmp57, %bb56 ] - %tmp60 = getelementptr inbounds %3, %3* %tmp51, i64 0, i32 12 - %tmp61 = load i32, i32* %tmp60, align 8 + %tmp60 = getelementptr inbounds %3, ptr %tmp51, i64 0, i32 12 + %tmp61 = load i32, ptr %tmp60, align 8 %tmp62 = icmp slt i32 %tmp55, 1 %tmp63 = icmp slt i32 %tmp59, 1 %tmp64 = icmp slt i32 %tmp61, 1 @@ -290,12 +290,12 @@ br i1 %tmp65, label %bb68, label %bb70 bb68: ; preds = %bb58 - %tmp69 = load i64, i64* undef, align 8 + %tmp69 = load i64, ptr undef, align 8 br label %bb70 bb70: ; preds = %bb68, %bb58 %tmp71 = phi i64 [ undef, %bb58 ], [ %tmp69, %bb68 ] - %tmp72 = load i64, i64* undef, align 8 + %tmp72 = load i64, ptr undef, align 8 %tmp73 = xor i1 %tmp25, true %tmp74 = xor i1 %tmp26, true %tmp75 = xor i1 %tmp27, true Index: llvm/test/CodeGen/PowerPC/p10-spill-crgt.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-spill-crgt.ll +++ llvm/test/CodeGen/PowerPC/p10-spill-crgt.ll @@ -401,7 +401,7 @@ ; CHECK-BE-NEXT: bc 4, 4*cr4+eq, .LBB0_34 ; CHECK-BE-NEXT: b .LBB0_35 bb: - %tmp = load i32, i32* undef, align 8 + %tmp = load i32, ptr undef, align 8 %tmp1 = and i32 %tmp, 16 %tmp2 = icmp ne i32 %tmp1, 0 %tmp3 = and i32 %tmp, 32 @@ -411,7 +411,7 @@ bb5: ; preds = %bb63, %bb %tmp6 = phi i32 [ 0, %bb ], [ %tmp64, %bb63 ] %tmp7 = phi i1 [ %tmp4, %bb ], [ undef, %bb63 ] - %tmp8 = load i32, i32* undef, align 8 + %tmp8 = load i32, ptr undef, align 8 br i1 %tmp2, label %bb9, label %bb10 bb9: ; preds = %bb5 @@ -528,16 +528,16 @@ br i1 %tmp7, label %bb33, label %bb36 bb33: ; preds = %bb32 - %tmp34 = getelementptr inbounds i8, i8* null, i64 -1 - %tmp35 = select i1 %tmp12, i8* %tmp34, i8* null - store i8 0, i8* %tmp35, align 1 + %tmp34 = getelementptr inbounds i8, ptr null, i64 -1 + %tmp35 = select i1 %tmp12, ptr %tmp34, ptr null + store i8 0, ptr %tmp35, align 1 br label %bb36 bb36: ; preds = %bb33, %bb32 br i1 %tmp30, label %bb37, label %bb38 bb37: ; preds = %bb36 - store i16 undef, i16* null, align 2 + store i16 undef, ptr null, align 2 br label %bb38 bb38: ; preds = %bb37, %bb36 @@ -558,9 +558,9 @@ bb43: ; preds = %bb10, %bb10 call void @call_1() - %tmp44 = getelementptr inbounds i8, i8* null, i64 -1 - %tmp45 = select i1 %tmp12, i8* %tmp44, i8* null - store i8 0, i8* %tmp45, align 1 + %tmp44 = getelementptr inbounds i8, ptr null, i64 -1 + %tmp45 = select i1 %tmp12, ptr %tmp44, ptr null + store i8 0, ptr %tmp45, align 1 br label %bb63 bb46: ; preds = %bb46, %bb10 Index: llvm/test/CodeGen/PowerPC/p10-spill-crlt.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-spill-crlt.ll +++ llvm/test/CodeGen/PowerPC/p10-spill-crlt.ll @@ -16,10 +16,10 @@ ; other than the LT bit. Hence this test case is rather complex. %0 = type { %1 } -%1 = type { %0*, %0*, %0*, i32 } +%1 = type { ptr, ptr, ptr, i32 } @call_1 = external dso_local unnamed_addr global i32, align 4 -declare %0* @call_2() local_unnamed_addr +declare ptr @call_2() local_unnamed_addr declare i32 @call_3() local_unnamed_addr declare void @call_4() local_unnamed_addr @@ -156,8 +156,8 @@ ; CHECK-BE-NEXT: .LBB0_13: # %bb3 ; CHECK-BE-NEXT: .LBB0_14: # %bb2 bb: - %tmp = tail call %0* @call_2() - %tmp1 = icmp ne %0* %tmp, null + %tmp = tail call ptr @call_2() + %tmp1 = icmp ne ptr %tmp, null switch i32 undef, label %bb4 [ i32 3, label %bb2 i32 2, label %bb3 @@ -170,13 +170,13 @@ unreachable bb4: ; preds = %bb - %tmp5 = load i64, i64* undef, align 8 + %tmp5 = load i64, ptr undef, align 8 %tmp6 = trunc i64 %tmp5 to i32 %tmp7 = add i32 0, %tmp6 %tmp8 = icmp sgt i32 %tmp7, 0 %tmp9 = icmp eq i8 0, 0 %tmp10 = zext i1 %tmp9 to i32 - %tmp11 = icmp eq %0* %tmp, null + %tmp11 = icmp eq ptr %tmp, null br label %bb12 bb12: ; preds = %bb38, %bb4 @@ -200,7 +200,7 @@ br label %bb24 bb24: ; preds = %bb23 - %tmp25 = load i32, i32* @call_1, align 4 + %tmp25 = load i32, ptr @call_1, align 4 %tmp26 = icmp eq i32 %tmp25, 0 br i1 %tmp26, label %bb30, label %bb27 Index: llvm/test/CodeGen/PowerPC/p10-spill-crun.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p10-spill-crun.ll +++ llvm/test/CodeGen/PowerPC/p10-spill-crun.ll @@ -17,23 +17,23 @@ %0 = type { i32, [768 x i8], [768 x i8], [1024 x i8], [768 x i8], [768 x i8], [768 x i8], [768 x i8], [768 x i8], [1024 x i8], [1024 x i8], i32, i16, i16, i16, i16, i16, i16, i32, i32, i32, i16, i16, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, [64 x i8], i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i32, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i8, i8, i8, i8, i16, i16, i16, i16, i16, i16, float, float, i32, i16, i16, float, i16, i16, i16, i16} %1 = type opaque -%2 = type { i8* } -%3 = type { %3*, %3*, %4* (i8*)*, %2, i32, %2, %2*, i8*, double*, float*, i8*, i8*, %4* } -%4 = type { %4*, %4*, %4*, i32, i32, i32, i32, i32, i8*, [3 x float], i8, [64 x i8] } +%2 = type { ptr } +%3 = type { ptr, ptr, ptr, %2, i32, %2, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%4 = type { ptr, ptr, ptr, i32, i32, i32, i32, i32, ptr, [3 x float], i8, [64 x i8] } @global_1 = external dso_local unnamed_addr constant [1 x i8], align 1 @global_2 = external local_unnamed_addr global %0, align 8 -@global_3 = external local_unnamed_addr global i8* (i64, i8*)*, align 8 +@global_3 = external local_unnamed_addr global ptr, align 8 @global_4 = external dso_local unnamed_addr constant [14 x i8], align 1 -declare i8 @call_1(%1*) local_unnamed_addr -declare i32 @call_2(%2*, %1*) local_unnamed_addr -declare i32 @call_3(%2*, %1*) local_unnamed_addr -declare %3* @call_4(%4*, i32, i32, i32, i32, i32, i16, i16, %2*, %1*, i32, float, float, float, float, i8*) local_unnamed_addr -declare i32 @call_5(i8*) local_unnamed_addr -declare i8 @call_6(%1*, i32) local_unnamed_addr +declare i8 @call_1(ptr) local_unnamed_addr +declare i32 @call_2(ptr, ptr) local_unnamed_addr +declare i32 @call_3(ptr, ptr) local_unnamed_addr +declare ptr @call_4(ptr, i32, i32, i32, i32, i32, i16, i16, ptr, ptr, i32, float, float, float, float, ptr) local_unnamed_addr +declare i32 @call_5(ptr) local_unnamed_addr +declare i8 @call_6(ptr, i32) local_unnamed_addr -define dso_local void @P10_Spill_CR_UN(%2* %arg, %1* %arg1, i32 %arg2) local_unnamed_addr { +define dso_local void @P10_Spill_CR_UN(ptr %arg, ptr %arg1, i32 %arg2) local_unnamed_addr { ; CHECK-LABEL: P10_Spill_CR_UN: ; CHECK: # %bb.0: # %bb ; CHECK-NEXT: mfcr r12 @@ -340,9 +340,9 @@ ; CHECK-BE-NEXT: .LBB0_19: # %bb55 bb: %tmp = alloca [3 x i8], align 1 - %tmp3 = tail call zeroext i8 @call_1(%1* %arg1) + %tmp3 = tail call zeroext i8 @call_1(ptr %arg1) %tmp4 = icmp ne i8 %tmp3, 0 - %tmp5 = tail call signext i32 @call_2(%2* %arg, %1* %arg1) + %tmp5 = tail call signext i32 @call_2(ptr %arg, ptr %arg1) %tmp6 = and i32 %arg2, 16 %tmp7 = icmp ne i32 %tmp6, 0 br label %bb8 @@ -351,7 +351,7 @@ br i1 undef, label %bb9, label %bb11 bb9: ; preds = %bb8 - %tmp10 = call signext i32 @call_3(%2* %arg, %1* %arg1) + %tmp10 = call signext i32 @call_3(ptr %arg, ptr %arg1) br label %bb12 bb11: ; preds = %bb8 @@ -369,18 +369,16 @@ br i1 %tmp18, label %bb37, label %bb19 bb19: ; preds = %bb16 - %tmp20 = getelementptr inbounds [3 x i8], [3 x i8]* %tmp, i64 0, i64 0 - %tmp21 = load i8* (i64, i8*)*, i8* (i64, i8*)** @global_3, align 8 - %tmp22 = call i8* %tmp21(i64 undef, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @global_4, i64 0, i64 0)) - %tmp23 = bitcast i8* %tmp22 to i32* - %tmp24 = icmp eq i32* %tmp23, null + %tmp21 = load ptr, ptr @global_3, align 8 + %tmp22 = call ptr %tmp21(i64 undef, ptr @global_4) + %tmp24 = icmp eq ptr %tmp22, null %tmp25 = icmp eq i32 %tmp13, 0 %tmp26 = zext i32 %tmp5 to i64 br label %bb27 bb27: ; preds = %bb34, %bb19 - %tmp28 = call zeroext i8 @call_6(%1* %arg1, i32 signext undef) - store i8 %tmp28, i8* %tmp20, align 1 + %tmp28 = call zeroext i8 @call_6(ptr %arg1, i32 signext undef) + store i8 %tmp28, ptr %tmp, align 1 br label %bb29 bb29: ; preds = %bb27 @@ -406,8 +404,8 @@ br label %bb54 bb37: ; preds = %bb16 - %tmp38 = load i32, i32* undef, align 8 - %tmp39 = select i1 %tmp7, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @global_1, i64 0, i64 0), i8* null + %tmp38 = load i32, ptr undef, align 8 + %tmp39 = select i1 %tmp7, ptr @global_1, ptr null %tmp40 = icmp ne i32 %tmp38, 0 switch i32 undef, label %bb41 [ i32 1, label %bb42 @@ -418,8 +416,8 @@ br label %bb50 bb42: ; preds = %bb37, %bb37 - %tmp43 = call signext i32 @call_5(i8* %tmp39) - %tmp44 = load i16, i16* getelementptr inbounds (%0, %0* @global_2, i64 0, i32 81), align 4 + %tmp43 = call signext i32 @call_5(ptr %tmp39) + %tmp44 = load i16, ptr getelementptr inbounds (%0, ptr @global_2, i64 0, i32 81), align 4 %tmp45 = sitofp i16 %tmp44 to float %tmp46 = select i1 %tmp40, float 1.750000e+00, float 1.500000e+00 %tmp47 = fmul fast float %tmp46, %tmp45 @@ -430,7 +428,7 @@ bb50: ; preds = %bb42, %bb41 %tmp51 = phi i32 [ %tmp49, %bb42 ], [ undef, %bb41 ] %tmp52 = trunc i32 %tmp51 to i16 - %tmp53 = call %3* @call_4(%4* nonnull undef, i32 signext 1024, i32 signext 0, i32 signext %tmp38, i32 signext 0, i32 signext 0, i16 signext %tmp52, i16 signext undef, %2* %arg, %1* %arg1, i32 signext -1, float 0.000000e+00, float undef, float -1.000000e+00, float -1.000000e+00, i8* null) + %tmp53 = call ptr @call_4(ptr nonnull undef, i32 signext 1024, i32 signext 0, i32 signext %tmp38, i32 signext 0, i32 signext 0, i16 signext %tmp52, i16 signext undef, ptr %arg, ptr %arg1, i32 signext -1, float 0.000000e+00, float undef, float -1.000000e+00, float -1.000000e+00, ptr null) br label %bb54 bb54: ; preds = %bb50, %bb36 Index: llvm/test/CodeGen/PowerPC/p8-isel-sched.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p8-isel-sched.ll +++ llvm/test/CodeGen/PowerPC/p8-isel-sched.ll @@ -4,21 +4,21 @@ target triple = "powerpc64-unknown-linux-gnu" ; Function Attrs: nounwind -define void @foo(i32* nocapture %r1, i32* nocapture %r2, i32* nocapture %r3, i32* nocapture %r4, i32 signext %a, i32 signext %b, i32 signext %c, i32 signext %d) #0 { +define void @foo(ptr nocapture %r1, ptr nocapture %r2, ptr nocapture %r3, ptr nocapture %r4, i32 signext %a, i32 signext %b, i32 signext %c, i32 signext %d) #0 { entry: %tobool = icmp ne i32 %a, 0 %cond = select i1 %tobool, i32 %b, i32 %c - store i32 %cond, i32* %r1, align 4 + store i32 %cond, ptr %r1, align 4 %cond5 = select i1 %tobool, i32 %b, i32 %d - store i32 %cond5, i32* %r2, align 4 + store i32 %cond5, ptr %r2, align 4 %add = add nsw i32 %b, 1 %sub = add nsw i32 %d, -2 %cond10 = select i1 %tobool, i32 %add, i32 %sub - store i32 %cond10, i32* %r3, align 4 + store i32 %cond10, ptr %r3, align 4 %add13 = add nsw i32 %b, 3 %sub15 = add nsw i32 %d, -5 %cond17 = select i1 %tobool, i32 %add13, i32 %sub15 - store i32 %cond17, i32* %r4, align 4 + store i32 %cond17, ptr %r4, align 4 ret void } Index: llvm/test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll +++ llvm/test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll @@ -174,7 +174,7 @@ ; CHECK-AIX-NEXT: lxvdsx 34, 0, 3 ; CHECK-AIX-NEXT: blr entry: - %0 = load double, double* @d, align 8 + %0 = load double, ptr @d, align 8 %splat.splatinsert = insertelement <2 x double> undef, double %0, i32 0 %splat.splat = shufflevector <2 x double> %splat.splatinsert, <2 x double> undef, <2 x i32> zeroinitializer ret <2 x double> %splat.splat Index: llvm/test/CodeGen/PowerPC/p9-dform-load-alignment.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p9-dform-load-alignment.ll +++ llvm/test/CodeGen/PowerPC/p9-dform-load-alignment.ll @@ -12,8 +12,8 @@ ; CHECK-NEXT: ld r3, 0(r3) ; CHECK-NEXT: std r3, 0(r3) entry: - %0 = load <4 x i16>, <4 x i16>* bitcast ([4 x i16]* @best8x8mode to <4 x i16>*), align 2 - store <4 x i16> %0, <4 x i16>* undef, align 4 + %0 = load <4 x i16>, ptr @best8x8mode, align 2 + store <4 x i16> %0, ptr undef, align 4 unreachable } Index: llvm/test/CodeGen/PowerPC/p9-vbpermd.ll =================================================================== --- llvm/test/CodeGen/PowerPC/p9-vbpermd.ll +++ llvm/test/CodeGen/PowerPC/p9-vbpermd.ll @@ -23,10 +23,10 @@ ; CHECK-NEXT: stxv 34, 0(3) ; CHECK-NEXT: blr entry: - %0 = load <2 x i64>, <2 x i64>* @vull, align 16 - %1 = load <16 x i8>, <16 x i8>* @vuc, align 16 + %0 = load <2 x i64>, ptr @vull, align 16 + %1 = load <16 x i8>, ptr @vuc, align 16 %2 = call <2 x i64> @llvm.ppc.altivec.vbpermd(<2 x i64> %0, <16 x i8> %1) - store <2 x i64> %2, <2 x i64>* @res_vull, align 16 + store <2 x i64> %2, ptr @res_vull, align 16 ret void } declare <2 x i64> @llvm.ppc.altivec.vbpermd(<2 x i64>, <16 x i8>) Index: llvm/test/CodeGen/PowerPC/paired-vector-intrinsics.ll =================================================================== --- llvm/test/CodeGen/PowerPC/paired-vector-intrinsics.ll +++ llvm/test/CodeGen/PowerPC/paired-vector-intrinsics.ll @@ -17,7 +17,7 @@ ; assemble_pair declare <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8>, <16 x i8>) -define void @ass_pair(<256 x i1>* %ptr, <16 x i8> %vc) { +define void @ass_pair(ptr %ptr, <16 x i8> %vc) { ; CHECK-LABEL: ass_pair: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: vmr v3, v2 @@ -47,13 +47,13 @@ ; CHECK-BE-NOMMA-NEXT: blr entry: %0 = tail call <256 x i1> @llvm.ppc.vsx.assemble.pair(<16 x i8> %vc, <16 x i8> %vc) - store <256 x i1> %0, <256 x i1>* %ptr, align 32 + store <256 x i1> %0, ptr %ptr, align 32 ret void } ; disassemble_pair declare { <16 x i8>, <16 x i8> } @llvm.ppc.vsx.disassemble.pair(<256 x i1>) -define void @disass_pair(<256 x i1>* %ptr1, <16 x i8>* %ptr2, <16 x i8>* %ptr3) { +define void @disass_pair(ptr %ptr1, ptr %ptr2, ptr %ptr3) { ; CHECK-LABEL: disass_pair: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxv v3, 0(r3) @@ -86,16 +86,16 @@ ; CHECK-BE-NOMMA-NEXT: stxv v3, 0(r5) ; CHECK-BE-NOMMA-NEXT: blr entry: - %0 = load <256 x i1>, <256 x i1>* %ptr1, align 32 + %0 = load <256 x i1>, ptr %ptr1, align 32 %1 = tail call { <16 x i8>, <16 x i8> } @llvm.ppc.vsx.disassemble.pair(<256 x i1> %0) %2 = extractvalue { <16 x i8>, <16 x i8> } %1, 0 %3 = extractvalue { <16 x i8>, <16 x i8> } %1, 1 - store <16 x i8> %2, <16 x i8>* %ptr2, align 16 - store <16 x i8> %3, <16 x i8>* %ptr3, align 16 + store <16 x i8> %2, ptr %ptr2, align 16 + store <16 x i8> %3, ptr %ptr3, align 16 ret void } -define void @test_ldst_1(<256 x i1>* %vpp, <256 x i1>* %vp2) { +define void @test_ldst_1(ptr %vpp, ptr %vp2) { ; CHECK-LABEL: test_ldst_1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxvp vsp34, 0(r3) @@ -120,17 +120,15 @@ ; CHECK-BE-NOMMA-NEXT: stxvp vsp34, 0(r4) ; CHECK-BE-NOMMA-NEXT: blr entry: - %0 = bitcast <256 x i1>* %vpp to i8* - %1 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(i8* %0) - %2 = bitcast <256 x i1>* %vp2 to i8* - tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %1, i8* %2) + %0 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(ptr %vpp) + tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %0, ptr %vp2) ret void } -declare <256 x i1> @llvm.ppc.vsx.lxvp(i8*) -declare void @llvm.ppc.vsx.stxvp(<256 x i1>, i8*) +declare <256 x i1> @llvm.ppc.vsx.lxvp(ptr) +declare void @llvm.ppc.vsx.stxvp(<256 x i1>, ptr) -define void @test_ldst_2(<256 x i1>* %vpp, i64 %offset, <256 x i1>* %vp2) { +define void @test_ldst_2(ptr %vpp, i64 %offset, ptr %vp2) { ; CHECK-LABEL: test_ldst_2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxvpx vsp34, r3, r4 @@ -155,16 +153,14 @@ ; CHECK-BE-NOMMA-NEXT: stxvpx vsp34, r5, r4 ; CHECK-BE-NOMMA-NEXT: blr entry: - %0 = bitcast <256 x i1>* %vpp to i8* - %1 = getelementptr i8, i8* %0, i64 %offset - %2 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(i8* %1) - %3 = bitcast <256 x i1>* %vp2 to i8* - %4 = getelementptr i8, i8* %3, i64 %offset - tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %2, i8* %4) + %0 = getelementptr i8, ptr %vpp, i64 %offset + %1 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(ptr %0) + %2 = getelementptr i8, ptr %vp2, i64 %offset + tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %1, ptr %2) ret void } -define void @test_ldst_3(<256 x i1>* %vpp, <256 x i1>* %vp2) { +define void @test_ldst_3(ptr %vpp, ptr %vp2) { ; CHECK-LABEL: test_ldst_3: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: plxvp vsp34, 18(r3), 0 @@ -189,16 +185,14 @@ ; CHECK-BE-NOMMA-NEXT: pstxvp vsp34, 18(r4), 0 ; CHECK-BE-NOMMA-NEXT: blr entry: - %0 = bitcast <256 x i1>* %vpp to i8* - %1 = getelementptr i8, i8* %0, i64 18 - %2 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(i8* %1) - %3 = bitcast <256 x i1>* %vp2 to i8* - %4 = getelementptr i8, i8* %3, i64 18 - tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %2, i8* %4) + %0 = getelementptr i8, ptr %vpp, i64 18 + %1 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(ptr %0) + %2 = getelementptr i8, ptr %vp2, i64 18 + tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %1, ptr %2) ret void } -define void @test_ldst_4(<256 x i1>* %vpp, <256 x i1>* %vp2) { +define void @test_ldst_4(ptr %vpp, ptr %vp2) { ; CHECK-LABEL: test_ldst_4: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: plxvp vsp34, 1(r3), 0 @@ -223,16 +217,14 @@ ; CHECK-BE-NOMMA-NEXT: pstxvp vsp34, 1(r4), 0 ; CHECK-BE-NOMMA-NEXT: blr entry: - %0 = bitcast <256 x i1>* %vpp to i8* - %1 = getelementptr i8, i8* %0, i64 1 - %2 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(i8* %1) - %3 = bitcast <256 x i1>* %vp2 to i8* - %4 = getelementptr i8, i8* %3, i64 1 - tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %2, i8* %4) + %0 = getelementptr i8, ptr %vpp, i64 1 + %1 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(ptr %0) + %2 = getelementptr i8, ptr %vp2, i64 1 + tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %1, ptr %2) ret void } -define void @test_ldst_5(<256 x i1>* %vpp, <256 x i1>* %vp2) { +define void @test_ldst_5(ptr %vpp, ptr %vp2) { ; CHECK-LABEL: test_ldst_5: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: plxvp vsp34, 42(r3), 0 @@ -257,16 +249,14 @@ ; CHECK-BE-NOMMA-NEXT: pstxvp vsp34, 42(r4), 0 ; CHECK-BE-NOMMA-NEXT: blr entry: - %0 = bitcast <256 x i1>* %vpp to i8* - %1 = getelementptr i8, i8* %0, i64 42 - %2 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(i8* %1) - %3 = bitcast <256 x i1>* %vp2 to i8* - %4 = getelementptr i8, i8* %3, i64 42 - tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %2, i8* %4) + %0 = getelementptr i8, ptr %vpp, i64 42 + %1 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(ptr %0) + %2 = getelementptr i8, ptr %vp2, i64 42 + tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %1, ptr %2) ret void } -define void @test_ldst_6(<256 x i1>* %vpp, <256 x i1>* %vp2) { +define void @test_ldst_6(ptr %vpp, ptr %vp2) { ; CHECK-LABEL: test_ldst_6: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxvp vsp34, 4096(r3) @@ -291,16 +281,14 @@ ; CHECK-BE-NOMMA-NEXT: stxvp vsp34, 4096(r4) ; CHECK-BE-NOMMA-NEXT: blr entry: - %0 = getelementptr <256 x i1>, <256 x i1>* %vpp, i64 128 - %1 = bitcast <256 x i1>* %0 to i8* - %2 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(i8* %1) - %3 = getelementptr <256 x i1>, <256 x i1>* %vp2, i64 128 - %4 = bitcast <256 x i1>* %3 to i8* - tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %2, i8* %4) + %0 = getelementptr <256 x i1>, ptr %vpp, i64 128 + %1 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(ptr %0) + %2 = getelementptr <256 x i1>, ptr %vp2, i64 128 + tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %1, ptr %2) ret void } -define void @test_ldst_7(<256 x i1>* %vpp, <256 x i1>* %vp2) { +define void @test_ldst_7(ptr %vpp, ptr %vp2) { ; FIXME: A prefixed load (plxvp) is expected here as the offset in this ; test case is a constant that fits within 34-bits. ; CHECK-LABEL: test_ldst_7: @@ -327,11 +315,9 @@ ; CHECK-BE-NOMMA-NEXT: pstxvp vsp34, 32799(r4), 0 ; CHECK-BE-NOMMA-NEXT: blr entry: - %0 = bitcast <256 x i1>* %vpp to i8* - %1 = getelementptr i8, i8* %0, i64 32799 - %2 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(i8* %1) - %3 = bitcast <256 x i1>* %vp2 to i8* - %4 = getelementptr i8, i8* %3, i64 32799 - tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %2, i8* %4) + %0 = getelementptr i8, ptr %vpp, i64 32799 + %1 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(ptr %0) + %2 = getelementptr i8, ptr %vp2, i64 32799 + tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %1, ptr %2) ret void } Index: llvm/test/CodeGen/PowerPC/pcrel-block-address.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-block-address.ll +++ llvm/test/CodeGen/PowerPC/pcrel-block-address.ll @@ -8,11 +8,11 @@ ; CHECK: paddi r3, 0, .Ltmp0@PCREL, 1 ; CHECK: bl helper@notoc entry: - tail call void @helper(i8* blockaddress(@blockaddress, %label)) + tail call void @helper(ptr blockaddress(@blockaddress, %label)) br label %label label: ; preds = %entry ret void } -declare void @helper(i8*) +declare void @helper(ptr) Index: llvm/test/CodeGen/PowerPC/pcrel-byte-loads.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-byte-loads.ll +++ llvm/test/CodeGen/PowerPC/pcrel-byte-loads.ll @@ -21,7 +21,7 @@ ; CHECK-BE-NEXT: lbz r3, GlobLd1@toc@l(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i1, i1* getelementptr inbounds ([20 x i1], [20 x i1]* @GlobLd1, i64 0, i64 0), align 1 + %0 = load i1, ptr @GlobLd1, align 1 ret i1 %0 } @@ -37,7 +37,7 @@ ; CHECK-BE-NEXT: lbz r3, GlobLd1@toc@l(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i1, i1* getelementptr inbounds ([20 x i1], [20 x i1]* @GlobLd1, i64 0, i64 0), align 1 + %0 = load i1, ptr @GlobLd1, align 1 ret i1 %0 } @@ -58,15 +58,15 @@ ; CHECK-BE-NEXT: stb r3, GlobSt1@toc@l(r4) ; CHECK-BE-NEXT: blr entry: - %0 = load i1, i1* getelementptr inbounds ([20 x i1], [20 x i1]* @GlobLd1, i64 0, i64 0), align 1 - store i1 %0, i1* getelementptr inbounds ([20 x i1], [20 x i1]* @GlobSt1, i64 0, i64 0), align 1 + %0 = load i1, ptr @GlobLd1, align 1 + store i1 %0, ptr @GlobSt1, align 1 ret void } %1 = type { i64 } @Glob1 = external dso_local global %1, align 8 @Glob2 = external dso_local unnamed_addr constant [11 x i8], align 1 -declare i32 @Decl(%1*, i8*) local_unnamed_addr #0 +declare i32 @Decl(ptr, ptr) local_unnamed_addr #0 define dso_local i1 @i32_ExtLoad_i1() local_unnamed_addr #0 { ; CHECK-LE-LABEL: i32_ExtLoad_i1: @@ -113,9 +113,9 @@ ; CHECK-BE-NEXT: mtlr r0 ; CHECK-BE-NEXT: blr bb: - %i = call signext i32 @Decl(%1* nonnull dereferenceable(32) @Glob1, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @Glob2, i64 0, i64 0)) #1 + %i = call signext i32 @Decl(ptr nonnull dereferenceable(32) @Glob1, ptr @Glob2) #1 %i1 = icmp eq i32 %i, 0 - %i2 = load i1, i1* getelementptr inbounds ([20 x i1], [20 x i1]* @GlobLd1, i64 0, i64 0), align 1 + %i2 = load i1, ptr @GlobLd1, align 1 %i3 = select i1 %i1, i1 false, i1 %i2 ret i1 %i3 } Index: llvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll +++ llvm/test/CodeGen/PowerPC/pcrel-call-linkage-leaf.ll @@ -56,7 +56,7 @@ entry: %add = add nsw i32 %b, %a tail call void asm sideeffect "li 2, 0", "~{r2}"() - %0 = load i32, i32* @global_int, align 4 + %0 = load i32, ptr @global_int, align 4 %add1 = add nsw i32 %add, %0 ret i32 %add1 } @@ -162,7 +162,7 @@ ; CHECK-LARGE: add r2, r2, r12 ; CHECK-ALL: # %bb.0: # %entry entry: - %0 = load i32, i32* @global_int, align 4 + %0 = load i32, ptr @global_int, align 4 ret i32 %0 } Index: llvm/test/CodeGen/PowerPC/pcrel-call-linkage-simple.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-call-linkage-simple.ll +++ llvm/test/CodeGen/PowerPC/pcrel-call-linkage-simple.ll @@ -20,7 +20,7 @@ ; CHECK-O-NEXT: R_PPC64_REL24_NOTOC callee define dso_local signext i32 @caller() local_unnamed_addr { entry: - %call = tail call signext i32 bitcast (i32 (...)* @callee to i32 ()*)() + %call = tail call signext i32 @callee() ret i32 %call } @@ -34,13 +34,13 @@ ; CHECK-O-LABEL: ExternalSymbol ; CHECK-O: b ; CHECK-O-NEXT: R_PPC64_REL24_NOTOC memcpy -define dso_local void @ExternalSymbol(i8* nocapture %out, i8* nocapture readonly %in, i64 %num) local_unnamed_addr { +define dso_local void @ExternalSymbol(ptr nocapture %out, ptr nocapture readonly %in, i64 %num) local_unnamed_addr { entry: - tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %out, i8* align 1 %in, i64 %num, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %out, ptr align 1 %in, i64 %num, i1 false) ret void } -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) ; CHECK-S-LABEL: callerNoTail @@ -60,8 +60,8 @@ ; CHECK-O: blr define dso_local signext i32 @callerNoTail() local_unnamed_addr { entry: - %call1 = tail call signext i32 bitcast (i32 (...)* @callee to i32 ()*)() - %call2 = tail call signext i32 bitcast (i32 (...)* @callee to i32 ()*)() + %call1 = tail call signext i32 @callee() + %call2 = tail call signext i32 @callee() %add = add i32 %call1, %call2 ret i32 %add } Index: llvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll +++ llvm/test/CodeGen/PowerPC/pcrel-call-linkage-with-calls.ll @@ -10,7 +10,7 @@ @globalVar = common dso_local local_unnamed_addr global i32 0, align 4 @externGlobalVar = external local_unnamed_addr global i32, align 4 -@indirectCall = common dso_local local_unnamed_addr global i32 (i32)* null, align 8 +@indirectCall = common dso_local local_unnamed_addr global ptr null, align 8 ; This funcion needs to remain as noinline. ; The compiler needs to know this function is local but must be forced to call @@ -49,7 +49,7 @@ entry: %add = add nsw i32 %b, %a %call = tail call signext i32 @localCall(i32 signext %add) - %0 = load i32, i32* @globalVar, align 4 + %0 = load i32, ptr @globalVar, align 4 %mul = mul nsw i32 %0, %call ret i32 %mul } @@ -79,7 +79,7 @@ entry: %add = add nsw i32 %b, %a %call = tail call signext i32 @localCall(i32 signext %add) - %0 = load i32, i32* @externGlobalVar, align 4 + %0 = load i32, ptr @externGlobalVar, align 4 %mul = mul nsw i32 %0, %call ret i32 %mul } @@ -132,7 +132,7 @@ entry: %add = add nsw i32 %b, %a %call = tail call signext i32 @externCall(i32 signext %add) - %0 = load i32, i32* @globalVar, align 4 + %0 = load i32, ptr @globalVar, align 4 %mul = mul nsw i32 %0, %call ret i32 %mul } @@ -164,7 +164,7 @@ entry: %add = add nsw i32 %b, %a %call = tail call signext i32 @externCall(i32 signext %add) - %0 = load i32, i32* @externGlobalVar, align 4 + %0 = load i32, ptr @externGlobalVar, align 4 %mul = mul nsw i32 %0, %call ret i32 %mul } @@ -205,7 +205,7 @@ ; CHECK-S-NEXT: extsw r3, r3 ; CHECK-S-NEXT: b localCall@notoc entry: - %0 = load i32, i32* @globalVar, align 4 + %0 = load i32, ptr @globalVar, align 4 %add = add nsw i32 %0, %a %call = tail call signext i32 @localCall(i32 signext %add) ret i32 %call @@ -223,7 +223,7 @@ ; CHECK-S-NEXT: extsw r3, r3 ; CHECK-S-NEXT: b localCall@notoc entry: - %0 = load i32, i32* @externGlobalVar, align 4 + %0 = load i32, ptr @externGlobalVar, align 4 %add = add nsw i32 %0, %a %call = tail call signext i32 @localCall(i32 signext %add) ret i32 %call @@ -249,7 +249,7 @@ ; CHECK-S-NEXT: extsw r3, r3 ; CHECK-S-NEXT: b externCall@notoc entry: - %0 = load i32, i32* @globalVar, align 4 + %0 = load i32, ptr @globalVar, align 4 %add = add nsw i32 %0, %a %call = tail call signext i32 @externCall(i32 signext %add) ret i32 %call @@ -267,7 +267,7 @@ ; CHECK-S-NEXT: extsw r3, r3 ; CHECK-S-NEXT: b externCall@notoc entry: - %0 = load i32, i32* @externGlobalVar, align 4 + %0 = load i32, ptr @externGlobalVar, align 4 %add = add nsw i32 %0, %a %call = tail call signext i32 @externCall(i32 signext %add) ret i32 %call @@ -306,9 +306,9 @@ ; CHECK-S-NEXT: blr entry: %add = add nsw i32 %b, %a - %0 = load i32 (i32)*, i32 (i32)** @indirectCall, align 8 + %0 = load ptr, ptr @indirectCall, align 8 %call = tail call signext i32 %0(i32 signext %add) - %1 = load i32, i32* @globalVar, align 4 + %1 = load i32, ptr @globalVar, align 4 %mul = mul nsw i32 %1, %call ret i32 %mul } @@ -338,14 +338,14 @@ ; CHECK-S-NEXT: blr entry: %add = add nsw i32 %b, %a - %0 = load i32 (i32)*, i32 (i32)** @indirectCall, align 8 + %0 = load ptr, ptr @indirectCall, align 8 %call = tail call signext i32 %0(i32 signext %add) - %1 = load i32, i32* @externGlobalVar, align 4 + %1 = load i32, ptr @externGlobalVar, align 4 %mul = mul nsw i32 %1, %call ret i32 %mul } -define dso_local signext i32 @IndirectCall3(i32 signext %a, i32 signext %b, i32 (i32)* nocapture %call_param) local_unnamed_addr { +define dso_local signext i32 @IndirectCall3(i32 signext %a, i32 signext %b, ptr nocapture %call_param) local_unnamed_addr { ; CHECK-ALL-LABEL: IndirectCall3: ; CHECK-S: # %bb.0: # %entry ; CHECK-S-NEXT: mflr r0 @@ -368,12 +368,12 @@ entry: %add = add nsw i32 %b, %a %call = tail call signext i32 %call_param(i32 signext %add) - %0 = load i32, i32* @globalVar, align 4 + %0 = load i32, ptr @globalVar, align 4 %mul = mul nsw i32 %0, %call ret i32 %mul } -define dso_local signext i32 @IndirectCallNoGlobal(i32 signext %a, i32 signext %b, i32 (i32)* nocapture %call_param) local_unnamed_addr { +define dso_local signext i32 @IndirectCallNoGlobal(i32 signext %a, i32 signext %b, ptr nocapture %call_param) local_unnamed_addr { ; CHECK-ALL-LABEL: IndirectCallNoGlobal: ; CHECK-S: # %bb.0: # %entry ; CHECK-S-NEXT: mflr r0 @@ -400,7 +400,7 @@ ret i32 %add } -define dso_local signext i32 @IndirectCallOnly(i32 signext %a, i32 (i32)* nocapture %call_param) local_unnamed_addr { +define dso_local signext i32 @IndirectCallOnly(i32 signext %a, ptr nocapture %call_param) local_unnamed_addr { ; CHECK-ALL-LABEL: IndirectCallOnly: ; CHECK-S: # %bb.0: # %entry ; CHECK-S-NEXT: mtctr r4 Index: llvm/test/CodeGen/PowerPC/pcrel-got-indirect.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-got-indirect.ll +++ llvm/test/CodeGen/PowerPC/pcrel-got-indirect.ll @@ -14,10 +14,10 @@ @valInt = external global i32, align 4 @valUnsigned = external local_unnamed_addr global i32, align 4 @valLong = external local_unnamed_addr global i64, align 8 -@ptr = external local_unnamed_addr global i32*, align 8 +@ptr = external local_unnamed_addr global ptr, align 8 @array = external local_unnamed_addr global [10 x i32], align 4 @structure = external local_unnamed_addr global %struct.Struct, align 4 -@ptrfunc = external local_unnamed_addr global void (...)*, align 8 +@ptrfunc = external local_unnamed_addr global ptr, align 8 define dso_local signext i32 @ReadGlobalVarChar() local_unnamed_addr { ; LE-LABEL: ReadGlobalVarChar: @@ -36,7 +36,7 @@ ; BE-NEXT: lbz r3, 0(r3) ; BE-NEXT: blr entry: - %0 = load i8, i8* @valChar, align 1 + %0 = load i8, ptr @valChar, align 1 %conv = zext i8 %0 to i32 ret i32 %conv } @@ -56,7 +56,7 @@ ; BE-NEXT: stb r4, 0(r3) ; BE-NEXT: blr entry: - store i8 3, i8* @valChar, align 1 + store i8 3, ptr @valChar, align 1 ret void } @@ -77,7 +77,7 @@ ; BE-NEXT: lha r3, 0(r3) ; BE-NEXT: blr entry: - %0 = load i16, i16* @valShort, align 2 + %0 = load i16, ptr @valShort, align 2 %conv = sext i16 %0 to i32 ret i32 %conv } @@ -97,7 +97,7 @@ ; BE-NEXT: sth r4, 0(r3) ; BE-NEXT: blr entry: - store i16 3, i16* @valShort, align 2 + store i16 3, ptr @valShort, align 2 ret void } @@ -118,7 +118,7 @@ ; BE-NEXT: lwa r3, 0(r3) ; BE-NEXT: blr entry: - %0 = load i32, i32* @valInt, align 4 + %0 = load i32, ptr @valInt, align 4 ret i32 %0 } @@ -137,7 +137,7 @@ ; BE-NEXT: stw r4, 0(r3) ; BE-NEXT: blr entry: - store i32 33, i32* @valInt, align 4 + store i32 33, ptr @valInt, align 4 ret void } @@ -158,7 +158,7 @@ ; BE-NEXT: lwa r3, 0(r3) ; BE-NEXT: blr entry: - %0 = load i32, i32* @valUnsigned, align 4 + %0 = load i32, ptr @valUnsigned, align 4 ret i32 %0 } @@ -177,7 +177,7 @@ ; BE-NEXT: stw r4, 0(r3) ; BE-NEXT: blr entry: - store i32 33, i32* @valUnsigned, align 4 + store i32 33, ptr @valUnsigned, align 4 ret void } @@ -198,7 +198,7 @@ ; BE-NEXT: lwa r3, 4(r3) ; BE-NEXT: blr entry: - %0 = load i64, i64* @valLong, align 8 + %0 = load i64, ptr @valLong, align 8 %conv = trunc i64 %0 to i32 ret i32 %conv } @@ -218,11 +218,11 @@ ; BE-NEXT: std r4, 0(r3) ; BE-NEXT: blr entry: - store i64 3333, i64* @valLong, align 8 + store i64 3333, ptr @valLong, align 8 ret void } -define dso_local i32* @ReadGlobalPtr() local_unnamed_addr { +define dso_local ptr @ReadGlobalPtr() local_unnamed_addr { ; LE-LABEL: ReadGlobalPtr: ; LE: # %bb.0: # %entry ; LE-NEXT: pld r3, ptr@got@pcrel(0), 1 @@ -239,8 +239,8 @@ ; BE-NEXT: ld r3, 0(r3) ; BE-NEXT: blr entry: - %0 = load i32*, i32** @ptr, align 8 - ret i32* %0 + %0 = load ptr, ptr @ptr, align 8 + ret ptr %0 } define dso_local void @WriteGlobalPtr() local_unnamed_addr { @@ -264,12 +264,12 @@ ; BE-NEXT: stw r4, 0(r3) ; BE-NEXT: blr entry: - %0 = load i32*, i32** @ptr, align 8 - store i32 3, i32* %0, align 4 + %0 = load ptr, ptr @ptr, align 8 + store i32 3, ptr %0, align 4 ret void } -define dso_local nonnull i32* @GlobalVarAddr() local_unnamed_addr { +define dso_local nonnull ptr @GlobalVarAddr() local_unnamed_addr { ; LE-LABEL: GlobalVarAddr: ; LE: # %bb.0: # %entry ; LE-NEXT: pld r3, valInt@got@pcrel(0), 1 @@ -280,7 +280,7 @@ ; BE-NEXT: pld r3, valInt@got@pcrel(0), 1 ; BE-NEXT: blr entry: - ret i32* @valInt + ret ptr @valInt } define dso_local signext i32 @ReadGlobalArray() local_unnamed_addr { @@ -300,7 +300,7 @@ ; BE-NEXT: lwa r3, 12(r3) ; BE-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @array, i64 0, i64 3), align 4 + %0 = load i32, ptr getelementptr inbounds ([10 x i32], ptr @array, i64 0, i64 3), align 4 ret i32 %0 } @@ -319,7 +319,7 @@ ; BE-NEXT: stw r4, 12(r3) ; BE-NEXT: blr entry: - store i32 5, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @array, i64 0, i64 3), align 4 + store i32 5, ptr getelementptr inbounds ([10 x i32], ptr @array, i64 0, i64 3), align 4 ret void } @@ -340,7 +340,7 @@ ; BE-NEXT: lwa r3, 4(r3) ; BE-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds (%struct.Struct, %struct.Struct* @structure, i64 0, i32 2), align 4 + %0 = load i32, ptr getelementptr inbounds (%struct.Struct, ptr @structure, i64 0, i32 2), align 4 ret i32 %0 } @@ -359,7 +359,7 @@ ; BE-NEXT: stw r4, 4(r3) ; BE-NEXT: blr entry: - store i32 3, i32* getelementptr inbounds (%struct.Struct, %struct.Struct* @structure, i64 0, i32 2), align 4 + store i32 3, ptr getelementptr inbounds (%struct.Struct, ptr @structure, i64 0, i32 2), align 4 ret void } @@ -386,7 +386,7 @@ ; BE-NEXT: bctr ; BE-NEXT: #TC_RETURNr8 ctr 0 entry: - %0 = load void ()*, void ()** bitcast (void (...)** @ptrfunc to void ()**), align 8 + %0 = load ptr, ptr @ptrfunc, align 8 tail call void %0() ret void } @@ -406,7 +406,7 @@ ; BE-NEXT: std r4, 0(r3) ; BE-NEXT: blr entry: - store void (...)* @function, void (...)** @ptrfunc, align 8 + store ptr @function, ptr @ptrfunc, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/pcrel-indirect-call.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-indirect-call.ll +++ llvm/test/CodeGen/PowerPC/pcrel-indirect-call.ll @@ -9,7 +9,7 @@ ; is passed as a parameter in this test. ; Function Attrs: noinline -define dso_local void @IndirectCallExternFuncPtr(void ()* nocapture %ptrfunc) { +define dso_local void @IndirectCallExternFuncPtr(ptr nocapture %ptrfunc) { ; CHECK-LABEL: IndirectCallExternFuncPtr: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtctr r3 @@ -23,7 +23,7 @@ define dso_local void @FuncPtrPassAsParam() { entry: - tail call void @IndirectCallExternFuncPtr(void ()* nonnull @Function) + tail call void @IndirectCallExternFuncPtr(ptr nonnull @Function) ret void } Index: llvm/test/CodeGen/PowerPC/pcrel-linkeropt-option.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-linkeropt-option.ll +++ llvm/test/CodeGen/PowerPC/pcrel-linkeropt-option.ll @@ -34,6 +34,6 @@ ; OFF-NEXT: lbz r3, 0(r3) ; OFF-NEXT: blr entry: - %0 = load i8, i8* @input8, align 1 + %0 = load i8, ptr @input8, align 1 ret i8 %0 } Index: llvm/test/CodeGen/PowerPC/pcrel-linkeropt.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-linkeropt.ll +++ llvm/test/CodeGen/PowerPC/pcrel-linkeropt.ll @@ -29,10 +29,10 @@ @outputVi64 = external local_unnamed_addr global <2 x i64>, align 16 @ArrayIn = external global [10 x i32], align 4 @ArrayOut = external local_unnamed_addr global [10 x i32], align 4 -@IntPtrIn = external local_unnamed_addr global i32*, align 8 -@IntPtrOut = external local_unnamed_addr global i32*, align 8 -@FuncPtrIn = external local_unnamed_addr global void (...)*, align 8 -@FuncPtrOut = external local_unnamed_addr global void (...)*, align 8 +@IntPtrIn = external local_unnamed_addr global ptr, align 8 +@IntPtrOut = external local_unnamed_addr global ptr, align 8 +@FuncPtrIn = external local_unnamed_addr global ptr, align 8 +@FuncPtrOut = external local_unnamed_addr global ptr, align 8 define dso_local void @ReadWrite8() local_unnamed_addr #0 { ; In this test the stb r3, 0(r4) cannot be optimized because it @@ -48,8 +48,8 @@ ; CHECK-NEXT: stb r3, 0(r4) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* @input8, align 1 - store i8 %0, i8* @output8, align 1 + %0 = load i8, ptr @input8, align 1 + store i8 %0, ptr @output8, align 1 ret void } @@ -67,8 +67,8 @@ ; CHECK-NEXT: sth r3, 0(r4) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* @input16, align 2 - store i16 %0, i16* @output16, align 2 + %0 = load i16, ptr @input16, align 2 + store i16 %0, ptr @output16, align 2 ret void } @@ -83,8 +83,8 @@ ; CHECK-NEXT: stw r3, 0(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* @input32, align 4 - store i32 %0, i32* @output32, align 4 + %0 = load i32, ptr @input32, align 4 + store i32 %0, ptr @output32, align 4 ret void } @@ -99,8 +99,8 @@ ; CHECK-NEXT: std r3, 0(r4) ; CHECK-NEXT: blr entry: - %0 = load i64, i64* @input64, align 8 - store i64 %0, i64* @output64, align 8 + %0 = load i64, ptr @input64, align 8 + store i64 %0, ptr @output64, align 8 ret void } @@ -119,8 +119,8 @@ ; CHECK-NEXT: stxv vs0, 0(r3) ; CHECK-NEXT: blr entry: - %0 = load i128, i128* @input128, align 16 - store i128 %0, i128* @output128, align 16 + %0 = load i128, ptr @input128, align 16 + store i128 %0, ptr @output128, align 16 ret void } @@ -137,9 +137,9 @@ ; CHECK-NEXT: stfs f0, 0(r3) ; CHECK-NEXT: blr entry: - %0 = load float, float* @inputf32, align 4 + %0 = load float, ptr @inputf32, align 4 %add = fadd float %0, 0x400851EB80000000 - store float %add, float* @outputf32, align 4 + store float %add, ptr @outputf32, align 4 ret void } @@ -157,9 +157,9 @@ ; CHECK-NEXT: stfd f0, 0(r3) ; CHECK-NEXT: blr entry: - %0 = load double, double* @inputf64, align 8 + %0 = load double, ptr @inputf64, align 8 %add = fadd double %0, 6.800000e+00 - store double %add, double* @outputf64, align 8 + store double %add, ptr @outputf64, align 8 ret void } @@ -178,9 +178,9 @@ ; CHECK-NEXT: stxv v2, 0(r3) ; CHECK-NEXT: blr entry: - %0 = load <4 x i32>, <4 x i32>* @inputVi32, align 16 + %0 = load <4 x i32>, ptr @inputVi32, align 16 %vecins = insertelement <4 x i32> %0, i32 45, i32 1 - store <4 x i32> %vecins, <4 x i32>* @outputVi32, align 16 + store <4 x i32> %vecins, ptr @outputVi32, align 16 ret void } @@ -197,8 +197,8 @@ ; CHECK-NEXT: stxv vs0, 0(r3) ; CHECK-NEXT: blr entry: - %0 = load <2 x i64>, <2 x i64>* @inputVi64, align 16 - store <2 x i64> %0, <2 x i64>* @outputVi64, align 16 + %0 = load <2 x i64>, ptr @inputVi64, align 16 + store <2 x i64> %0, ptr @outputVi64, align 16 ret void } @@ -214,9 +214,9 @@ ; CHECK-NEXT: stw r3, 8(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @ArrayIn, i64 0, i64 7), align 4 + %0 = load i32, ptr getelementptr inbounds ([10 x i32], ptr @ArrayIn, i64 0, i64 7), align 4 %add = add nsw i32 %0, 42 - store i32 %add, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @ArrayOut, i64 0, i64 2), align 4 + store i32 %add, ptr getelementptr inbounds ([10 x i32], ptr @ArrayOut, i64 0, i64 2), align 4 ret void } @@ -229,9 +229,9 @@ ; CHECK-NEXT: stw r4, 24(r3) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @ArrayIn, i64 0, i64 3), align 4 + %0 = load i32, ptr getelementptr inbounds ([10 x i32], ptr @ArrayIn, i64 0, i64 3), align 4 %add = add nsw i32 %0, 8 - store i32 %add, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @ArrayIn, i64 0, i64 6), align 4 + store i32 %add, ptr getelementptr inbounds ([10 x i32], ptr @ArrayIn, i64 0, i64 6), align 4 ret void } @@ -252,15 +252,15 @@ ; CHECK-NEXT: stw r3, 136(r4) ; CHECK-NEXT: blr entry: - %0 = load i32*, i32** @IntPtrIn, align 8 - %arrayidx = getelementptr inbounds i32, i32* %0, i64 54 - %1 = load i32, i32* %arrayidx, align 4 - %arrayidx1 = getelementptr inbounds i32, i32* %0, i64 12 - %2 = load i32, i32* %arrayidx1, align 4 + %0 = load ptr, ptr @IntPtrIn, align 8 + %arrayidx = getelementptr inbounds i32, ptr %0, i64 54 + %1 = load i32, ptr %arrayidx, align 4 + %arrayidx1 = getelementptr inbounds i32, ptr %0, i64 12 + %2 = load i32, ptr %arrayidx1, align 4 %add = add nsw i32 %2, %1 - %3 = load i32*, i32** @IntPtrOut, align 8 - %arrayidx2 = getelementptr inbounds i32, i32* %3, i64 34 - store i32 %add, i32* %arrayidx2, align 4 + %3 = load ptr, ptr @IntPtrOut, align 8 + %arrayidx2 = getelementptr inbounds i32, ptr %3, i64 34 + store i32 %add, ptr %arrayidx2, align 4 ret void } @@ -275,8 +275,8 @@ ; CHECK-NEXT: std r3, 0(r4) ; CHECK-NEXT: blr entry: - %0 = load i64, i64* bitcast (void (...)** @FuncPtrIn to i64*), align 8 - store i64 %0, i64* bitcast (void (...)** @FuncPtrOut to i64*), align 8 + %0 = load i64, ptr @FuncPtrIn, align 8 + store i64 %0, ptr @FuncPtrOut, align 8 ret void } @@ -288,7 +288,7 @@ ; CHECK-NEXT: std r4, 0(r3) ; CHECK-NEXT: blr entry: - store void (...)* @Callee, void (...)** @FuncPtrOut, align 8 + store ptr @Callee, ptr @FuncPtrOut, align 8 ret void } @@ -305,7 +305,7 @@ ; CHECK-NEXT: bctr ; CHECK-NEXT: #TC_RETURNr8 ctr 0 entry: - %0 = load void ()*, void ()** bitcast (void (...)** @FuncPtrIn to void ()**), align 8 + %0 = load ptr, ptr @FuncPtrIn, align 8 tail call void %0() ret void } @@ -319,7 +319,7 @@ ; CHECK-NEXT: lwa r3, 4(r3) ; CHECK-NEXT: blr entry: - %0 = load <4 x i32>, <4 x i32>* @inputVi32, align 16 + %0 = load <4 x i32>, ptr @inputVi32, align 16 %vecext = extractelement <4 x i32> %0, i32 1 ret i32 %vecext } @@ -348,14 +348,14 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %0 = load <4 x i32>, <4 x i32>* @inputVi32, align 16 - tail call void bitcast (void (...)* @Callee to void ()*)() - %1 = load <4 x i32>, <4 x i32>* @inputVi32, align 16 + %0 = load <4 x i32>, ptr @inputVi32, align 16 + tail call void @Callee() + %1 = load <4 x i32>, ptr @inputVi32, align 16 %2 = extractelement <4 x i32> %1, i32 2 %3 = extractelement <4 x i32> %0, i64 1 %4 = add nsw i32 %2, %3 - tail call void bitcast (void (...)* @Callee to void ()*)() - %5 = load <4 x i32>, <4 x i32>* @inputVi32, align 16 + tail call void @Callee() + %5 = load <4 x i32>, ptr @inputVi32, align 16 %vecext2 = extractelement <4 x i32> %5, i32 0 %add3 = add nsw i32 %4, %vecext2 ret i32 %add3 @@ -381,22 +381,22 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @ArrayIn, i64 0, i64 4), align 4 + %0 = load i32, ptr getelementptr inbounds ([10 x i32], ptr @ArrayIn, i64 0, i64 4), align 4 %add = add nsw i32 %0, %a - %call = tail call signext i32 @getAddr(i32* getelementptr inbounds ([10 x i32], [10 x i32]* @ArrayIn, i64 0, i64 0)) + %call = tail call signext i32 @getAddr(ptr @ArrayIn) %add1 = add nsw i32 %add, %call ret i32 %add1 } -declare signext i32 @getAddr(i32*) local_unnamed_addr +declare signext i32 @getAddr(ptr) local_unnamed_addr -define dso_local nonnull i32* @AddrTaken32() local_unnamed_addr #0 { +define dso_local nonnull ptr @AddrTaken32() local_unnamed_addr #0 { ; CHECK-LABEL: AddrTaken32: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pld r3, input32@got@pcrel(0), 1 ; CHECK-NEXT: blr entry: - ret i32* @input32 + ret ptr @input32 } attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/pcrel-local-caller-toc.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-local-caller-toc.ll +++ llvm/test/CodeGen/PowerPC/pcrel-local-caller-toc.ll @@ -57,11 +57,11 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %0 = load i32, i32* @global, align 4 + %0 = load i32, ptr @global, align 4 %add = add nsw i32 %0, %a %call = tail call signext i32 @callee(i32 signext %add) %mul = mul nsw i32 %call, %call - store i32 %mul, i32* @global, align 4 + store i32 %mul, ptr @global, align 4 ret void } @@ -83,7 +83,7 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %0 = load i32, i32* @global, align 4 + %0 = load i32, ptr @global, align 4 %add = add nsw i32 %0, %a %call = tail call signext i32 @callee(i32 signext %add) ret i32 %call Index: llvm/test/CodeGen/PowerPC/pcrel-relocation-plus-offset.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-relocation-plus-offset.ll +++ llvm/test/CodeGen/PowerPC/pcrel-relocation-plus-offset.ll @@ -28,7 +28,7 @@ ; CHECK-O-NEXT: R_PPC64_PCREL34 array2+0x1c ; CHECK-O-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @array2, i64 0, i64 7), align 4 + %0 = load i32, ptr getelementptr inbounds ([10 x i32], ptr @array2, i64 0, i64 7), align 4 ret i32 %0 } @@ -42,7 +42,7 @@ ; CHECK-O-NEXT: R_PPC64_PCREL34 array2-0x8 ; CHECK-O-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @array2, i64 0, i64 -2), align 4 + %0 = load i32, ptr getelementptr inbounds ([10 x i32], ptr @array2, i64 0, i64 -2), align 4 ret i32 %0 } @@ -61,7 +61,7 @@ ; CHECK-O: lwa 3, 16(3) ; CHECK-O-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @array1, i64 0, i64 4), align 4 + %0 = load i32, ptr getelementptr inbounds ([10 x i32], ptr @array1, i64 0, i64 4), align 4 ret i32 %0 } @@ -80,7 +80,7 @@ ; CHECK-O: lwa 3, -4(3) ; CHECK-O-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @array1, i64 0, i64 -1), align 4 + %0 = load i32, ptr getelementptr inbounds ([10 x i32], ptr @array1, i64 0, i64 -1), align 4 ret i32 %0 } Index: llvm/test/CodeGen/PowerPC/pcrel-tail-calls.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-tail-calls.ll +++ llvm/test/CodeGen/PowerPC/pcrel-tail-calls.ll @@ -12,8 +12,8 @@ ; the past as we no longer need to restore the TOC pointer into R2 after ; most calls. -@Func = external local_unnamed_addr global i32 (...)*, align 8 -@FuncLocal = common dso_local local_unnamed_addr global i32 (...)* null, align 8 +@Func = external local_unnamed_addr global ptr, align 8 +@FuncLocal = common dso_local local_unnamed_addr global ptr null, align 8 ; No calls in this function but we assign the function pointers. define dso_local void @AssignFuncPtr() local_unnamed_addr { @@ -25,8 +25,8 @@ ; CHECK-NEXT: pstd r4, FuncLocal@PCREL(0), 1 ; CHECK-NEXT: blr entry: - store i32 (...)* @Function, i32 (...)** @Func, align 8 - store i32 (...)* @Function, i32 (...)** @FuncLocal, align 8 + store ptr @Function, ptr @Func, align 8 + store ptr @Function, ptr @FuncLocal, align 8 ret void } @@ -40,7 +40,7 @@ ; CHECK-NEXT: bctr ; CHECK-NEXT: #TC_RETURNr8 ctr 0 entry: - %0 = load i32 ()*, i32 ()** bitcast (i32 (...)** @FuncLocal to i32 ()**), align 8 + %0 = load ptr, ptr @FuncLocal, align 8 %call = tail call signext i32 %0() ret void } @@ -56,12 +56,12 @@ ; CHECK-NEXT: bctr ; CHECK-NEXT: #TC_RETURNr8 ctr 0 entry: - %0 = load i32 ()*, i32 ()** bitcast (i32 (...)** @Func to i32 ()**), align 8 + %0 = load ptr, ptr @Func, align 8 %call = tail call signext i32 %0() ret void } -define dso_local signext i32 @TailCallParamFuncPtr(i32 (...)* nocapture %passedfunc) local_unnamed_addr { +define dso_local signext i32 @TailCallParamFuncPtr(ptr nocapture %passedfunc) local_unnamed_addr { ; CHECK-LABEL: TailCallParamFuncPtr: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtctr r3 @@ -69,12 +69,11 @@ ; CHECK-NEXT: bctr ; CHECK-NEXT: #TC_RETURNr8 ctr 0 entry: - %callee.knr.cast = bitcast i32 (...)* %passedfunc to i32 ()* - %call = tail call signext i32 %callee.knr.cast() + %call = tail call signext i32 %passedfunc() ret i32 %call } -define dso_local signext i32 @NoTailIndirectCall(i32 (...)* nocapture %passedfunc, i32 signext %a) local_unnamed_addr { +define dso_local signext i32 @NoTailIndirectCall(ptr nocapture %passedfunc, i32 signext %a) local_unnamed_addr { ; CHECK-LABEL: NoTailIndirectCall: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mflr r0 @@ -96,8 +95,7 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %callee.knr.cast = bitcast i32 (...)* %passedfunc to i32 ()* - %call = tail call signext i32 %callee.knr.cast() + %call = tail call signext i32 %passedfunc() %add = add nsw i32 %call, %a ret i32 %add } @@ -108,7 +106,7 @@ ; CHECK-NEXT: b Function@notoc ; CHECK-NEXT: #TC_RETURNd8 Function@notoc 0 entry: - %call = tail call signext i32 bitcast (i32 (...)* @Function to i32 ()*)() + %call = tail call signext i32 @Function() ret i32 %call } @@ -132,7 +130,7 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %call = tail call signext i32 bitcast (i32 (...)* @Function to i32 ()*)() + %call = tail call signext i32 @Function() %add = add nsw i32 %call, %a ret i32 %add } @@ -181,7 +179,7 @@ ; CHECK-NEXT: bctr ; CHECK-NEXT: #TC_RETURNr8 ctr 0 entry: - %call = tail call signext i32 inttoptr (i64 400 to i32 ()*)() + %call = tail call signext i32 inttoptr (i64 400 to ptr)() ret i32 %call } @@ -208,7 +206,7 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %call = tail call signext i32 inttoptr (i64 400 to i32 ()*)() + %call = tail call signext i32 inttoptr (i64 400 to ptr)() %add = add nsw i32 %call, %a ret i32 %add } Index: llvm/test/CodeGen/PowerPC/pcrel-tls-general-dynamic.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-tls-general-dynamic.ll +++ llvm/test/CodeGen/PowerPC/pcrel-tls-general-dynamic.ll @@ -10,7 +10,7 @@ @x = external thread_local global i32, align 4 -define nonnull i32* @GeneralDynamicAddressLoad() { +define nonnull ptr @GeneralDynamicAddressLoad() { ; CHECK-S-LABEL: GeneralDynamicAddressLoad: ; CHECK-S: paddi r3, 0, x@got@tlsgd@pcrel, 1 ; CHECK-S-NEXT: bl __tls_get_addr@notoc(x@tlsgd) @@ -25,7 +25,7 @@ ; CHECK-O-NEXT: 0000000000000014: R_PPC64_TLSGD x ; CHECK-O-NEXT: 0000000000000014: R_PPC64_REL24_NOTOC __tls_get_addr entry: - ret i32* @x + ret ptr @x } define i32 @GeneralDynamicValueLoad() { @@ -48,6 +48,6 @@ ; CHECK-SYM-LABEL: Symbol table '.symtab' contains 7 entries ; CHECK-SYM: 0000000000000000 0 TLS GLOBAL DEFAULT UND x entry: - %0 = load i32, i32* @x, align 4 + %0 = load i32, ptr @x, align 4 ret i32 %0 } Index: llvm/test/CodeGen/PowerPC/pcrel-tls-initial-exec.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-tls-initial-exec.ll +++ llvm/test/CodeGen/PowerPC/pcrel-tls-initial-exec.ll @@ -13,7 +13,7 @@ @x = external thread_local global i32, align 4 -define i32* @InitialExecAddressLoad() { +define ptr @InitialExecAddressLoad() { ; CHECK-S-LABEL: InitialExecAddressLoad: ; CHECK-S: # %bb.0: # %entry ; CHECK-S-NEXT: pld r3, x@got@tprel@pcrel(0), 1 @@ -26,7 +26,7 @@ ; CHECK-O-NEXT: 0000000000000009: R_PPC64_TLS x ; CHECK-O-NEXT: 20 00 80 4e blr entry: - ret i32* @x + ret ptr @x } define i32 @InitialExecValueLoad() { @@ -45,6 +45,6 @@ ; CHECK-SYM-LABEL: Symbol table '.symtab' contains 6 entries ; CHECK-SYM: 0000000000000000 0 TLS GLOBAL DEFAULT UND x entry: - %0 = load i32, i32* @x, align 4 + %0 = load i32, ptr @x, align 4 ret i32 %0 } Index: llvm/test/CodeGen/PowerPC/pcrel-tls-local-dynamic.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-tls-local-dynamic.ll +++ llvm/test/CodeGen/PowerPC/pcrel-tls-local-dynamic.ll @@ -9,7 +9,7 @@ @x = hidden thread_local global i32 0, align 4 -define nonnull i32* @LocalDynamicAddressLoad() { +define nonnull ptr @LocalDynamicAddressLoad() { ; CHECK-S-LABEL: LocalDynamicAddressLoad: ; CHECK-S: paddi r3, 0, x@got@tlsld@pcrel, 1 ; CHECK-S-NEXT: bl __tls_get_addr@notoc(x@tlsld) @@ -27,7 +27,7 @@ ; CHECK-O-NEXT: 18: paddi 3, 3, 0, 0 ; CHECK-O-NEXT: 0000000000000018: R_PPC64_DTPREL34 x entry: - ret i32* @x + ret ptr @x } define i32 @LocalDynamicValueLoad() { @@ -50,6 +50,6 @@ ; CHECK-O-NEXT: 0000000000000058: R_PPC64_DTPREL34 x ; CHECK-O-NEXT: 60: lwz 3, 0(3) entry: - %0 = load i32, i32* @x, align 4 + %0 = load i32, ptr @x, align 4 ret i32 %0 } Index: llvm/test/CodeGen/PowerPC/pcrel-tls-local-exec.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-tls-local-exec.ll +++ llvm/test/CodeGen/PowerPC/pcrel-tls-local-exec.ll @@ -11,7 +11,7 @@ @x = dso_local thread_local global i32 0, align 4 @y = dso_local thread_local global [5 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0], align 4 -define dso_local i32* @LocalExecAddressLoad() { +define dso_local ptr @LocalExecAddressLoad() { ; CHECK-S-LABEL: LocalExecAddressLoad: ; CHECK-S: # %bb.0: # %entry ; CHECK-S-NEXT: paddi r3, r13, x@TPREL, 0 @@ -21,7 +21,7 @@ ; CHECK-O-NEXT: 0000000000000000: R_PPC64_TPREL34 x ; CHECK-O-NEXT: 8: blr entry: - ret i32* @x + ret ptr @x } define dso_local i32 @LocalExecValueLoad() { @@ -36,7 +36,7 @@ ; CHECK-O-NEXT: 28: lwz 3, 0(3) ; CHECK-O-NEXT: 2c: blr entry: - %0 = load i32, i32* @x, align 4 + %0 = load i32, ptr @x, align 4 ret i32 %0 } @@ -52,7 +52,7 @@ ; CHECK-O-NEXT: 48: stw 3, 0(4) ; CHECK-O-NEXT: 4c: blr entry: - store i32 %in, i32* @x, align 4 + store i32 %in, ptr @x, align 4 ret void } @@ -68,12 +68,12 @@ ; CHECK-O-NEXT: 68: lwz 3, 12(3) ; CHECK-O-NEXT: 6c: blr entry: - %0 = load i32, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @y, i64 0, i64 3), align 4 + %0 = load i32, ptr getelementptr inbounds ([5 x i32], ptr @y, i64 0, i64 3), align 4 ret i32 %0 } -define dso_local i32* @LocalExecValueLoadOffsetNoLoad() { +define dso_local ptr @LocalExecValueLoadOffsetNoLoad() { ; CHECK-S-LABEL: LocalExecValueLoadOffsetNoLoad: ; CHECK-S: # %bb.0: # %entry ; CHECK-S-NEXT: paddi r3, r13, y@TPREL, 0 @@ -85,5 +85,5 @@ ; CHECK-O-NEXT: 88: addi 3, 3, 12 ; CHECK-O-NEXT: 8c: blr entry: - ret i32* getelementptr inbounds ([5 x i32], [5 x i32]* @y, i64 0, i64 3) + ret ptr getelementptr inbounds ([5 x i32], ptr @y, i64 0, i64 3) } Index: llvm/test/CodeGen/PowerPC/pcrel-tls_get_addr_clobbers.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel-tls_get_addr_clobbers.ll +++ llvm/test/CodeGen/PowerPC/pcrel-tls_get_addr_clobbers.ll @@ -1,9 +1,9 @@ ; RUN: llc -verify-machineinstrs -mtriple="powerpc64le-unknown-linux-gnu" \ ; RUN: -ppc-asm-full-reg-names -mcpu=pwr10 -relocation-model=pic < %s | FileCheck %s -%0 = type { i32 (...)**, %0* } -@x = external dso_local thread_local unnamed_addr global %0*, align 8 -define void @test(i8* %arg) { +%0 = type { ptr, ptr } +@x = external dso_local thread_local unnamed_addr global ptr, align 8 +define void @test(ptr %arg) { ; CHECK-LABEL: test: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mflr r0 @@ -20,6 +20,6 @@ ; CHECK-NEXT: ld r30, -16(r1) ; CHECK-NEXT: mtlr r0 entry: - store i8* %arg, i8** bitcast (%0** @x to i8**), align 8 + store ptr %arg, ptr @x, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/pcrel.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel.ll +++ llvm/test/CodeGen/PowerPC/pcrel.ll @@ -33,7 +33,7 @@ ; CHECK-O-NEXT: R_PPC64_PCREL34 valIntLoc ; CHECK-O-NEXT: blr entry: - %0 = load i32, i32* @valIntLoc, align 4 + %0 = load i32, ptr @valIntLoc, align 4 ret i32 %0 } @@ -54,6 +54,6 @@ ; CHECK-O-NEXT: lwa 3, 0(3) ; CHECK-O-NEXT: blr entry: - %0 = load i32, i32* @valIntGlob, align 4 + %0 = load i32, ptr @valIntGlob, align 4 ret i32 %0 } Index: llvm/test/CodeGen/PowerPC/pcrel_ldst.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pcrel_ldst.ll +++ llvm/test/CodeGen/PowerPC/pcrel_ldst.ll @@ -68,8 +68,8 @@ ; CHECK-NEXT: stb r3, GlobSt1@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 0), align 1 - store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 0), align 1 + %0 = load i8, ptr @GlobLd1, align 1 + store i8 %0, ptr @GlobSt1, align 1 ret void } @@ -101,8 +101,8 @@ ; CHECK-NEXT: stb r3, 3(r4) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 3), align 1 - store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 3), align 1 + %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd1, i64 0, i64 3), align 1 + store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt1, i64 0, i64 3), align 1 ret void } @@ -130,8 +130,8 @@ ; CHECK-NEXT: stb r3, GlobSt1@toc@l+4(r4) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 4), align 1 - store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 4), align 1 + %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd1, i64 0, i64 4), align 1 + store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt1, i64 0, i64 4), align 1 ret void } @@ -159,8 +159,8 @@ ; CHECK-NEXT: stb r3, GlobSt1@toc@l+16(r4) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 16), align 1 - store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 16), align 1 + %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd1, i64 0, i64 16), align 1 + store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt1, i64 0, i64 16), align 1 ret void } @@ -194,10 +194,10 @@ ; CHECK-NEXT: stbx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 %Idx - %0 = load i8, i8* %arrayidx, align 1 - %arrayidx1 = getelementptr inbounds [20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 %Idx - store i8 %0, i8* %arrayidx1, align 1 + %arrayidx = getelementptr inbounds [20 x i8], ptr @GlobLd1, i64 0, i64 %Idx + %0 = load i8, ptr %arrayidx, align 1 + %arrayidx1 = getelementptr inbounds [20 x i8], ptr @GlobSt1, i64 0, i64 %Idx + store i8 %0, ptr %arrayidx1, align 1 ret void } @@ -225,8 +225,8 @@ ; CHECK-NEXT: stb r3, GlobSt2@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 0), align 1 - store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 0), align 1 + %0 = load i8, ptr @GlobLd2, align 1 + store i8 %0, ptr @GlobSt2, align 1 ret void } @@ -258,8 +258,8 @@ ; CHECK-NEXT: stb r3, 3(r4) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 3), align 1 - store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 3), align 1 + %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd2, i64 0, i64 3), align 1 + store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt2, i64 0, i64 3), align 1 ret void } @@ -287,8 +287,8 @@ ; CHECK-NEXT: stb r3, GlobSt2@toc@l+4(r4) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 4), align 1 - store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 4), align 1 + %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd2, i64 0, i64 4), align 1 + store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt2, i64 0, i64 4), align 1 ret void } @@ -316,8 +316,8 @@ ; CHECK-NEXT: stb r3, GlobSt2@toc@l+16(r4) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 16), align 1 - store i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 16), align 1 + %0 = load i8, ptr getelementptr inbounds ([20 x i8], ptr @GlobLd2, i64 0, i64 16), align 1 + store i8 %0, ptr getelementptr inbounds ([20 x i8], ptr @GlobSt2, i64 0, i64 16), align 1 ret void } @@ -351,10 +351,10 @@ ; CHECK-NEXT: stbx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x i8], [20 x i8]* @GlobLd2, i64 0, i64 %Idx - %0 = load i8, i8* %arrayidx, align 1 - %arrayidx1 = getelementptr inbounds [20 x i8], [20 x i8]* @GlobSt2, i64 0, i64 %Idx - store i8 %0, i8* %arrayidx1, align 1 + %arrayidx = getelementptr inbounds [20 x i8], ptr @GlobLd2, i64 0, i64 %Idx + %0 = load i8, ptr %arrayidx, align 1 + %arrayidx1 = getelementptr inbounds [20 x i8], ptr @GlobSt2, i64 0, i64 %Idx + store i8 %0, ptr %arrayidx1, align 1 ret void } @@ -382,8 +382,8 @@ ; CHECK-NEXT: sth r3, GlobSt3@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 0), align 2 - store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 0), align 2 + %0 = load i16, ptr @GlobLd3, align 2 + store i16 %0, ptr @GlobSt3, align 2 ret void } @@ -415,8 +415,8 @@ ; CHECK-NEXT: sth r3, 3(r4) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i16]* @GlobLd3 to i8*), i64 3) to i16*), align 2 - store i16 %0, i16* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i16]* @GlobSt3 to i8*), i64 3) to i16*), align 2 + %0 = load i16, ptr getelementptr inbounds (i8, ptr @GlobLd3, i64 3), align 2 + store i16 %0, ptr getelementptr inbounds (i8, ptr @GlobSt3, i64 3), align 2 ret void } @@ -444,8 +444,8 @@ ; CHECK-NEXT: sth r3, GlobSt3@toc@l+4(r4) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 2), align 2 - store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 2), align 2 + %0 = load i16, ptr getelementptr inbounds ([20 x i16], ptr @GlobLd3, i64 0, i64 2), align 2 + store i16 %0, ptr getelementptr inbounds ([20 x i16], ptr @GlobSt3, i64 0, i64 2), align 2 ret void } @@ -473,8 +473,8 @@ ; CHECK-NEXT: sth r3, GlobSt3@toc@l+16(r4) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 8), align 2 - store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 8), align 2 + %0 = load i16, ptr getelementptr inbounds ([20 x i16], ptr @GlobLd3, i64 0, i64 8), align 2 + store i16 %0, ptr getelementptr inbounds ([20 x i16], ptr @GlobSt3, i64 0, i64 8), align 2 ret void } @@ -511,10 +511,10 @@ ; CHECK-NEXT: sthx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 %Idx - %0 = load i16, i16* %arrayidx, align 2 - %arrayidx1 = getelementptr inbounds [20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 %Idx - store i16 %0, i16* %arrayidx1, align 2 + %arrayidx = getelementptr inbounds [20 x i16], ptr @GlobLd3, i64 0, i64 %Idx + %0 = load i16, ptr %arrayidx, align 2 + %arrayidx1 = getelementptr inbounds [20 x i16], ptr @GlobSt3, i64 0, i64 %Idx + store i16 %0, ptr %arrayidx1, align 2 ret void } @@ -542,8 +542,8 @@ ; CHECK-NEXT: sth r3, GlobSt4@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd4, i64 0, i64 0), align 2 - store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt4, i64 0, i64 0), align 2 + %0 = load i16, ptr @GlobLd4, align 2 + store i16 %0, ptr @GlobSt4, align 2 ret void } @@ -575,8 +575,8 @@ ; CHECK-NEXT: sth r3, 3(r4) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i16]* @GlobLd4 to i8*), i64 3) to i16*), align 2 - store i16 %0, i16* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i16]* @GlobSt4 to i8*), i64 3) to i16*), align 2 + %0 = load i16, ptr getelementptr inbounds (i8, ptr @GlobLd4, i64 3), align 2 + store i16 %0, ptr getelementptr inbounds (i8, ptr @GlobSt4, i64 3), align 2 ret void } @@ -604,8 +604,8 @@ ; CHECK-NEXT: sth r3, GlobSt4@toc@l+4(r4) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd4, i64 0, i64 2), align 2 - store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt4, i64 0, i64 2), align 2 + %0 = load i16, ptr getelementptr inbounds ([20 x i16], ptr @GlobLd4, i64 0, i64 2), align 2 + store i16 %0, ptr getelementptr inbounds ([20 x i16], ptr @GlobSt4, i64 0, i64 2), align 2 ret void } @@ -633,8 +633,8 @@ ; CHECK-NEXT: sth r3, GlobSt4@toc@l+16(r4) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd4, i64 0, i64 8), align 2 - store i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt4, i64 0, i64 8), align 2 + %0 = load i16, ptr getelementptr inbounds ([20 x i16], ptr @GlobLd4, i64 0, i64 8), align 2 + store i16 %0, ptr getelementptr inbounds ([20 x i16], ptr @GlobSt4, i64 0, i64 8), align 2 ret void } @@ -671,10 +671,10 @@ ; CHECK-NEXT: sthx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x i16], [20 x i16]* @GlobLd4, i64 0, i64 %Idx - %0 = load i16, i16* %arrayidx, align 2 - %arrayidx1 = getelementptr inbounds [20 x i16], [20 x i16]* @GlobSt4, i64 0, i64 %Idx - store i16 %0, i16* %arrayidx1, align 2 + %arrayidx = getelementptr inbounds [20 x i16], ptr @GlobLd4, i64 0, i64 %Idx + %0 = load i16, ptr %arrayidx, align 2 + %arrayidx1 = getelementptr inbounds [20 x i16], ptr @GlobSt4, i64 0, i64 %Idx + store i16 %0, ptr %arrayidx1, align 2 ret void } @@ -702,8 +702,8 @@ ; CHECK-NEXT: stw r3, GlobSt5@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 0), align 4 - store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 0), align 4 + %0 = load i32, ptr @GlobLd5, align 4 + store i32 %0, ptr @GlobSt5, align 4 ret void } @@ -731,8 +731,8 @@ ; CHECK-NEXT: stw r3, GlobSt5@toc@l+3(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i32]* @GlobLd5 to i8*), i64 3) to i32*), align 4 - store i32 %0, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i32]* @GlobSt5 to i8*), i64 3) to i32*), align 4 + %0 = load i32, ptr getelementptr inbounds (i8, ptr @GlobLd5, i64 3), align 4 + store i32 %0, ptr getelementptr inbounds (i8, ptr @GlobSt5, i64 3), align 4 ret void } @@ -760,8 +760,8 @@ ; CHECK-NEXT: stw r3, GlobSt5@toc@l+4(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 1), align 4 - store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 1), align 4 + %0 = load i32, ptr getelementptr inbounds ([20 x i32], ptr @GlobLd5, i64 0, i64 1), align 4 + store i32 %0, ptr getelementptr inbounds ([20 x i32], ptr @GlobSt5, i64 0, i64 1), align 4 ret void } @@ -789,8 +789,8 @@ ; CHECK-NEXT: stw r3, GlobSt5@toc@l+16(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 4), align 4 - store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 4), align 4 + %0 = load i32, ptr getelementptr inbounds ([20 x i32], ptr @GlobLd5, i64 0, i64 4), align 4 + store i32 %0, ptr getelementptr inbounds ([20 x i32], ptr @GlobSt5, i64 0, i64 4), align 4 ret void } @@ -827,10 +827,10 @@ ; CHECK-NEXT: stwx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 %Idx - %0 = load i32, i32* %arrayidx, align 4 - %arrayidx1 = getelementptr inbounds [20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 %Idx - store i32 %0, i32* %arrayidx1, align 4 + %arrayidx = getelementptr inbounds [20 x i32], ptr @GlobLd5, i64 0, i64 %Idx + %0 = load i32, ptr %arrayidx, align 4 + %arrayidx1 = getelementptr inbounds [20 x i32], ptr @GlobSt5, i64 0, i64 %Idx + store i32 %0, ptr %arrayidx1, align 4 ret void } @@ -858,8 +858,8 @@ ; CHECK-NEXT: stw r3, GlobSt6@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd6, i64 0, i64 0), align 4 - store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt6, i64 0, i64 0), align 4 + %0 = load i32, ptr @GlobLd6, align 4 + store i32 %0, ptr @GlobSt6, align 4 ret void } @@ -887,8 +887,8 @@ ; CHECK-NEXT: stw r3, GlobSt6@toc@l+3(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i32]* @GlobLd6 to i8*), i64 3) to i32*), align 4 - store i32 %0, i32* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i32]* @GlobSt6 to i8*), i64 3) to i32*), align 4 + %0 = load i32, ptr getelementptr inbounds (i8, ptr @GlobLd6, i64 3), align 4 + store i32 %0, ptr getelementptr inbounds (i8, ptr @GlobSt6, i64 3), align 4 ret void } @@ -916,8 +916,8 @@ ; CHECK-NEXT: stw r3, GlobSt6@toc@l+4(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd6, i64 0, i64 1), align 4 - store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt6, i64 0, i64 1), align 4 + %0 = load i32, ptr getelementptr inbounds ([20 x i32], ptr @GlobLd6, i64 0, i64 1), align 4 + store i32 %0, ptr getelementptr inbounds ([20 x i32], ptr @GlobSt6, i64 0, i64 1), align 4 ret void } @@ -945,8 +945,8 @@ ; CHECK-NEXT: stw r3, GlobSt6@toc@l+16(r4) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd6, i64 0, i64 4), align 4 - store i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt6, i64 0, i64 4), align 4 + %0 = load i32, ptr getelementptr inbounds ([20 x i32], ptr @GlobLd6, i64 0, i64 4), align 4 + store i32 %0, ptr getelementptr inbounds ([20 x i32], ptr @GlobSt6, i64 0, i64 4), align 4 ret void } @@ -983,10 +983,10 @@ ; CHECK-NEXT: stwx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x i32], [20 x i32]* @GlobLd6, i64 0, i64 %Idx - %0 = load i32, i32* %arrayidx, align 4 - %arrayidx1 = getelementptr inbounds [20 x i32], [20 x i32]* @GlobSt6, i64 0, i64 %Idx - store i32 %0, i32* %arrayidx1, align 4 + %arrayidx = getelementptr inbounds [20 x i32], ptr @GlobLd6, i64 0, i64 %Idx + %0 = load i32, ptr %arrayidx, align 4 + %arrayidx1 = getelementptr inbounds [20 x i32], ptr @GlobSt6, i64 0, i64 %Idx + store i32 %0, ptr %arrayidx1, align 4 ret void } @@ -1022,8 +1022,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt7@toc@l(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd7, i64 0, i64 0), align 8 - store i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt7, i64 0, i64 0), align 8 + %0 = load i64, ptr @GlobLd7, align 8 + store i64 %0, ptr @GlobSt7, align 8 ret void } @@ -1056,8 +1056,8 @@ ; CHECK-NEXT: stdx r3, r5, r4 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobLd7 to i8*), i64 3) to i64*), align 8 - store i64 %0, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobSt7 to i8*), i64 3) to i64*), align 8 + %0 = load i64, ptr getelementptr inbounds (i8, ptr @GlobLd7, i64 3), align 8 + store i64 %0, ptr getelementptr inbounds (i8, ptr @GlobSt7, i64 3), align 8 ret void } @@ -1093,8 +1093,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt7@toc@l+4(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load i64, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobLd7 to i8*), i64 4) to i64*), align 8 - store i64 %0, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobSt7 to i8*), i64 4) to i64*), align 8 + %0 = load i64, ptr getelementptr inbounds (i8, ptr @GlobLd7, i64 4), align 8 + store i64 %0, ptr getelementptr inbounds (i8, ptr @GlobSt7, i64 4), align 8 ret void } @@ -1130,8 +1130,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt7@toc@l+16(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd7, i64 0, i64 2), align 8 - store i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt7, i64 0, i64 2), align 8 + %0 = load i64, ptr getelementptr inbounds ([20 x i64], ptr @GlobLd7, i64 0, i64 2), align 8 + store i64 %0, ptr getelementptr inbounds ([20 x i64], ptr @GlobSt7, i64 0, i64 2), align 8 ret void } @@ -1168,10 +1168,10 @@ ; CHECK-NEXT: stdx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x i64], [20 x i64]* @GlobLd7, i64 0, i64 %Idx - %0 = load i64, i64* %arrayidx, align 8 - %arrayidx1 = getelementptr inbounds [20 x i64], [20 x i64]* @GlobSt7, i64 0, i64 %Idx - store i64 %0, i64* %arrayidx1, align 8 + %arrayidx = getelementptr inbounds [20 x i64], ptr @GlobLd7, i64 0, i64 %Idx + %0 = load i64, ptr %arrayidx, align 8 + %arrayidx1 = getelementptr inbounds [20 x i64], ptr @GlobSt7, i64 0, i64 %Idx + store i64 %0, ptr %arrayidx1, align 8 ret void } @@ -1207,8 +1207,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt8@toc@l(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd8, i64 0, i64 0), align 8 - store i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt8, i64 0, i64 0), align 8 + %0 = load i64, ptr @GlobLd8, align 8 + store i64 %0, ptr @GlobSt8, align 8 ret void } @@ -1241,8 +1241,8 @@ ; CHECK-NEXT: stdx r3, r5, r4 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobLd8 to i8*), i64 3) to i64*), align 8 - store i64 %0, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobSt8 to i8*), i64 3) to i64*), align 8 + %0 = load i64, ptr getelementptr inbounds (i8, ptr @GlobLd8, i64 3), align 8 + store i64 %0, ptr getelementptr inbounds (i8, ptr @GlobSt8, i64 3), align 8 ret void } @@ -1278,8 +1278,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt8@toc@l+4(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load i64, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobLd8 to i8*), i64 4) to i64*), align 8 - store i64 %0, i64* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x i64]* @GlobSt8 to i8*), i64 4) to i64*), align 8 + %0 = load i64, ptr getelementptr inbounds (i8, ptr @GlobLd8, i64 4), align 8 + store i64 %0, ptr getelementptr inbounds (i8, ptr @GlobSt8, i64 4), align 8 ret void } @@ -1315,8 +1315,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt8@toc@l+16(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd8, i64 0, i64 2), align 8 - store i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt8, i64 0, i64 2), align 8 + %0 = load i64, ptr getelementptr inbounds ([20 x i64], ptr @GlobLd8, i64 0, i64 2), align 8 + store i64 %0, ptr getelementptr inbounds ([20 x i64], ptr @GlobSt8, i64 0, i64 2), align 8 ret void } @@ -1353,10 +1353,10 @@ ; CHECK-NEXT: stdx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x i64], [20 x i64]* @GlobLd8, i64 0, i64 %Idx - %0 = load i64, i64* %arrayidx, align 8 - %arrayidx1 = getelementptr inbounds [20 x i64], [20 x i64]* @GlobSt8, i64 0, i64 %Idx - store i64 %0, i64* %arrayidx1, align 8 + %arrayidx = getelementptr inbounds [20 x i64], ptr @GlobLd8, i64 0, i64 %Idx + %0 = load i64, ptr %arrayidx, align 8 + %arrayidx1 = getelementptr inbounds [20 x i64], ptr @GlobSt8, i64 0, i64 %Idx + store i64 %0, ptr %arrayidx1, align 8 ret void } @@ -1384,8 +1384,8 @@ ; CHECK-NEXT: stw r3, GlobSt9@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load float, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobLd9, i64 0, i64 0), align 4 - store float %0, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobSt9, i64 0, i64 0), align 4 + %0 = load float, ptr @GlobLd9, align 4 + store float %0, ptr @GlobSt9, align 4 ret void } @@ -1413,8 +1413,8 @@ ; CHECK-NEXT: stw r3, GlobSt9@toc@l+3(r4) ; CHECK-NEXT: blr entry: - %0 = load float, float* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x float]* @GlobLd9 to i8*), i64 3) to float*), align 4 - store float %0, float* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x float]* @GlobSt9 to i8*), i64 3) to float*), align 4 + %0 = load float, ptr getelementptr inbounds (i8, ptr @GlobLd9, i64 3), align 4 + store float %0, ptr getelementptr inbounds (i8, ptr @GlobSt9, i64 3), align 4 ret void } @@ -1442,8 +1442,8 @@ ; CHECK-NEXT: stw r3, GlobSt9@toc@l+4(r4) ; CHECK-NEXT: blr entry: - %0 = load float, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobLd9, i64 0, i64 1), align 4 - store float %0, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobSt9, i64 0, i64 1), align 4 + %0 = load float, ptr getelementptr inbounds ([20 x float], ptr @GlobLd9, i64 0, i64 1), align 4 + store float %0, ptr getelementptr inbounds ([20 x float], ptr @GlobSt9, i64 0, i64 1), align 4 ret void } @@ -1471,8 +1471,8 @@ ; CHECK-NEXT: stw r3, GlobSt9@toc@l+16(r4) ; CHECK-NEXT: blr entry: - %0 = load float, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobLd9, i64 0, i64 4), align 4 - store float %0, float* getelementptr inbounds ([20 x float], [20 x float]* @GlobSt9, i64 0, i64 4), align 4 + %0 = load float, ptr getelementptr inbounds ([20 x float], ptr @GlobLd9, i64 0, i64 4), align 4 + store float %0, ptr getelementptr inbounds ([20 x float], ptr @GlobSt9, i64 0, i64 4), align 4 ret void } @@ -1509,10 +1509,10 @@ ; CHECK-NEXT: stwx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x float], [20 x float]* @GlobLd9, i64 0, i64 %Idx - %0 = load float, float* %arrayidx, align 4 - %arrayidx1 = getelementptr inbounds [20 x float], [20 x float]* @GlobSt9, i64 0, i64 %Idx - store float %0, float* %arrayidx1, align 4 + %arrayidx = getelementptr inbounds [20 x float], ptr @GlobLd9, i64 0, i64 %Idx + %0 = load float, ptr %arrayidx, align 4 + %arrayidx1 = getelementptr inbounds [20 x float], ptr @GlobSt9, i64 0, i64 %Idx + store float %0, ptr %arrayidx1, align 4 ret void } @@ -1548,8 +1548,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt10@toc@l(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load double, double* getelementptr inbounds ([20 x double], [20 x double]* @GlobLd10, i64 0, i64 0), align 8 - store double %0, double* getelementptr inbounds ([20 x double], [20 x double]* @GlobSt10, i64 0, i64 0), align 8 + %0 = load double, ptr @GlobLd10, align 8 + store double %0, ptr @GlobSt10, align 8 ret void } @@ -1582,8 +1582,8 @@ ; CHECK-NEXT: stdx r3, r5, r4 ; CHECK-NEXT: blr entry: - %0 = load double, double* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x double]* @GlobLd10 to i8*), i64 3) to double*), align 8 - store double %0, double* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x double]* @GlobSt10 to i8*), i64 3) to double*), align 8 + %0 = load double, ptr getelementptr inbounds (i8, ptr @GlobLd10, i64 3), align 8 + store double %0, ptr getelementptr inbounds (i8, ptr @GlobSt10, i64 3), align 8 ret void } @@ -1619,8 +1619,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt10@toc@l+4(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load double, double* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x double]* @GlobLd10 to i8*), i64 4) to double*), align 8 - store double %0, double* bitcast (i8* getelementptr inbounds (i8, i8* bitcast ([20 x double]* @GlobSt10 to i8*), i64 4) to double*), align 8 + %0 = load double, ptr getelementptr inbounds (i8, ptr @GlobLd10, i64 4), align 8 + store double %0, ptr getelementptr inbounds (i8, ptr @GlobSt10, i64 4), align 8 ret void } @@ -1656,8 +1656,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt10@toc@l+16(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load double, double* getelementptr inbounds ([20 x double], [20 x double]* @GlobLd10, i64 0, i64 2), align 8 - store double %0, double* getelementptr inbounds ([20 x double], [20 x double]* @GlobSt10, i64 0, i64 2), align 8 + %0 = load double, ptr getelementptr inbounds ([20 x double], ptr @GlobLd10, i64 0, i64 2), align 8 + store double %0, ptr getelementptr inbounds ([20 x double], ptr @GlobSt10, i64 0, i64 2), align 8 ret void } @@ -1694,10 +1694,10 @@ ; CHECK-NEXT: stdx r4, r5, r3 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x double], [20 x double]* @GlobLd10, i64 0, i64 %Idx - %0 = load double, double* %arrayidx, align 8 - %arrayidx1 = getelementptr inbounds [20 x double], [20 x double]* @GlobSt10, i64 0, i64 %Idx - store double %0, double* %arrayidx1, align 8 + %arrayidx = getelementptr inbounds [20 x double], ptr @GlobLd10, i64 0, i64 %Idx + %0 = load double, ptr %arrayidx, align 8 + %arrayidx1 = getelementptr inbounds [20 x double], ptr @GlobSt10, i64 0, i64 %Idx + store double %0, ptr %arrayidx1, align 8 ret void } @@ -1749,8 +1749,8 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, 0, r3 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load <16 x i8>, <16 x i8>* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 0), align 16 - store <16 x i8> %0, <16 x i8>* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 0), align 16 + %0 = load <16 x i8>, ptr @GlobLd11, align 16 + store <16 x i8> %0, ptr @GlobSt11, align 16 ret void } @@ -1805,8 +1805,8 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 0, i64 3) to <16 x i8>*), align 16 - store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 0, i64 3) to <16 x i8>*), align 16 + %0 = load <16 x i8>, ptr getelementptr ([20 x <16 x i8>], ptr @GlobLd11, i64 0, i64 0, i64 3), align 16 + store <16 x i8> %0, ptr getelementptr ([20 x <16 x i8>], ptr @GlobSt11, i64 0, i64 0, i64 3), align 16 ret void } @@ -1861,8 +1861,8 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 0, i64 4) to <16 x i8>*), align 16 - store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 0, i64 4) to <16 x i8>*), align 16 + %0 = load <16 x i8>, ptr getelementptr ([20 x <16 x i8>], ptr @GlobLd11, i64 0, i64 0, i64 4), align 16 + store <16 x i8> %0, ptr getelementptr ([20 x <16 x i8>], ptr @GlobSt11, i64 0, i64 0, i64 4), align 16 ret void } @@ -1916,8 +1916,8 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 1, i64 0) to <16 x i8>*), align 16 - store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 1, i64 0) to <16 x i8>*), align 16 + %0 = load <16 x i8>, ptr getelementptr inbounds ([20 x <16 x i8>], ptr @GlobLd11, i64 0, i64 1, i64 0), align 16 + store <16 x i8> %0, ptr getelementptr inbounds ([20 x <16 x i8>], ptr @GlobSt11, i64 0, i64 1, i64 0), align 16 ret void } @@ -1976,10 +1976,10 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, r4, r3 ; CHECK-P8-BE-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd11, i64 0, i64 %Idx - %0 = load <16 x i8>, <16 x i8>* %arrayidx, align 16 - %arrayidx1 = getelementptr inbounds [20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt11, i64 0, i64 %Idx - store <16 x i8> %0, <16 x i8>* %arrayidx1, align 16 + %arrayidx = getelementptr inbounds [20 x <16 x i8>], ptr @GlobLd11, i64 0, i64 %Idx + %0 = load <16 x i8>, ptr %arrayidx, align 16 + %arrayidx1 = getelementptr inbounds [20 x <16 x i8>], ptr @GlobSt11, i64 0, i64 %Idx + store <16 x i8> %0, ptr %arrayidx1, align 16 ret void } @@ -2031,8 +2031,8 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, 0, r3 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load <16 x i8>, <16 x i8>* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 0), align 16 - store <16 x i8> %0, <16 x i8>* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 0), align 16 + %0 = load <16 x i8>, ptr @GlobLd12, align 16 + store <16 x i8> %0, ptr @GlobSt12, align 16 ret void } @@ -2087,8 +2087,8 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 0, i64 3) to <16 x i8>*), align 16 - store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 0, i64 3) to <16 x i8>*), align 16 + %0 = load <16 x i8>, ptr getelementptr ([20 x <16 x i8>], ptr @GlobLd12, i64 0, i64 0, i64 3), align 16 + store <16 x i8> %0, ptr getelementptr ([20 x <16 x i8>], ptr @GlobSt12, i64 0, i64 0, i64 3), align 16 ret void } @@ -2143,8 +2143,8 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 0, i64 4) to <16 x i8>*), align 16 - store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 0, i64 4) to <16 x i8>*), align 16 + %0 = load <16 x i8>, ptr getelementptr ([20 x <16 x i8>], ptr @GlobLd12, i64 0, i64 0, i64 4), align 16 + store <16 x i8> %0, ptr getelementptr ([20 x <16 x i8>], ptr @GlobSt12, i64 0, i64 0, i64 4), align 16 ret void } @@ -2198,8 +2198,8 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load <16 x i8>, <16 x i8>* bitcast (i8* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 1, i64 0) to <16 x i8>*), align 16 - store <16 x i8> %0, <16 x i8>* bitcast (i8* getelementptr inbounds ([20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 1, i64 0) to <16 x i8>*), align 16 + %0 = load <16 x i8>, ptr getelementptr inbounds ([20 x <16 x i8>], ptr @GlobLd12, i64 0, i64 1, i64 0), align 16 + store <16 x i8> %0, ptr getelementptr inbounds ([20 x <16 x i8>], ptr @GlobSt12, i64 0, i64 1, i64 0), align 16 ret void } @@ -2258,10 +2258,10 @@ ; CHECK-P8-BE-NEXT: stxvw4x vs0, r4, r3 ; CHECK-P8-BE-NEXT: blr entry: - %arrayidx = getelementptr inbounds [20 x <16 x i8>], [20 x <16 x i8>]* @GlobLd12, i64 0, i64 %Idx - %0 = load <16 x i8>, <16 x i8>* %arrayidx, align 16 - %arrayidx1 = getelementptr inbounds [20 x <16 x i8>], [20 x <16 x i8>]* @GlobSt12, i64 0, i64 %Idx - store <16 x i8> %0, <16 x i8>* %arrayidx1, align 16 + %arrayidx = getelementptr inbounds [20 x <16 x i8>], ptr @GlobLd12, i64 0, i64 %Idx + %0 = load <16 x i8>, ptr %arrayidx, align 16 + %arrayidx1 = getelementptr inbounds [20 x <16 x i8>], ptr @GlobSt12, i64 0, i64 %Idx + store <16 x i8> %0, ptr %arrayidx1, align 16 ret void } @@ -2289,8 +2289,8 @@ ; CHECK-NEXT: stb r3, GlobSt1@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load atomic i8, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobLd1, i64 0, i64 0) monotonic, align 1 - store atomic i8 %0, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @GlobSt1, i64 0, i64 0) monotonic, align 1 + %0 = load atomic i8, ptr @GlobLd1 monotonic, align 1 + store atomic i8 %0, ptr @GlobSt1 monotonic, align 1 ret void } @@ -2318,8 +2318,8 @@ ; CHECK-NEXT: sth r3, GlobSt3@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load atomic i16, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobLd3, i64 0, i64 0) monotonic, align 2 - store atomic i16 %0, i16* getelementptr inbounds ([20 x i16], [20 x i16]* @GlobSt3, i64 0, i64 0) monotonic, align 2 + %0 = load atomic i16, ptr @GlobLd3 monotonic, align 2 + store atomic i16 %0, ptr @GlobSt3 monotonic, align 2 ret void } @@ -2347,8 +2347,8 @@ ; CHECK-NEXT: stw r3, GlobSt5@toc@l(r4) ; CHECK-NEXT: blr entry: - %0 = load atomic i32, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobLd5, i64 0, i64 0) monotonic, align 4 - store atomic i32 %0, i32* getelementptr inbounds ([20 x i32], [20 x i32]* @GlobSt5, i64 0, i64 0) monotonic, align 4 + %0 = load atomic i32, ptr @GlobLd5 monotonic, align 4 + store atomic i32 %0, ptr @GlobSt5 monotonic, align 4 ret void } @@ -2384,8 +2384,8 @@ ; CHECK-P8-NEXT: std r3, GlobSt7@toc@l(r4) ; CHECK-P8-NEXT: blr entry: - %0 = load atomic i64, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobLd7, i64 0, i64 0) monotonic, align 8 - store atomic i64 %0, i64* getelementptr inbounds ([20 x i64], [20 x i64]* @GlobSt7, i64 0, i64 0) monotonic, align 8 + %0 = load atomic i64, ptr @GlobLd7 monotonic, align 8 + store atomic i64 %0, ptr @GlobSt7 monotonic, align 8 ret void } @@ -2422,7 +2422,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i64 - store i64 %conv, i64* bitcast ([20 x double]* @GlobSt10 to i64*), align 8 + store i64 %conv, ptr @GlobSt10, align 8 ret void } @@ -2459,7 +2459,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i64 - store i64 %conv, i64* bitcast ([20 x double]* @GlobSt10 to i64*), align 8 + store i64 %conv, ptr @GlobSt10, align 8 ret void } @@ -2520,7 +2520,7 @@ ; CHECK-P8-BE-NEXT: blr entry: %conv = fptoui fp128 %str to i64 - store i64 %conv, i64* bitcast ([20 x fp128]* @GlobF128 to i64*), align 16 + store i64 %conv, ptr @GlobF128, align 16 ret void } @@ -2581,6 +2581,6 @@ ; CHECK-P8-BE-NEXT: blr entry: %conv = fptosi fp128 %str to i64 - store i64 %conv, i64* bitcast ([20 x fp128]* @GlobF128 to i64*), align 16 + store i64 %conv, ptr @GlobF128, align 16 ret void } Index: llvm/test/CodeGen/PowerPC/peephole-align.ll =================================================================== --- llvm/test/CodeGen/PowerPC/peephole-align.ll +++ llvm/test/CodeGen/PowerPC/peephole-align.ll @@ -44,18 +44,18 @@ define dso_local void @test_b4() nounwind { entry: - %0 = load i8, i8* getelementptr inbounds (%struct.b4, %struct.b4* @b4v, i32 0, i32 0), align 1 + %0 = load i8, ptr @b4v, align 1 %inc0 = add nsw i8 %0, 1 - store i8 %inc0, i8* getelementptr inbounds (%struct.b4, %struct.b4* @b4v, i32 0, i32 0), align 1 - %1 = load i8, i8* getelementptr inbounds (%struct.b4, %struct.b4* @b4v, i32 0, i32 1), align 1 + store i8 %inc0, ptr @b4v, align 1 + %1 = load i8, ptr getelementptr inbounds (%struct.b4, ptr @b4v, i32 0, i32 1), align 1 %inc1 = add nsw i8 %1, 2 - store i8 %inc1, i8* getelementptr inbounds (%struct.b4, %struct.b4* @b4v, i32 0, i32 1), align 1 - %2 = load i8, i8* getelementptr inbounds (%struct.b4, %struct.b4* @b4v, i32 0, i32 2), align 1 + store i8 %inc1, ptr getelementptr inbounds (%struct.b4, ptr @b4v, i32 0, i32 1), align 1 + %2 = load i8, ptr getelementptr inbounds (%struct.b4, ptr @b4v, i32 0, i32 2), align 1 %inc2 = add nsw i8 %2, 3 - store i8 %inc2, i8* getelementptr inbounds (%struct.b4, %struct.b4* @b4v, i32 0, i32 2), align 1 - %3 = load i8, i8* getelementptr inbounds (%struct.b4, %struct.b4* @b4v, i32 0, i32 3), align 1 + store i8 %inc2, ptr getelementptr inbounds (%struct.b4, ptr @b4v, i32 0, i32 2), align 1 + %3 = load i8, ptr getelementptr inbounds (%struct.b4, ptr @b4v, i32 0, i32 3), align 1 %inc3 = add nsw i8 %3, 4 - store i8 %inc3, i8* getelementptr inbounds (%struct.b4, %struct.b4* @b4v, i32 0, i32 3), align 1 + store i8 %inc3, ptr getelementptr inbounds (%struct.b4, ptr @b4v, i32 0, i32 3), align 1 ret void } @@ -70,12 +70,12 @@ define dso_local void @test_h2() nounwind { entry: - %0 = load i16, i16* getelementptr inbounds (%struct.h2, %struct.h2* @h2v, i32 0, i32 0), align 2 + %0 = load i16, ptr @h2v, align 2 %inc0 = add nsw i16 %0, 1 - store i16 %inc0, i16* getelementptr inbounds (%struct.h2, %struct.h2* @h2v, i32 0, i32 0), align 2 - %1 = load i16, i16* getelementptr inbounds (%struct.h2, %struct.h2* @h2v, i32 0, i32 1), align 2 + store i16 %inc0, ptr @h2v, align 2 + %1 = load i16, ptr getelementptr inbounds (%struct.h2, ptr @h2v, i32 0, i32 1), align 2 %inc1 = add nsw i16 %1, 2 - store i16 %inc1, i16* getelementptr inbounds (%struct.h2, %struct.h2* @h2v, i32 0, i32 1), align 2 + store i16 %inc1, ptr getelementptr inbounds (%struct.h2, ptr @h2v, i32 0, i32 1), align 2 ret void } @@ -89,12 +89,12 @@ ; CHECK-DAG: sth [[REG1_1]], h2v@toc@l+2([[REGSTRUCT]]) define dso_local void @test_h2_optsize() optsize nounwind { entry: - %0 = load i16, i16* getelementptr inbounds (%struct.h2, %struct.h2* @h2v, i32 0, i32 0), align 2 + %0 = load i16, ptr @h2v, align 2 %inc0 = add nsw i16 %0, 1 - store i16 %inc0, i16* getelementptr inbounds (%struct.h2, %struct.h2* @h2v, i32 0, i32 0), align 2 - %1 = load i16, i16* getelementptr inbounds (%struct.h2, %struct.h2* @h2v, i32 0, i32 1), align 2 + store i16 %inc0, ptr @h2v, align 2 + %1 = load i16, ptr getelementptr inbounds (%struct.h2, ptr @h2v, i32 0, i32 1), align 2 %inc1 = add nsw i16 %1, 2 - store i16 %inc1, i16* getelementptr inbounds (%struct.h2, %struct.h2* @h2v, i32 0, i32 1), align 2 + store i16 %inc1, ptr getelementptr inbounds (%struct.h2, ptr @h2v, i32 0, i32 1), align 2 ret void } @@ -127,30 +127,30 @@ define dso_local void @test_b8() nounwind { entry: - %0 = load i8, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 0), align 1 + %0 = load i8, ptr @b8v, align 1 %inc0 = add nsw i8 %0, 1 - store i8 %inc0, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 0), align 1 - %1 = load i8, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 1), align 1 + store i8 %inc0, ptr @b8v, align 1 + %1 = load i8, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 1), align 1 %inc1 = add nsw i8 %1, 2 - store i8 %inc1, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 1), align 1 - %2 = load i8, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 2), align 1 + store i8 %inc1, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 1), align 1 + %2 = load i8, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 2), align 1 %inc2 = add nsw i8 %2, 3 - store i8 %inc2, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 2), align 1 - %3 = load i8, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 3), align 1 + store i8 %inc2, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 2), align 1 + %3 = load i8, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 3), align 1 %inc3 = add nsw i8 %3, 4 - store i8 %inc3, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 3), align 1 - %4 = load i8, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 4), align 1 + store i8 %inc3, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 3), align 1 + %4 = load i8, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 4), align 1 %inc4 = add nsw i8 %4, 5 - store i8 %inc4, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 4), align 1 - %5 = load i8, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 5), align 1 + store i8 %inc4, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 4), align 1 + %5 = load i8, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 5), align 1 %inc5 = add nsw i8 %5, 6 - store i8 %inc5, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 5), align 1 - %6 = load i8, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 6), align 1 + store i8 %inc5, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 5), align 1 + %6 = load i8, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 6), align 1 %inc6 = add nsw i8 %6, 7 - store i8 %inc6, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 6), align 1 - %7 = load i8, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 7), align 1 + store i8 %inc6, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 6), align 1 + %7 = load i8, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 7), align 1 %inc7 = add nsw i8 %7, 8 - store i8 %inc7, i8* getelementptr inbounds (%struct.b8, %struct.b8* @b8v, i32 0, i32 7), align 1 + store i8 %inc7, ptr getelementptr inbounds (%struct.b8, ptr @b8v, i32 0, i32 7), align 1 ret void } @@ -171,18 +171,18 @@ define dso_local void @test_h4() nounwind { entry: - %0 = load i16, i16* getelementptr inbounds (%struct.h4, %struct.h4* @h4v, i32 0, i32 0), align 2 + %0 = load i16, ptr @h4v, align 2 %inc0 = add nsw i16 %0, 1 - store i16 %inc0, i16* getelementptr inbounds (%struct.h4, %struct.h4* @h4v, i32 0, i32 0), align 2 - %1 = load i16, i16* getelementptr inbounds (%struct.h4, %struct.h4* @h4v, i32 0, i32 1), align 2 + store i16 %inc0, ptr @h4v, align 2 + %1 = load i16, ptr getelementptr inbounds (%struct.h4, ptr @h4v, i32 0, i32 1), align 2 %inc1 = add nsw i16 %1, 2 - store i16 %inc1, i16* getelementptr inbounds (%struct.h4, %struct.h4* @h4v, i32 0, i32 1), align 2 - %2 = load i16, i16* getelementptr inbounds (%struct.h4, %struct.h4* @h4v, i32 0, i32 2), align 2 + store i16 %inc1, ptr getelementptr inbounds (%struct.h4, ptr @h4v, i32 0, i32 1), align 2 + %2 = load i16, ptr getelementptr inbounds (%struct.h4, ptr @h4v, i32 0, i32 2), align 2 %inc2 = add nsw i16 %2, 3 - store i16 %inc2, i16* getelementptr inbounds (%struct.h4, %struct.h4* @h4v, i32 0, i32 2), align 2 - %3 = load i16, i16* getelementptr inbounds (%struct.h4, %struct.h4* @h4v, i32 0, i32 3), align 2 + store i16 %inc2, ptr getelementptr inbounds (%struct.h4, ptr @h4v, i32 0, i32 2), align 2 + %3 = load i16, ptr getelementptr inbounds (%struct.h4, ptr @h4v, i32 0, i32 3), align 2 %inc3 = add nsw i16 %3, 4 - store i16 %inc3, i16* getelementptr inbounds (%struct.h4, %struct.h4* @h4v, i32 0, i32 3), align 2 + store i16 %inc3, ptr getelementptr inbounds (%struct.h4, ptr @h4v, i32 0, i32 3), align 2 ret void } @@ -197,12 +197,12 @@ define dso_local void @test_w2() nounwind { entry: - %0 = load i32, i32* getelementptr inbounds (%struct.w2, %struct.w2* @w2v, i32 0, i32 0), align 4 + %0 = load i32, ptr @w2v, align 4 %inc0 = add nsw i32 %0, 1 - store i32 %inc0, i32* getelementptr inbounds (%struct.w2, %struct.w2* @w2v, i32 0, i32 0), align 4 - %1 = load i32, i32* getelementptr inbounds (%struct.w2, %struct.w2* @w2v, i32 0, i32 1), align 4 + store i32 %inc0, ptr @w2v, align 4 + %1 = load i32, ptr getelementptr inbounds (%struct.w2, ptr @w2v, i32 0, i32 1), align 4 %inc1 = add nsw i32 %1, 2 - store i32 %inc1, i32* getelementptr inbounds (%struct.w2, %struct.w2* @w2v, i32 0, i32 1), align 4 + store i32 %inc1, ptr getelementptr inbounds (%struct.w2, ptr @w2v, i32 0, i32 1), align 4 ret void } @@ -218,12 +218,12 @@ define dso_local void @test_d2() nounwind { entry: - %0 = load i64, i64* getelementptr inbounds (%struct.d2, %struct.d2* @d2v, i32 0, i32 0), align 8 + %0 = load i64, ptr @d2v, align 8 %inc0 = add nsw i64 %0, 1 - store i64 %inc0, i64* getelementptr inbounds (%struct.d2, %struct.d2* @d2v, i32 0, i32 0), align 8 - %1 = load i64, i64* getelementptr inbounds (%struct.d2, %struct.d2* @d2v, i32 0, i32 1), align 8 + store i64 %inc0, ptr @d2v, align 8 + %1 = load i64, ptr getelementptr inbounds (%struct.d2, ptr @d2v, i32 0, i32 1), align 8 %inc1 = add nsw i64 %1, 2 - store i64 %inc1, i64* getelementptr inbounds (%struct.d2, %struct.d2* @d2v, i32 0, i32 1), align 8 + store i64 %inc1, ptr getelementptr inbounds (%struct.d2, ptr @d2v, i32 0, i32 1), align 8 ret void } @@ -232,7 +232,7 @@ ; CHECK: ld 3, d2v@toc@l+8([[REG]]) define i64 @test_singleuse() nounwind { entry: - %0 = load i64, i64* getelementptr inbounds (%struct.d2, %struct.d2* @d2v, i32 0, i32 1), align 8 + %0 = load i64, ptr getelementptr inbounds (%struct.d2, ptr @d2v, i32 0, i32 1), align 8 ret i64 %0 } @@ -246,8 +246,8 @@ ; CHECK: stdx [[REG0_1]], [[REGSTRUCT]], [[OFFSET_REG]] define dso_local void @test_misalign() nounwind { entry: - %0 = load i64, i64* getelementptr inbounds (%struct.misalign, %struct.misalign* @misalign_v, i32 0, i32 1), align 1 + %0 = load i64, ptr getelementptr inbounds (%struct.misalign, ptr @misalign_v, i32 0, i32 1), align 1 %inc0 = add nsw i64 %0, 1 - store i64 %inc0, i64* getelementptr inbounds (%struct.misalign, %struct.misalign* @misalign_v, i32 0, i32 1), align 1 + store i64 %inc0, ptr getelementptr inbounds (%struct.misalign, ptr @misalign_v, i32 0, i32 1), align 1 ret void } Index: llvm/test/CodeGen/PowerPC/pgo-ref-directive.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pgo-ref-directive.ll +++ llvm/test/CodeGen/PowerPC/pgo-ref-directive.ll @@ -14,9 +14,9 @@ @__profd_main = private global i64 zeroinitializer, section "__llvm_prf_data", align 8 @__llvm_prf_nm = private constant [6 x i8] c"\04\00main", section "__llvm_prf_names", align 1 -@llvm.used = appending global [2 x i8*] - [i8* bitcast (i64* @__profd_main to i8*), - i8* getelementptr inbounds ([6 x i8], [6 x i8]* @__llvm_prf_nm, i32 0, i32 0)], section "llvm.metadata" +@llvm.used = appending global [2 x ptr] + [ptr @__profd_main, + ptr @__llvm_prf_nm], section "llvm.metadata" define i32 @main() #0 { entry: @@ -37,10 +37,10 @@ @__profd_main = private global i64 zeroinitializer, section "__llvm_prf_data", align 8 @__llvm_prf_nm = private constant [6 x i8] c"\04\00main", section "__llvm_prf_names", align 1 -@llvm.used = appending global [3 x i8*] - [i8* bitcast ([1 x i64]* @__profc_main to i8*), - i8* bitcast (i64* @__profd_main to i8*), - i8* getelementptr inbounds ([6 x i8], [6 x i8]* @__llvm_prf_nm, i32 0, i32 0)], section "llvm.metadata" +@llvm.used = appending global [3 x ptr] + [ptr @__profc_main, + ptr @__profd_main, + ptr @__llvm_prf_nm], section "llvm.metadata" define i32 @main() #0 { entry: @@ -62,13 +62,13 @@ @__profc_main = private global [1 x i64] zeroinitializer, section "__llvm_prf_cnts", align 8 @__profd_main = private global i64 zeroinitializer, section "__llvm_prf_data", align 8 @__llvm_prf_nm = private constant [6 x i8] c"\04\00main", section "__llvm_prf_names", align 1 -@__llvm_prf_vnodes = private global [10 x { i64, i64, i8* }] zeroinitializer, section "__llvm_prf_vnds" +@__llvm_prf_vnodes = private global [10 x { i64, i64, ptr }] zeroinitializer, section "__llvm_prf_vnds" -@llvm.used = appending global [4 x i8*] - [i8* bitcast ([1 x i64]* @__profc_main to i8*), - i8* bitcast (i64* @__profd_main to i8*), - i8* getelementptr inbounds ([6 x i8], [6 x i8]* @__llvm_prf_nm, i32 0, i32 0), - i8* bitcast ([10 x { i64, i64, i8* }]* @__llvm_prf_vnodes to i8*)], section "llvm.metadata" +@llvm.used = appending global [4 x ptr] + [ptr @__profc_main, + ptr @__profd_main, + ptr @__llvm_prf_nm, + ptr @__llvm_prf_vnodes], section "llvm.metadata" define i32 @main() #0 { entry: Index: llvm/test/CodeGen/PowerPC/pip-inner.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pip-inner.ll +++ llvm/test/CodeGen/PowerPC/pip-inner.ll @@ -3,7 +3,7 @@ target triple = "powerpc64-unknown-linux-gnu" ; Function Attrs: nounwind -define void @foo(double* %x, double* nocapture readonly %y) #0 { +define void @foo(ptr %x, ptr nocapture readonly %y) #0 { entry: br label %for.cond1.preheader @@ -13,17 +13,17 @@ for.body3: ; preds = %for.body3, %for.cond1.preheader %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next, %for.body3 ] - %arrayidx = getelementptr inbounds double, double* %y, i64 %indvars.iv - %0 = load double, double* %arrayidx, align 8 + %arrayidx = getelementptr inbounds double, ptr %y, i64 %indvars.iv + %0 = load double, ptr %arrayidx, align 8 %add = fadd double %0, 1.000000e+00 - %arrayidx5 = getelementptr inbounds double, double* %x, i64 %indvars.iv - store double %add, double* %arrayidx5, align 8 + %arrayidx5 = getelementptr inbounds double, ptr %x, i64 %indvars.iv + store double %add, ptr %arrayidx5, align 8 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond = icmp eq i64 %indvars.iv.next, 16000 br i1 %exitcond, label %for.end, label %for.body3 for.end: ; preds = %for.body3 - tail call void @bar(double* %x) #2 + tail call void @bar(ptr %x) #2 %inc7 = add nuw nsw i32 %i.015, 1 %exitcond16 = icmp eq i32 %inc7, 1000 br i1 %exitcond16, label %for.end8, label %for.cond1.preheader @@ -44,7 +44,7 @@ ; CHECK: blr } -declare void @bar(double*) #1 +declare void @bar(ptr) #1 attributes #0 = { nounwind "target-cpu"="a2" } attributes #1 = { "target-cpu"="a2" } Index: llvm/test/CodeGen/PowerPC/popcount.ll =================================================================== --- llvm/test/CodeGen/PowerPC/popcount.ll +++ llvm/test/CodeGen/PowerPC/popcount.ll @@ -2,7 +2,7 @@ ; RUN: llc < %s -O0 -mtriple=powerpc64le-unknown-unknown | FileCheck %s ; Function Attrs: nobuiltin nounwind readonly -define i8 @popcount128(i128* nocapture nonnull readonly %0) { +define i8 @popcount128(ptr nocapture nonnull readonly %0) { ; CHECK-LABEL: popcount128: ; CHECK: # %bb.0: # %Entry ; CHECK-NEXT: mr 4, 3 @@ -15,7 +15,7 @@ ; CHECK-NEXT: clrldi 3, 3, 56 ; CHECK-NEXT: blr Entry: - %1 = load i128, i128* %0, align 16 + %1 = load i128, ptr %0, align 16 %2 = tail call i128 @llvm.ctpop.i128(i128 %1) %3 = trunc i128 %2 to i8 ret i8 %3 @@ -25,7 +25,7 @@ declare i128 @llvm.ctpop.i128(i128) ; Function Attrs: nobuiltin nounwind readonly -define i16 @popcount256(i256* nocapture nonnull readonly %0) { +define i16 @popcount256(ptr nocapture nonnull readonly %0) { ; CHECK-LABEL: popcount256: ; CHECK: # %bb.0: # %Entry ; CHECK-NEXT: mr 6, 3 @@ -44,7 +44,7 @@ ; CHECK-NEXT: clrldi 3, 3, 48 ; CHECK-NEXT: blr Entry: - %1 = load i256, i256* %0, align 16 + %1 = load i256, ptr %0, align 16 %2 = tail call i256 @llvm.ctpop.i256(i256 %1) %3 = trunc i256 %2 to i16 ret i16 %3 Index: llvm/test/CodeGen/PowerPC/post-ra-ec.ll =================================================================== --- llvm/test/CodeGen/PowerPC/post-ra-ec.ll +++ llvm/test/CodeGen/PowerPC/post-ra-ec.ll @@ -2,27 +2,27 @@ target datalayout = "E-m:e-i64:64-n32:64" target triple = "powerpc64-unknown-linux-gnu" -%struct.inode.0.12.120 = type { i8* } +%struct.inode.0.12.120 = type { ptr } %struct.kstat2.1.13.121 = type { i32 } -%struct.task_struct.4.16.124 = type { i8*, %struct.atomic_t.2.14.122, %struct.signal_struct.3.15.123* } +%struct.task_struct.4.16.124 = type { ptr, %struct.atomic_t.2.14.122, ptr } %struct.atomic_t.2.14.122 = type { i32 } %struct.signal_struct.3.15.123 = type { i64 } -%struct.pid.5.17.125 = type { i8* } +%struct.pid.5.17.125 = type { ptr } ; Function Attrs: nounwind -define signext i32 @proc_task_getattr(%struct.inode.0.12.120* nocapture readonly %inode, %struct.kstat2.1.13.121* nocapture %stat) #0 { +define signext i32 @proc_task_getattr(ptr nocapture readonly %inode, ptr nocapture %stat) #0 { entry: - %call1.i = tail call %struct.task_struct.4.16.124* @get_pid_task(%struct.pid.5.17.125* undef, i32 zeroext 0) #0 + %call1.i = tail call ptr @get_pid_task(ptr undef, i32 zeroext 0) #0 br i1 undef, label %if.end, label %if.then if.then: ; preds = %entry - %0 = load i64, i64* undef, align 8 + %0 = load i64, ptr undef, align 8 %conv.i = trunc i64 %0 to i32 - %1 = load i32, i32* null, align 4 + %1 = load i32, ptr null, align 4 %add = add i32 %1, %conv.i - store i32 %add, i32* null, align 4 - %counter.i.i = getelementptr inbounds %struct.task_struct.4.16.124, %struct.task_struct.4.16.124* %call1.i, i64 0, i32 1, i32 0 - %2 = tail call i32 asm sideeffect "\09lwsync\0A1:\09lwarx\09$0,0,$1\09\09# atomic_dec_return\0A\09addic\09$0,$0,-1\0A\09stwcx.\09$0,0,$1\0A\09bne-\091b\0A\09sync\0A", "=&r,r,~{cr0},~{xer},~{memory}"(i32* %counter.i.i) #0 + store i32 %add, ptr null, align 4 + %counter.i.i = getelementptr inbounds %struct.task_struct.4.16.124, ptr %call1.i, i64 0, i32 1, i32 0 + %2 = tail call i32 asm sideeffect "\09lwsync\0A1:\09lwarx\09$0,0,$1\09\09# atomic_dec_return\0A\09addic\09$0,$0,-1\0A\09stwcx.\09$0,0,$1\0A\09bne-\091b\0A\09sync\0A", "=&r,r,~{cr0},~{xer},~{memory}"(ptr %counter.i.i) #0 %cmp.i = icmp eq i32 %2, 0 br i1 %cmp.i, label %if.then.i, label %if.end @@ -31,17 +31,16 @@ ; CHECK: blr if.then.i: ; preds = %if.then - %3 = bitcast %struct.task_struct.4.16.124* %call1.i to i8* - tail call void @foo(i8* %3) #0 + tail call void @foo(ptr %call1.i) #0 unreachable if.end: ; preds = %if.then, %entry ret i32 0 } -declare void @foo(i8*) +declare void @foo(ptr) -declare %struct.task_struct.4.16.124* @get_pid_task(%struct.pid.5.17.125*, i32 zeroext) +declare ptr @get_pid_task(ptr, i32 zeroext) attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/pow_massv_075_025exp.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pow_massv_075_025exp.ll +++ llvm/test/CodeGen/PowerPC/pow_massv_075_025exp.ll @@ -7,7 +7,7 @@ ; RUN: llc -vector-library=MASSV < %s -mtriple=powerpc-ibm-aix-xcoff -mcpu=pwr7 | FileCheck -check-prefixes=CHECK-PWR7 %s ; Exponent is a variable -define void @vpow_var(double* nocapture %z, double* nocapture readonly %y, double* nocapture readonly %x) { +define void @vpow_var(ptr nocapture %z, ptr nocapture readonly %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vpow_var ; CHECK-PWR10: __powd2_P10 ; CHECK-PWR9: __powd2_P9 @@ -19,26 +19,23 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr double, double* %z, i64 %index - %next.gep31 = getelementptr double, double* %y, i64 %index - %next.gep32 = getelementptr double, double* %x, i64 %index - %0 = bitcast double* %next.gep32 to <2 x double>* - %wide.load = load <2 x double>, <2 x double>* %0, align 8 - %1 = bitcast double* %next.gep31 to <2 x double>* - %wide.load33 = load <2 x double>, <2 x double>* %1, align 8 - %2 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> %wide.load33) - %3 = bitcast double* %next.gep to <2 x double>* - store <2 x double> %2, <2 x double>* %3, align 8 + %next.gep = getelementptr double, ptr %z, i64 %index + %next.gep31 = getelementptr double, ptr %y, i64 %index + %next.gep32 = getelementptr double, ptr %x, i64 %index + %wide.load = load <2 x double>, ptr %next.gep32, align 8 + %wide.load33 = load <2 x double>, ptr %next.gep31, align 8 + %0 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> %wide.load33) + store <2 x double> %0, ptr %next.gep, align 8 %index.next = add i64 %index, 2 - %4 = icmp eq i64 %index.next, 1024 - br i1 %4, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is a constant != 0.75 and !=0.25 -define void @vpow_const(double* nocapture %y, double* nocapture readonly %x) { +define void @vpow_const(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vpow_const ; CHECK-PWR10: __powd2_P10 ; CHECK-PWR9: __powd2_P9 @@ -50,23 +47,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr double, double* %y, i64 %index - %next.gep19 = getelementptr double, double* %x, i64 %index - %0 = bitcast double* %next.gep19 to <2 x double>* - %wide.load = load <2 x double>, <2 x double>* %0, align 8 - %1 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) - %2 = bitcast double* %next.gep to <2 x double>* - store <2 x double> %1, <2 x double>* %2, align 8 + %next.gep = getelementptr double, ptr %y, i64 %index + %next.gep19 = getelementptr double, ptr %x, i64 %index + %wide.load = load <2 x double>, ptr %next.gep19, align 8 + %0 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) + store <2 x double> %0, ptr %next.gep, align 8 %index.next = add i64 %index, 2 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is a constant != 0.75 and !=0.25 and they are different -define void @vpow_noeq_const(double* nocapture %y, double* nocapture readonly %x) { +define void @vpow_noeq_const(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vpow_noeq_const ; CHECK-PWR10: __powd2_P10 ; CHECK-PWR9: __powd2_P9 @@ -78,23 +73,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr double, double* %y, i64 %index - %next.gep19 = getelementptr double, double* %x, i64 %index - %0 = bitcast double* %next.gep19 to <2 x double>* - %wide.load = load <2 x double>, <2 x double>* %0, align 8 - %1 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) - %2 = bitcast double* %next.gep to <2 x double>* - store <2 x double> %1, <2 x double>* %2, align 8 + %next.gep = getelementptr double, ptr %y, i64 %index + %next.gep19 = getelementptr double, ptr %x, i64 %index + %wide.load = load <2 x double>, ptr %next.gep19, align 8 + %0 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) + store <2 x double> %0, ptr %next.gep, align 8 %index.next = add i64 %index, 2 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is a constant != 0.75 and !=0.25 and they are different -define void @vpow_noeq075_const(double* nocapture %y, double* nocapture readonly %x) { +define void @vpow_noeq075_const(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vpow_noeq075_const ; CHECK-PWR10: __powd2_P10 ; CHECK-PWR9: __powd2_P9 @@ -106,23 +99,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr double, double* %y, i64 %index - %next.gep19 = getelementptr double, double* %x, i64 %index - %0 = bitcast double* %next.gep19 to <2 x double>* - %wide.load = load <2 x double>, <2 x double>* %0, align 8 - %1 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) - %2 = bitcast double* %next.gep to <2 x double>* - store <2 x double> %1, <2 x double>* %2, align 8 + %next.gep = getelementptr double, ptr %y, i64 %index + %next.gep19 = getelementptr double, ptr %x, i64 %index + %wide.load = load <2 x double>, ptr %next.gep19, align 8 + %0 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) + store <2 x double> %0, ptr %next.gep, align 8 %index.next = add i64 %index, 2 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is a constant != 0.75 and !=0.25 and they are different -define void @vpow_noeq025_const(double* nocapture %y, double* nocapture readonly %x) { +define void @vpow_noeq025_const(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vpow_noeq025_const ; CHECK-PWR10: __powd2_P10 ; CHECK-PWR9: __powd2_P9 @@ -134,23 +125,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr double, double* %y, i64 %index - %next.gep19 = getelementptr double, double* %x, i64 %index - %0 = bitcast double* %next.gep19 to <2 x double>* - %wide.load = load <2 x double>, <2 x double>* %0, align 8 - %1 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) - %2 = bitcast double* %next.gep to <2 x double>* - store <2 x double> %1, <2 x double>* %2, align 8 + %next.gep = getelementptr double, ptr %y, i64 %index + %next.gep19 = getelementptr double, ptr %x, i64 %index + %wide.load = load <2 x double>, ptr %next.gep19, align 8 + %0 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) + store <2 x double> %0, ptr %next.gep, align 8 %index.next = add i64 %index, 2 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is 0.75 -define void @vpow_075(double* nocapture %y, double* nocapture readonly %x) { +define void @vpow_075(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vpow_075 ; CHECK-NOT: __powd2_P{{[7,8,9,10]}} ; CHECK: xvrsqrtesp @@ -160,23 +149,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr double, double* %y, i64 %index - %next.gep19 = getelementptr double, double* %x, i64 %index - %0 = bitcast double* %next.gep19 to <2 x double>* - %wide.load = load <2 x double>, <2 x double>* %0, align 8 - %1 = call ninf afn <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) - %2 = bitcast double* %next.gep to <2 x double>* - store <2 x double> %1, <2 x double>* %2, align 8 + %next.gep = getelementptr double, ptr %y, i64 %index + %next.gep19 = getelementptr double, ptr %x, i64 %index + %wide.load = load <2 x double>, ptr %next.gep19, align 8 + %0 = call ninf afn <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) + store <2 x double> %0, ptr %next.gep, align 8 %index.next = add i64 %index, 2 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is 0.25 -define void @vpow_025(double* nocapture %y, double* nocapture readonly %x) { +define void @vpow_025(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vpow_025 ; CHECK-NOT: __powd2_P{{[7,8,9,10]}} ; CHECK: xvrsqrtesp @@ -186,23 +173,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr double, double* %y, i64 %index - %next.gep19 = getelementptr double, double* %x, i64 %index - %0 = bitcast double* %next.gep19 to <2 x double>* - %wide.load = load <2 x double>, <2 x double>* %0, align 8 - %1 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) - %2 = bitcast double* %next.gep to <2 x double>* - store <2 x double> %1, <2 x double>* %2, align 8 + %next.gep = getelementptr double, ptr %y, i64 %index + %next.gep19 = getelementptr double, ptr %x, i64 %index + %wide.load = load <2 x double>, ptr %next.gep19, align 8 + %0 = call ninf afn nsz <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) + store <2 x double> %0, ptr %next.gep, align 8 %index.next = add i64 %index, 2 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is 0.75 but no proper fast-math flags -define void @vpow_075_nofast(double* nocapture %y, double* nocapture readonly %x) { +define void @vpow_075_nofast(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vpow_075_nofast ; CHECK-PWR10: __powd2_P10 ; CHECK-PWR9: __powd2_P9 @@ -215,23 +200,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr double, double* %y, i64 %index - %next.gep19 = getelementptr double, double* %x, i64 %index - %0 = bitcast double* %next.gep19 to <2 x double>* - %wide.load = load <2 x double>, <2 x double>* %0, align 8 - %1 = call <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) - %2 = bitcast double* %next.gep to <2 x double>* - store <2 x double> %1, <2 x double>* %2, align 8 + %next.gep = getelementptr double, ptr %y, i64 %index + %next.gep19 = getelementptr double, ptr %x, i64 %index + %wide.load = load <2 x double>, ptr %next.gep19, align 8 + %0 = call <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) + store <2 x double> %0, ptr %next.gep, align 8 %index.next = add i64 %index, 2 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is 0.25 but no proper fast-math flags -define void @vpow_025_nofast(double* nocapture %y, double* nocapture readonly %x) { +define void @vpow_025_nofast(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vpow_025_nofast ; CHECK-PWR10: __powd2_P10 ; CHECK-PWR9: __powd2_P9 @@ -244,16 +227,14 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr double, double* %y, i64 %index - %next.gep19 = getelementptr double, double* %x, i64 %index - %0 = bitcast double* %next.gep19 to <2 x double>* - %wide.load = load <2 x double>, <2 x double>* %0, align 8 - %1 = call <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) - %2 = bitcast double* %next.gep to <2 x double>* - store <2 x double> %1, <2 x double>* %2, align 8 + %next.gep = getelementptr double, ptr %y, i64 %index + %next.gep19 = getelementptr double, ptr %x, i64 %index + %wide.load = load <2 x double>, ptr %next.gep19, align 8 + %0 = call <2 x double> @__powd2(<2 x double> %wide.load, <2 x double> ) + store <2 x double> %0, ptr %next.gep, align 8 %index.next = add i64 %index, 2 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void Index: llvm/test/CodeGen/PowerPC/power9-moves-and-splats.ll =================================================================== --- llvm/test/CodeGen/PowerPC/power9-moves-and-splats.ll +++ llvm/test/CodeGen/PowerPC/power9-moves-and-splats.ll @@ -58,7 +58,7 @@ ret i64 %0 } -define <4 x i32> @test4(i32* nocapture readonly %in) { +define <4 x i32> @test4(ptr nocapture readonly %in) { ; CHECK-LABEL: test4: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxvwsx v2, 0, r3 @@ -70,13 +70,13 @@ ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* %in, align 4 + %0 = load i32, ptr %in, align 4 %splat.splatinsert = insertelement <4 x i32> undef, i32 %0, i32 0 %splat.splat = shufflevector <4 x i32> %splat.splatinsert, <4 x i32> undef, <4 x i32> zeroinitializer ret <4 x i32> %splat.splat } -define <4 x float> @test5(float* nocapture readonly %in) { +define <4 x float> @test5(ptr nocapture readonly %in) { ; CHECK-LABEL: test5: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxvwsx v2, 0, r3 @@ -88,7 +88,7 @@ ; CHECK-BE-NEXT: blr entry: - %0 = load float, float* %in, align 4 + %0 = load float, ptr %in, align 4 %splat.splatinsert = insertelement <4 x float> undef, float %0, i32 0 %splat.splat = shufflevector <4 x float> %splat.splatinsert, <4 x float> undef, <4 x i32> zeroinitializer ret <4 x float> %splat.splat @@ -110,7 +110,7 @@ ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* @Globi, align 4 + %0 = load i32, ptr @Globi, align 4 %splat.splatinsert = insertelement <4 x i32> undef, i32 %0, i32 0 %splat.splat = shufflevector <4 x i32> %splat.splatinsert, <4 x i32> undef, <4 x i32> zeroinitializer ret <4 x i32> %splat.splat @@ -132,7 +132,7 @@ ; CHECK-BE-NEXT: blr entry: - %0 = load float, float* @Globf, align 4 + %0 = load float, ptr @Globf, align 4 %splat.splatinsert = insertelement <4 x float> undef, float %0, i32 0 %splat.splat = shufflevector <4 x float> %splat.splatinsert, <4 x float> undef, <4 x i32> zeroinitializer ret <4 x float> %splat.splat @@ -243,7 +243,7 @@ ret <16 x i8> } -define <4 x i32> @test14(<4 x i32> %a, i32* nocapture readonly %b) { +define <4 x i32> @test14(<4 x i32> %a, ptr nocapture readonly %b) { ; CHECK-LABEL: test14: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwz r3, 0(r5) @@ -263,10 +263,10 @@ ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* %b, align 4 + %0 = load i32, ptr %b, align 4 %splat.splatinsert = insertelement <4 x i32> undef, i32 %0, i32 0 %splat.splat = shufflevector <4 x i32> %splat.splatinsert, <4 x i32> undef, <4 x i32> zeroinitializer %1 = add i32 %0, 5 - store i32 %1, i32* %b, align 4 + store i32 %1, ptr %b, align 4 ret <4 x i32> %splat.splat } Index: llvm/test/CodeGen/PowerPC/powf_massv_075_025exp.ll =================================================================== --- llvm/test/CodeGen/PowerPC/powf_massv_075_025exp.ll +++ llvm/test/CodeGen/PowerPC/powf_massv_075_025exp.ll @@ -7,7 +7,7 @@ ; RUN: llc -vector-library=MASSV < %s -mtriple=powerpc-ibm-aix-xcoff -mcpu=pwr7 | FileCheck -check-prefixes=CHECK-PWR7 %s ; Exponent is a variable -define void @vspow_var(float* nocapture %z, float* nocapture readonly %y, float* nocapture readonly %x) { +define void @vspow_var(ptr nocapture %z, ptr nocapture readonly %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vspow_var ; CHECK-PWR10: __powf4_P10 ; CHECK-PWR9: __powf4_P9 @@ -19,26 +19,23 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr float, float* %z, i64 %index - %next.gep31 = getelementptr float, float* %y, i64 %index - %next.gep32 = getelementptr float, float* %x, i64 %index - %0 = bitcast float* %next.gep32 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %0, align 4 - %1 = bitcast float* %next.gep31 to <4 x float>* - %wide.load33 = load <4 x float>, <4 x float>* %1, align 4 - %2 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> %wide.load33) - %3 = bitcast float* %next.gep to <4 x float>* - store <4 x float> %2, <4 x float>* %3, align 4 + %next.gep = getelementptr float, ptr %z, i64 %index + %next.gep31 = getelementptr float, ptr %y, i64 %index + %next.gep32 = getelementptr float, ptr %x, i64 %index + %wide.load = load <4 x float>, ptr %next.gep32, align 4 + %wide.load33 = load <4 x float>, ptr %next.gep31, align 4 + %0 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> %wide.load33) + store <4 x float> %0, ptr %next.gep, align 4 %index.next = add i64 %index, 4 - %4 = icmp eq i64 %index.next, 1024 - br i1 %4, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is a constant != 0.75 and !=0.25 -define void @vspow_const(float* nocapture %y, float* nocapture readonly %x) { +define void @vspow_const(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vspow_const ; CHECK-PWR10: __powf4_P10 ; CHECK-PWR9: __powf4_P9 @@ -50,23 +47,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr float, float* %y, i64 %index - %next.gep19 = getelementptr float, float* %x, i64 %index - %0 = bitcast float* %next.gep19 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %0, align 4 - %1 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) - %2 = bitcast float* %next.gep to <4 x float>* - store <4 x float> %1, <4 x float>* %2, align 4 + %next.gep = getelementptr float, ptr %y, i64 %index + %next.gep19 = getelementptr float, ptr %x, i64 %index + %wide.load = load <4 x float>, ptr %next.gep19, align 4 + %0 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) + store <4 x float> %0, ptr %next.gep, align 4 %index.next = add i64 %index, 4 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is a constant != 0.75 and !=0.25 and they are different -define void @vspow_neq_const(float* nocapture %y, float* nocapture readonly %x) { +define void @vspow_neq_const(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vspow_neq_const ; CHECK-PWR10: __powf4_P10 ; CHECK-PWR9: __powf4_P9 @@ -78,23 +73,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr float, float* %y, i64 %index - %next.gep19 = getelementptr float, float* %x, i64 %index - %0 = bitcast float* %next.gep19 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %0, align 4 - %1 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) - %2 = bitcast float* %next.gep to <4 x float>* - store <4 x float> %1, <4 x float>* %2, align 4 + %next.gep = getelementptr float, ptr %y, i64 %index + %next.gep19 = getelementptr float, ptr %x, i64 %index + %wide.load = load <4 x float>, ptr %next.gep19, align 4 + %0 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) + store <4 x float> %0, ptr %next.gep, align 4 %index.next = add i64 %index, 4 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is a constant != 0.75 and !=0.25 -define void @vspow_neq075_const(float* nocapture %y, float* nocapture readonly %x) { +define void @vspow_neq075_const(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vspow_neq075_const ; CHECK-PWR10: __powf4_P10 ; CHECK-PWR9: __powf4_P9 @@ -106,23 +99,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr float, float* %y, i64 %index - %next.gep19 = getelementptr float, float* %x, i64 %index - %0 = bitcast float* %next.gep19 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %0, align 4 - %1 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) - %2 = bitcast float* %next.gep to <4 x float>* - store <4 x float> %1, <4 x float>* %2, align 4 + %next.gep = getelementptr float, ptr %y, i64 %index + %next.gep19 = getelementptr float, ptr %x, i64 %index + %wide.load = load <4 x float>, ptr %next.gep19, align 4 + %0 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) + store <4 x float> %0, ptr %next.gep, align 4 %index.next = add i64 %index, 4 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is a constant != 0.75 and !=0.25 -define void @vspow_neq025_const(float* nocapture %y, float* nocapture readonly %x) { +define void @vspow_neq025_const(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vspow_neq025_const ; CHECK-PWR10: __powf4_P10 ; CHECK-PWR9: __powf4_P9 @@ -134,23 +125,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr float, float* %y, i64 %index - %next.gep19 = getelementptr float, float* %x, i64 %index - %0 = bitcast float* %next.gep19 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %0, align 4 - %1 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) - %2 = bitcast float* %next.gep to <4 x float>* - store <4 x float> %1, <4 x float>* %2, align 4 + %next.gep = getelementptr float, ptr %y, i64 %index + %next.gep19 = getelementptr float, ptr %x, i64 %index + %wide.load = load <4 x float>, ptr %next.gep19, align 4 + %0 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) + store <4 x float> %0, ptr %next.gep, align 4 %index.next = add i64 %index, 4 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is 0.75 -define void @vspow_075(float* nocapture %y, float* nocapture readonly %x) { +define void @vspow_075(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vspow_075 ; CHECK-NOT: __powf4_P{{[7,8,9,10]}} ; CHECK: xvrsqrtesp @@ -160,23 +149,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr float, float* %y, i64 %index - %next.gep19 = getelementptr float, float* %x, i64 %index - %0 = bitcast float* %next.gep19 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %0, align 4 - %1 = call ninf afn <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) - %2 = bitcast float* %next.gep to <4 x float>* - store <4 x float> %1, <4 x float>* %2, align 4 + %next.gep = getelementptr float, ptr %y, i64 %index + %next.gep19 = getelementptr float, ptr %x, i64 %index + %wide.load = load <4 x float>, ptr %next.gep19, align 4 + %0 = call ninf afn <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) + store <4 x float> %0, ptr %next.gep, align 4 %index.next = add i64 %index, 4 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is 0.25 -define void @vspow_025(float* nocapture %y, float* nocapture readonly %x) { +define void @vspow_025(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vspow_025 ; CHECK-NOT: __powf4_P{{[7,8,9,10]}} ; CHECK: xvrsqrtesp @@ -186,23 +173,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr float, float* %y, i64 %index - %next.gep19 = getelementptr float, float* %x, i64 %index - %0 = bitcast float* %next.gep19 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %0, align 4 - %1 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) - %2 = bitcast float* %next.gep to <4 x float>* - store <4 x float> %1, <4 x float>* %2, align 4 + %next.gep = getelementptr float, ptr %y, i64 %index + %next.gep19 = getelementptr float, ptr %x, i64 %index + %wide.load = load <4 x float>, ptr %next.gep19, align 4 + %0 = call ninf afn nsz <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) + store <4 x float> %0, ptr %next.gep, align 4 %index.next = add i64 %index, 4 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is 0.75 but no proper fast-math flags -define void @vspow_075_nofast(float* nocapture %y, float* nocapture readonly %x) { +define void @vspow_075_nofast(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vspow_075_nofast ; CHECK-PWR10: __powf4_P10 ; CHECK-PWR9: __powf4_P9 @@ -215,23 +200,21 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr float, float* %y, i64 %index - %next.gep19 = getelementptr float, float* %x, i64 %index - %0 = bitcast float* %next.gep19 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %0, align 4 - %1 = call <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) - %2 = bitcast float* %next.gep to <4 x float>* - store <4 x float> %1, <4 x float>* %2, align 4 + %next.gep = getelementptr float, ptr %y, i64 %index + %next.gep19 = getelementptr float, ptr %x, i64 %index + %wide.load = load <4 x float>, ptr %next.gep19, align 4 + %0 = call <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) + store <4 x float> %0, ptr %next.gep, align 4 %index.next = add i64 %index, 4 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void } ; Exponent is 0.25 but no proper fast-math flags -define void @vspow_025_nofast(float* nocapture %y, float* nocapture readonly %x) { +define void @vspow_025_nofast(ptr nocapture %y, ptr nocapture readonly %x) { ; CHECK-LABEL: @vspow_025_nofast ; CHECK-PWR10: __powf4_P10 ; CHECK-PWR9: __powf4_P9 @@ -244,16 +227,14 @@ vector.body: %index = phi i64 [ %index.next, %vector.body ], [ 0, %entry ] - %next.gep = getelementptr float, float* %y, i64 %index - %next.gep19 = getelementptr float, float* %x, i64 %index - %0 = bitcast float* %next.gep19 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %0, align 4 - %1 = call <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) - %2 = bitcast float* %next.gep to <4 x float>* - store <4 x float> %1, <4 x float>* %2, align 4 + %next.gep = getelementptr float, ptr %y, i64 %index + %next.gep19 = getelementptr float, ptr %x, i64 %index + %wide.load = load <4 x float>, ptr %next.gep19, align 4 + %0 = call <4 x float> @__powf4(<4 x float> %wide.load, <4 x float> ) + store <4 x float> %0, ptr %next.gep, align 4 %index.next = add i64 %index, 4 - %3 = icmp eq i64 %index.next, 1024 - br i1 %3, label %for.end, label %vector.body + %1 = icmp eq i64 %index.next, 1024 + br i1 %1, label %for.end, label %vector.body for.end: ret void Index: llvm/test/CodeGen/PowerPC/ppc-32bit-build-vector.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-32bit-build-vector.ll +++ llvm/test/CodeGen/PowerPC/ppc-32bit-build-vector.ll @@ -59,7 +59,7 @@ while.body: ; preds = %while.body, %entry %newelement = phi i32 [ 0, %entry ], [ %5, %while.body ] %0 = insertelement <4 x i32> , i32 %newelement, i32 0 - %1 = load <4 x i32>, <4 x i32>* undef, align 1 + %1 = load <4 x i32>, ptr undef, align 1 %2 = add <4 x i32> %1, %0 %3 = shufflevector <4 x i32> %2, <4 x i32> undef, <4 x i32> %4 = add <4 x i32> %2, %3 Index: llvm/test/CodeGen/PowerPC/ppc-32bit-shift.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-32bit-shift.ll +++ llvm/test/CodeGen/PowerPC/ppc-32bit-shift.ll @@ -5,7 +5,7 @@ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64 \ ; RUN: -mcpu=pwr9 < %s | FileCheck %s --check-prefix=64BIT -define dso_local void @foo(i32 %inta, i64* %long_intb) { +define dso_local void @foo(i32 %inta, ptr %long_intb) { ; 32BIT-LABEL: foo: ; 32BIT: # %bb.0: # %entry ; 32BIT-NEXT: srawi 5, 3, 31 @@ -24,6 +24,6 @@ entry: %conv = sext i32 %inta to i64 %shl = shl nsw i64 %conv, 8 - store i64 %shl, i64* %long_intb, align 8 + store i64 %shl, ptr %long_intb, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/ppc-ctr-dead-code.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-ctr-dead-code.ll +++ llvm/test/CodeGen/PowerPC/ppc-ctr-dead-code.ll @@ -4,7 +4,7 @@ ; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -verify-machineinstrs | FileCheck %s ; Function Attrs: norecurse nounwind readonly -define signext i32 @limit_loop(i32 signext %iters, i32* nocapture readonly %vec, i32 signext %limit) local_unnamed_addr { +define signext i32 @limit_loop(i32 signext %iters, ptr nocapture readonly %vec, i32 signext %limit) local_unnamed_addr { entry: %cmp5 = icmp sgt i32 %iters, 0 br i1 %cmp5, label %for.body.preheader, label %cleanup @@ -19,8 +19,8 @@ for.body: ; preds = %for.body.preheader, %for.cond %indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %for.cond ] - %arrayidx = getelementptr inbounds i32, i32* %vec, i64 %indvars.iv - %1 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %vec, i64 %indvars.iv + %1 = load i32, ptr %arrayidx, align 4 %cmp1 = icmp slt i32 %1, %limit %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 br i1 %cmp1, label %for.cond, label %cleanup Index: llvm/test/CodeGen/PowerPC/ppc-disable-non-volatile-cr.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-disable-non-volatile-cr.ll +++ llvm/test/CodeGen/PowerPC/ppc-disable-non-volatile-cr.ll @@ -29,11 +29,11 @@ br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %entry - tail call void bitcast (void (...)* @fa to void ()*)() + tail call void @fa() br label %if.end if.else: ; preds = %entry - tail call void bitcast (void (...)* @fb to void ()*)() + tail call void @fb() br label %if.end if.end: ; preds = %if.else, %if.then Index: llvm/test/CodeGen/PowerPC/ppc-empty-fs.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-empty-fs.ll +++ llvm/test/CodeGen/PowerPC/ppc-empty-fs.ll @@ -8,21 +8,18 @@ %struct.fab = type { float, float } ; Function Attrs: nounwind -define void @func_fab(%struct.fab* noalias sret(%struct.fab) %agg.result, i64 %x.coerce) #0 { +define void @func_fab(ptr noalias sret(%struct.fab) %agg.result, i64 %x.coerce) #0 { entry: %x = alloca %struct.fab, align 8 - %0 = bitcast %struct.fab* %x to i64* - store i64 %x.coerce, i64* %0, align 1 - %1 = bitcast %struct.fab* %agg.result to i8* - %2 = bitcast %struct.fab* %x to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %1, i8* align 4 %2, i64 8, i1 false) + store i64 %x.coerce, ptr %x, align 1 + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %agg.result, ptr align 4 %x, i64 8, i1 false) ret void } ; CHECK: func_fab ; Function Attrs: nounwind -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #1 +declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) #1 attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "target-features"="" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { nounwind } Index: llvm/test/CodeGen/PowerPC/ppc-label.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-label.ll +++ llvm/test/CodeGen/PowerPC/ppc-label.ll @@ -13,7 +13,7 @@ ; }; ; ; unsigned int ret = foo(); -; void* g = (void *) ((unsigned int)&&L + arr[ret]); +; ptr g = (ptr) ((unsigned int)&&L + arr[ret]); ; goto *g; ; ; x: @@ -32,7 +32,7 @@ br label %L L: ; preds = %L, %entry - indirectbr i8* inttoptr (i32 add (i32 ptrtoint (i8* blockaddress(@main, %L) to i32), i32 sub (i32 ptrtoint (i8* blockaddress(@main, %return) to i32), i32 ptrtoint (i8* blockaddress(@main, %L) to i32))) to i8*), [label %return, label %L] + indirectbr ptr inttoptr (i32 add (i32 ptrtoint (ptr blockaddress(@main, %L) to i32), i32 sub (i32 ptrtoint (ptr blockaddress(@main, %return) to i32), i32 ptrtoint (ptr blockaddress(@main, %L) to i32))) to ptr), [label %return, label %L] return: ; preds = %L ret i32 15 Index: llvm/test/CodeGen/PowerPC/ppc-label2.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-label2.ll +++ llvm/test/CodeGen/PowerPC/ppc-label2.ll @@ -9,7 +9,7 @@ br label %__here __here: ; preds = %entry - ret i64 ptrtoint (i8* blockaddress(@foo, %__here) to i64) + ret i64 ptrtoint (ptr blockaddress(@foo, %__here) to i64) } ; CHECK-PIC32: lwz {{r[0-9]+}}, .LC0-.LTOC(r30) Index: llvm/test/CodeGen/PowerPC/ppc-partword-atomic.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-partword-atomic.ll +++ llvm/test/CodeGen/PowerPC/ppc-partword-atomic.ll @@ -52,9 +52,9 @@ ; PWR9-NEXT: li 3, 55 ; PWR9-NEXT: blr entry: - %0 = atomicrmw xchg i8* getelementptr inbounds ({ i8 }, { i8 }* @value8, i64 0, i32 0), i8 %val seq_cst, align 1 + %0 = atomicrmw xchg ptr @value8, i8 %val seq_cst, align 1 %conv = zext i8 %0 to i32 - store i32 %conv, i32* @global_int, align 4 + store i32 %conv, ptr @global_int, align 4 ret i32 55 } @@ -105,9 +105,9 @@ ; PWR9-NEXT: li 3, 55 ; PWR9-NEXT: blr entry: - %0 = atomicrmw xchg i16* getelementptr inbounds ({ i16 }, { i16 }* @value16, i64 0, i32 0), i16 %val seq_cst, align 2 + %0 = atomicrmw xchg ptr @value16, i16 %val seq_cst, align 2 %conv = zext i16 %0 to i32 - store i32 %conv, i32* @global_int, align 4 + store i32 %conv, ptr @global_int, align 4 ret i32 55 } Index: llvm/test/CodeGen/PowerPC/ppc-prologue.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-prologue.ll +++ llvm/test/CodeGen/PowerPC/ppc-prologue.ll @@ -7,20 +7,20 @@ ; CHECK-NEXT: stw 31, 28(1) ; CHECK: mr 31, 1 entry: - %a_addr = alloca i32 ; [#uses=2] - %retval = alloca i32 ; [#uses=2] - %0 = alloca i32 ; [#uses=2] + %a_addr = alloca i32 ; [#uses=2] + %retval = alloca i32 ; [#uses=2] + %0 = alloca i32 ; [#uses=2] %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store i32 %a, i32* %a_addr - %1 = call i32 @_Z3barPi(i32* %a_addr) ; [#uses=1] - store i32 %1, i32* %0, align 4 - %2 = load i32, i32* %0, align 4 ; [#uses=1] - store i32 %2, i32* %retval, align 4 + store i32 %a, ptr %a_addr + %1 = call i32 @_Z3barPi(ptr %a_addr) ; [#uses=1] + store i32 %1, ptr %0, align 4 + %2 = load i32, ptr %0, align 4 ; [#uses=1] + store i32 %2, ptr %retval, align 4 br label %return return: ; preds = %entry - %retval1 = load i32, i32* %retval ; [#uses=1] + %retval1 = load i32, ptr %retval ; [#uses=1] ret i32 %retval1 } -declare i32 @_Z3barPi(i32*) +declare i32 @_Z3barPi(ptr) Index: llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll +++ llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll @@ -61,8 +61,8 @@ br i1 %tmp2, label %true, label %false true: - store i32 %a, i32* %tmp, align 4 - %tmp4 = call i32 @doSomething(i32 0, i32* %tmp) + store i32 %a, ptr %tmp, align 4 + %tmp4 = call i32 @doSomething(i32 0, ptr %tmp) br label %false false: @@ -71,7 +71,7 @@ } ; Function Attrs: optsize -declare i32 @doSomething(i32, i32*) +declare i32 @doSomething(i32, ptr) ; Check that we do not perform the restore inside the loop whereas the save @@ -133,7 +133,7 @@ for.body: ; preds = %entry, %for.body %i.05 = phi i32 [ %inc, %for.body ], [ 0, %for.preheader ] %sum.04 = phi i32 [ %add, %for.body ], [ 0, %for.preheader ] - %call = tail call i32 bitcast (i32 (...)* @something to i32 ()*)() + %call = tail call i32 @something() %add = add nsw i32 %call, %sum.04 %inc = add nuw nsw i32 %i.05, 1 %exitcond = icmp eq i32 %inc, 10 @@ -190,7 +190,7 @@ for.body: ; preds = %for.body, %entry %i.04 = phi i32 [ 0, %for.preheader ], [ %inc, %for.body ] %sum.03 = phi i32 [ 0, %for.preheader ], [ %add, %for.body ] - %call = tail call i32 bitcast (i32 (...)* @something to i32 ()*)() + %call = tail call i32 @something() %add = add nsw i32 %call, %sum.03 %inc = add nuw nsw i32 %i.04, 1 %exitcond = icmp eq i32 %inc, 10 @@ -277,14 +277,14 @@ for.body: ; preds = %entry, %for.body %i.05 = phi i32 [ %inc, %for.body ], [ 0, %for.preheader ] %sum.04 = phi i32 [ %add, %for.body ], [ 0, %for.preheader ] - %call = tail call i32 bitcast (i32 (...)* @something to i32 ()*)() + %call = tail call i32 @something() %add = add nsw i32 %call, %sum.04 %inc = add nuw nsw i32 %i.05, 1 %exitcond = icmp eq i32 %inc, 10 br i1 %exitcond, label %for.end, label %for.body for.end: ; preds = %for.body - tail call void bitcast (void (...)* @somethingElse to void ()*)() + tail call void @somethingElse() %shl = shl i32 %add, 3 br label %if.end @@ -364,13 +364,13 @@ br i1 %tobool, label %if.else, label %if.then if.then: ; preds = %entry - tail call void bitcast (void (...)* @somethingElse to void ()*)() + tail call void @somethingElse() br label %for.body for.body: ; preds = %for.body, %if.then %i.05 = phi i32 [ 0, %if.then ], [ %inc, %for.body ] %sum.04 = phi i32 [ 0, %if.then ], [ %add, %for.body ] - %call = tail call i32 bitcast (i32 (...)* @something to i32 ()*)() + %call = tail call i32 @something() %add = add nsw i32 %call, %sum.04 %inc = add nuw nsw i32 %i.05, 1 %exitcond = icmp eq i32 %inc, 10 @@ -589,9 +589,9 @@ for.body: ; preds = %for.body, %entry %sum.03 = phi i32 [ 0, %if.then ], [ %add, %for.body ] - %call = tail call i32 bitcast (i32 (...)* @something to i32 ()*)() + %call = tail call i32 @something() %add = add nsw i32 %call, %sum.03 - store i32 %add, i32* %ptr + store i32 %add, ptr %ptr br label %for.body if.end: @@ -613,7 +613,7 @@ %sum.03 = phi i32 [ 0, %if.then ], [ %add, %body1 ], [ 1, %body2] %call = tail call i32 asm "mftb $0, 268", "=r,~{r14}"() %add = add nsw i32 %call, %sum.03 - store i32 %add, i32* %ptr + store i32 %add, ptr %ptr br i1 undef, label %body1, label %body2 body1: @@ -639,21 +639,19 @@ br i1 undef, label %loop2a, label %end loop1: ; preds = %loop2a, %loop2b - %var.phi = phi i32* [ %next.phi, %loop2b ], [ %var, %loop2a ] - %next.phi = phi i32* [ %next.load, %loop2b ], [ %next.var, %loop2a ] - %0 = icmp eq i32* %var, null - %next.load = load i32*, i32** undef + %var.phi = phi ptr [ %next.phi, %loop2b ], [ %var, %loop2a ] + %next.phi = phi ptr [ %next.load, %loop2b ], [ %next.var, %loop2a ] + %0 = icmp eq ptr %var, null + %next.load = load ptr, ptr undef br i1 %0, label %loop2a, label %loop2b loop2a: ; preds = %loop1, %body, %entry - %var = phi i32* [ null, %body ], [ null, %entry ], [ %next.phi, %loop1 ] - %next.var = phi i32* [ undef, %body ], [ null, %entry ], [ %next.load, %loop1 ] + %var = phi ptr [ null, %body ], [ null, %entry ], [ %next.phi, %loop1 ] + %next.var = phi ptr [ undef, %body ], [ null, %entry ], [ %next.load, %loop1 ] br label %loop1 loop2b: ; preds = %loop1 - %gep1 = bitcast i32* %var.phi to i32* - %next.ptr = bitcast i32* %gep1 to i32** - store i32* %next.phi, i32** %next.ptr + store ptr %next.phi, ptr %var.phi br label %loop1 end: @@ -664,8 +662,8 @@ @lock = common global i32 0, align 4 @htindex = common global i32 0, align 4 @stride = common global i32 0, align 4 -@ht = common global i32* null, align 8 -@he = common global i8* null, align 8 +@ht = common global ptr null, align 8 +@he = common global ptr null, align 8 ; Test for a bug that was caused when save point was equal to restore point. ; Function Attrs: nounwind @@ -683,26 +681,26 @@ ; CHECK: blr define signext i32 @transpose() { entry: - %0 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @columns, i64 0, i64 1), align 4 + %0 = load i32, ptr getelementptr inbounds ([0 x i32], ptr @columns, i64 0, i64 1), align 4 %shl.i = shl i32 %0, 7 - %1 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @columns, i64 0, i64 2), align 4 + %1 = load i32, ptr getelementptr inbounds ([0 x i32], ptr @columns, i64 0, i64 2), align 4 %or.i = or i32 %shl.i, %1 %shl1.i = shl i32 %or.i, 7 - %2 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @columns, i64 0, i64 3), align 4 + %2 = load i32, ptr getelementptr inbounds ([0 x i32], ptr @columns, i64 0, i64 3), align 4 %or2.i = or i32 %shl1.i, %2 - %3 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @columns, i64 0, i64 7), align 4 + %3 = load i32, ptr getelementptr inbounds ([0 x i32], ptr @columns, i64 0, i64 7), align 4 %shl3.i = shl i32 %3, 7 - %4 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @columns, i64 0, i64 6), align 4 + %4 = load i32, ptr getelementptr inbounds ([0 x i32], ptr @columns, i64 0, i64 6), align 4 %or4.i = or i32 %shl3.i, %4 %shl5.i = shl i32 %or4.i, 7 - %5 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @columns, i64 0, i64 5), align 4 + %5 = load i32, ptr getelementptr inbounds ([0 x i32], ptr @columns, i64 0, i64 5), align 4 %or6.i = or i32 %shl5.i, %5 %cmp.i = icmp ugt i32 %or2.i, %or6.i br i1 %cmp.i, label %cond.true.i, label %cond.false.i cond.true.i: %shl7.i = shl i32 %or2.i, 7 - %6 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @columns, i64 0, i64 4), align 4 + %6 = load i32, ptr getelementptr inbounds ([0 x i32], ptr @columns, i64 0, i64 4), align 4 %or8.i = or i32 %6, %shl7.i %conv.i = zext i32 %or8.i to i64 %shl9.i = shl nuw nsw i64 %conv.i, 21 @@ -712,7 +710,7 @@ cond.false.i: %shl12.i = shl i32 %or6.i, 7 - %7 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @columns, i64 0, i64 4), align 4 + %7 = load i32, ptr getelementptr inbounds ([0 x i32], ptr @columns, i64 0, i64 4), align 4 %or13.i = or i32 %7, %shl12.i %conv14.i = zext i32 %or13.i to i64 %shl15.i = shl nuw nsw i64 %conv14.i, 21 @@ -724,24 +722,24 @@ %cond.i = phi i64 [ %or11.i, %cond.true.i ], [ %or17.i, %cond.false.i ] %shr.29.i = lshr i64 %cond.i, 17 %conv18.i = trunc i64 %shr.29.i to i32 - store i32 %conv18.i, i32* @lock, align 4 + store i32 %conv18.i, ptr @lock, align 4 %rem.i = srem i64 %cond.i, 1050011 %conv19.i = trunc i64 %rem.i to i32 - store i32 %conv19.i, i32* @htindex, align 4 + store i32 %conv19.i, ptr @htindex, align 4 %rem20.i = urem i32 %conv18.i, 179 %add.i = or i32 %rem20.i, 131072 - store i32 %add.i, i32* @stride, align 4 - %8 = load i32*, i32** @ht, align 8 - %arrayidx = getelementptr inbounds i32, i32* %8, i64 %rem.i - %9 = load i32, i32* %arrayidx, align 4 + store i32 %add.i, ptr @stride, align 4 + %8 = load ptr, ptr @ht, align 8 + %arrayidx = getelementptr inbounds i32, ptr %8, i64 %rem.i + %9 = load i32, ptr %arrayidx, align 4 %cmp1 = icmp eq i32 %9, %conv18.i br i1 %cmp1, label %if.then, label %if.end if.then: %idxprom.lcssa = phi i64 [ %rem.i, %hash.exit ], [ %idxprom.1, %if.end ], [ %idxprom.2, %if.end.1 ], [ %idxprom.3, %if.end.2 ], [ %idxprom.4, %if.end.3 ], [ %idxprom.5, %if.end.4 ], [ %idxprom.6, %if.end.5 ], [ %idxprom.7, %if.end.6 ] - %10 = load i8*, i8** @he, align 8 - %arrayidx3 = getelementptr inbounds i8, i8* %10, i64 %idxprom.lcssa - %11 = load i8, i8* %arrayidx3, align 1 + %10 = load ptr, ptr @he, align 8 + %arrayidx3 = getelementptr inbounds i8, ptr %10, i64 %idxprom.lcssa + %11 = load i8, ptr %arrayidx3, align 1 %conv = sext i8 %11 to i32 br label %cleanup @@ -751,8 +749,8 @@ %sub = add nsw i32 %add, -1050011 %sub.add = select i1 %cmp4, i32 %sub, i32 %add %idxprom.1 = sext i32 %sub.add to i64 - %arrayidx.1 = getelementptr inbounds i32, i32* %8, i64 %idxprom.1 - %12 = load i32, i32* %arrayidx.1, align 4 + %arrayidx.1 = getelementptr inbounds i32, ptr %8, i64 %idxprom.1 + %12 = load i32, ptr %arrayidx.1, align 4 %cmp1.1 = icmp eq i32 %12, %conv18.i br i1 %cmp1.1, label %if.then, label %if.end.1 @@ -766,8 +764,8 @@ %sub.1 = add nsw i32 %add.1, -1050011 %sub.add.1 = select i1 %cmp4.1, i32 %sub.1, i32 %add.1 %idxprom.2 = sext i32 %sub.add.1 to i64 - %arrayidx.2 = getelementptr inbounds i32, i32* %8, i64 %idxprom.2 - %13 = load i32, i32* %arrayidx.2, align 4 + %arrayidx.2 = getelementptr inbounds i32, ptr %8, i64 %idxprom.2 + %13 = load i32, ptr %arrayidx.2, align 4 %cmp1.2 = icmp eq i32 %13, %conv18.i br i1 %cmp1.2, label %if.then, label %if.end.2 @@ -777,8 +775,8 @@ %sub.2 = add nsw i32 %add.2, -1050011 %sub.add.2 = select i1 %cmp4.2, i32 %sub.2, i32 %add.2 %idxprom.3 = sext i32 %sub.add.2 to i64 - %arrayidx.3 = getelementptr inbounds i32, i32* %8, i64 %idxprom.3 - %14 = load i32, i32* %arrayidx.3, align 4 + %arrayidx.3 = getelementptr inbounds i32, ptr %8, i64 %idxprom.3 + %14 = load i32, ptr %arrayidx.3, align 4 %cmp1.3 = icmp eq i32 %14, %conv18.i br i1 %cmp1.3, label %if.then, label %if.end.3 @@ -788,8 +786,8 @@ %sub.3 = add nsw i32 %add.3, -1050011 %sub.add.3 = select i1 %cmp4.3, i32 %sub.3, i32 %add.3 %idxprom.4 = sext i32 %sub.add.3 to i64 - %arrayidx.4 = getelementptr inbounds i32, i32* %8, i64 %idxprom.4 - %15 = load i32, i32* %arrayidx.4, align 4 + %arrayidx.4 = getelementptr inbounds i32, ptr %8, i64 %idxprom.4 + %15 = load i32, ptr %arrayidx.4, align 4 %cmp1.4 = icmp eq i32 %15, %conv18.i br i1 %cmp1.4, label %if.then, label %if.end.4 @@ -799,8 +797,8 @@ %sub.4 = add nsw i32 %add.4, -1050011 %sub.add.4 = select i1 %cmp4.4, i32 %sub.4, i32 %add.4 %idxprom.5 = sext i32 %sub.add.4 to i64 - %arrayidx.5 = getelementptr inbounds i32, i32* %8, i64 %idxprom.5 - %16 = load i32, i32* %arrayidx.5, align 4 + %arrayidx.5 = getelementptr inbounds i32, ptr %8, i64 %idxprom.5 + %16 = load i32, ptr %arrayidx.5, align 4 %cmp1.5 = icmp eq i32 %16, %conv18.i br i1 %cmp1.5, label %if.then, label %if.end.5 @@ -810,8 +808,8 @@ %sub.5 = add nsw i32 %add.5, -1050011 %sub.add.5 = select i1 %cmp4.5, i32 %sub.5, i32 %add.5 %idxprom.6 = sext i32 %sub.add.5 to i64 - %arrayidx.6 = getelementptr inbounds i32, i32* %8, i64 %idxprom.6 - %17 = load i32, i32* %arrayidx.6, align 4 + %arrayidx.6 = getelementptr inbounds i32, ptr %8, i64 %idxprom.6 + %17 = load i32, ptr %arrayidx.6, align 4 %cmp1.6 = icmp eq i32 %17, %conv18.i br i1 %cmp1.6, label %if.then, label %if.end.6 @@ -821,8 +819,8 @@ %sub.6 = add nsw i32 %add.6, -1050011 %sub.add.6 = select i1 %cmp4.6, i32 %sub.6, i32 %add.6 %idxprom.7 = sext i32 %sub.add.6 to i64 - %arrayidx.7 = getelementptr inbounds i32, i32* %8, i64 %idxprom.7 - %18 = load i32, i32* %arrayidx.7, align 4 + %arrayidx.7 = getelementptr inbounds i32, ptr %8, i64 %idxprom.7 + %18 = load i32, ptr %arrayidx.7, align 4 %cmp1.7 = icmp eq i32 %18, %conv18.i br i1 %cmp1.7, label %if.then, label %cleanup } Index: llvm/test/CodeGen/PowerPC/ppc-vaarg-agg.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc-vaarg-agg.ll +++ llvm/test/CodeGen/PowerPC/ppc-vaarg-agg.ll @@ -2,9 +2,9 @@ target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32" target triple = "powerpc-montavista-linux-gnuspe" -%struct.__va_list_tag.0.9.18.23.32.41.48.55.62.67.72.77.82.87.90.93.96.101.105 = type { i8, i8, i16, i8*, i8* } +%struct.__va_list_tag.0.9.18.23.32.41.48.55.62.67.72.77.82.87.90.93.96.101.105 = type { i8, i8, i16, ptr, ptr } -define fastcc void @test1(%struct.__va_list_tag.0.9.18.23.32.41.48.55.62.67.72.77.82.87.90.93.96.101.105* %args) { +define fastcc void @test1(ptr %args) { entry: br i1 undef, label %repeat, label %maxlen_reached @@ -30,7 +30,7 @@ unreachable sw.bb323: ; preds = %repeat - %0 = va_arg %struct.__va_list_tag.0.9.18.23.32.41.48.55.62.67.72.77.82.87.90.93.96.101.105* %args, i32 + %0 = va_arg ptr %args, i32 unreachable sw.bb326: ; preds = %repeat Index: llvm/test/CodeGen/PowerPC/ppc32-align-long-double-sf.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-align-long-double-sf.ll +++ llvm/test/CodeGen/PowerPC/ppc32-align-long-double-sf.ll @@ -6,15 +6,15 @@ define void @foo() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @x, align 16 - %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i32 0, i32 0), ppc_fp128 %0) + %0 = load ppc_fp128, ptr @x, align 16 + %call = tail call i32 (ptr, ...) @printf(ptr @.str, ppc_fp128 %0) ret void } ; Do not skip register r4 because of register alignment in soft float mode. Instead skipping ; put in r4 part of first argument for printf function (long double). ; CHECK: lwzu 4, x@l({{[0-9]+}}) -declare i32 @printf(i8* nocapture readonly, ...) #0 +declare i32 @printf(ptr nocapture readonly, ...) #0 attributes #0 = { "use-soft-float"="true" } Index: llvm/test/CodeGen/PowerPC/ppc32-constant-BE-ppcf128.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-constant-BE-ppcf128.ll +++ llvm/test/CodeGen/PowerPC/ppc32-constant-BE-ppcf128.ll @@ -7,7 +7,7 @@ define i32 @main() #0 { entry: - %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i32 0, i32 0), ppc_fp128 0xM3FF00000000000000000000000000000) + %call = tail call i32 (ptr, ...) @printf(ptr @.str, ppc_fp128 0xM3FF00000000000000000000000000000) ret i32 0 } @@ -18,7 +18,7 @@ ; CHECK: li 5, 0 ; CHECK: li 7, 0 -declare i32 @printf(i8* nocapture readonly, ...) +declare i32 @printf(ptr nocapture readonly, ...) attributes #0 = { "use-soft-float"="true" } Index: llvm/test/CodeGen/PowerPC/ppc32-i1-vaarg.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-i1-vaarg.ll +++ llvm/test/CodeGen/PowerPC/ppc32-i1-vaarg.ll @@ -1,10 +1,10 @@ ; RUN: llc -verify-machineinstrs < %s -mcpu=ppc32 | FileCheck %s target triple = "powerpc-unknown-linux-gnu" -declare void @printf(i8*, ...) +declare void @printf(ptr, ...) define void @main() { - call void (i8*, ...) @printf(i8* undef, i1 false) + call void (ptr, ...) @printf(ptr undef, i1 false) ret void } Index: llvm/test/CodeGen/PowerPC/ppc32-i64-to-float-conv.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-i64-to-float-conv.ll +++ llvm/test/CodeGen/PowerPC/ppc32-i64-to-float-conv.ll @@ -15,9 +15,9 @@ define void @foo() local_unnamed_addr { entry: - %0 = load i64, i64* @ll + %0 = load i64, ptr @ll %conv = sitofp i64 %0 to float - store float %conv, float* getelementptr inbounds (%struct.A, %struct.A* @a, i32 0, i32 0) + store float %conv, ptr @a ret void } Index: llvm/test/CodeGen/PowerPC/ppc32-lshrti3.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-lshrti3.ll +++ llvm/test/CodeGen/PowerPC/ppc32-lshrti3.ll @@ -9,7 +9,7 @@ ; Function Attrs: nounwind uwtable define i32 @fn1() #0 { entry: - %.promoted = load i72, i72* inttoptr (i32 1 to i72*), align 4 + %.promoted = load i72, ptr inttoptr (i32 1 to ptr), align 4 br label %while.cond while.cond: ; preds = %while.cond, %entry @@ -28,7 +28,7 @@ while.end: ; preds = %while.cond %bf.set.lcssa = phi i72 [ %bf.set, %while.cond ] - store i72 %bf.set.lcssa, i72* inttoptr (i32 1 to i72*), align 4 + store i72 %bf.set.lcssa, ptr inttoptr (i32 1 to ptr), align 4 ret i32 undef } Index: llvm/test/CodeGen/PowerPC/ppc32-nest.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-nest.ll +++ llvm/test/CodeGen/PowerPC/ppc32-nest.ll @@ -5,22 +5,22 @@ ; Tests that the 'nest' parameter attribute causes the relevant parameter to be ; passed in the right register (r11 for PPC). -define i8* @nest_receiver(i8* nest %arg) nounwind { +define ptr @nest_receiver(ptr nest %arg) nounwind { ; CHECK-LABEL: nest_receiver: ; CHECK: # %bb.0: ; CHECK-NEXT: mr 3, 11 ; CHECK-NEXT: blr - ret i8* %arg + ret ptr %arg } -define i8* @nest_caller(i8* %arg) nounwind { +define ptr @nest_caller(ptr %arg) nounwind { ; CHECK-LABEL: nest_caller: ; CHECK: mr 11, 3 ; CHECK-NEXT: bl nest_receiver ; CHECK: blr - %result = call i8* @nest_receiver(i8* nest %arg) - ret i8* %result + %result = call ptr @nest_receiver(ptr nest %arg) + ret ptr %result } Index: llvm/test/CodeGen/PowerPC/ppc32-pic-large.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-pic-large.ll +++ llvm/test/CodeGen/PowerPC/ppc32-pic-large.ll @@ -16,15 +16,15 @@ define i32 @foo() { entry: - %0 = load i32, i32* @bar, align 4 + %0 = load i32, ptr @bar, align 4 %call = call i32 (i32, ...) @call_foo(i32 %0, i32 0, i32 1, i32 2, i32 4, i32 8, i32 16, i32 32, i32 64) ret i32 %0 } define i32 @load() { entry: - %0 = load i32, i32* @bar1 - %1 = load i32, i32* @bar2 + %0 = load i32, ptr @bar1 + %1 = load i32, ptr @bar2 %2 = add i32 %0, %1 ret i32 %2 } Index: llvm/test/CodeGen/PowerPC/ppc32-pic.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-pic.ll +++ llvm/test/CodeGen/PowerPC/ppc32-pic.ll @@ -8,7 +8,7 @@ define i32 @foo() { entry: - %0 = load i32, i32* @bar, align 4 + %0 = load i32, ptr @bar, align 4 %call = call i32 (i32, ...) @call_foo(i32 %0, i32 0, i32 1, i32 2, i32 4, i32 8, i32 16, i32 32, i32 64) ret i32 0 } Index: llvm/test/CodeGen/PowerPC/ppc32-secure-plt-tls.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-secure-plt-tls.ll +++ llvm/test/CodeGen/PowerPC/ppc32-secure-plt-tls.ll @@ -3,7 +3,7 @@ @a = thread_local local_unnamed_addr global i32 6, align 4 define i32 @main() local_unnamed_addr #0 { entry: - %0 = load i32, i32* @a, align 4 + %0 = load i32, ptr @a, align 4 ret i32 %0 } Index: llvm/test/CodeGen/PowerPC/ppc32-secure-plt-tls2.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-secure-plt-tls2.ll +++ llvm/test/CodeGen/PowerPC/ppc32-secure-plt-tls2.ll @@ -3,7 +3,7 @@ @a = thread_local local_unnamed_addr global i32 6, align 4 define i32 @main() local_unnamed_addr #0 { entry: - %0 = load i32, i32* @a, align 4 + %0 = load i32, ptr @a, align 4 ret i32 %0 } Index: llvm/test/CodeGen/PowerPC/ppc32-skip-regs.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-skip-regs.ll +++ llvm/test/CodeGen/PowerPC/ppc32-skip-regs.ll @@ -8,8 +8,8 @@ define void @foo() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @x, align 16 - %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i32 0, i32 0), ppc_fp128 %0, ppc_fp128 %0) + %0 = load ppc_fp128, ptr @x, align 16 + %call = tail call i32 (ptr, ...) @printf(ptr @.str, ppc_fp128 %0, ppc_fp128 %0) ret void } ; Do not put second argument of function in r8 register, because there is no enough registers @@ -21,6 +21,6 @@ ; CHECK: stw 5, 12(1) ; CHECK: stw 4, 8(1) -declare i32 @printf(i8* nocapture readonly, ...) +declare i32 @printf(ptr nocapture readonly, ...) attributes #0 = { "use-soft-float"="true" } Index: llvm/test/CodeGen/PowerPC/ppc32-vacopy.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc32-vacopy.ll +++ llvm/test/CodeGen/PowerPC/ppc32-vacopy.ll @@ -1,17 +1,15 @@ ; RUN: llc -verify-machineinstrs -mtriple="powerpc-unknown-linux-gnu" -mcpu=ppc64 < %s | FileCheck %s ; PR15286 -%va_list = type {i8, i8, i16, i8*, i8*} -declare void @llvm.va_copy(i8*, i8*) +%va_list = type {i8, i8, i16, ptr, ptr} +declare void @llvm.va_copy(ptr, ptr) define void @test_vacopy() nounwind { entry: %0 = alloca %va_list %1 = alloca %va_list - %2 = bitcast %va_list* %0 to i8* - %3 = bitcast %va_list* %1 to i8* - call void @llvm.va_copy(i8* %3, i8* %2) + call void @llvm.va_copy(ptr %1, ptr %0) ret void } Index: llvm/test/CodeGen/PowerPC/ppc440-fp-basic.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc440-fp-basic.ll +++ llvm/test/CodeGen/PowerPC/ppc440-fp-basic.ll @@ -2,32 +2,28 @@ %0 = type { double, double } -define void @maybe_an_fma(%0* sret(%0) %agg.result, %0* byval(%0) %a, %0* byval(%0) %b, %0* byval(%0) %c) nounwind { +define void @maybe_an_fma(ptr sret(%0) %agg.result, ptr byval(%0) %a, ptr byval(%0) %b, ptr byval(%0) %c) nounwind { entry: - %a.realp = getelementptr inbounds %0, %0* %a, i32 0, i32 0 - %a.real = load double, double* %a.realp - %a.imagp = getelementptr inbounds %0, %0* %a, i32 0, i32 1 - %a.imag = load double, double* %a.imagp - %b.realp = getelementptr inbounds %0, %0* %b, i32 0, i32 0 - %b.real = load double, double* %b.realp - %b.imagp = getelementptr inbounds %0, %0* %b, i32 0, i32 1 - %b.imag = load double, double* %b.imagp + %a.real = load double, ptr %a + %a.imagp = getelementptr inbounds %0, ptr %a, i32 0, i32 1 + %a.imag = load double, ptr %a.imagp + %b.real = load double, ptr %b + %b.imagp = getelementptr inbounds %0, ptr %b, i32 0, i32 1 + %b.imag = load double, ptr %b.imagp %mul.rl = fmul double %a.real, %b.real %mul.rr = fmul double %a.imag, %b.imag %mul.r = fsub double %mul.rl, %mul.rr %mul.il = fmul double %a.imag, %b.real %mul.ir = fmul double %a.real, %b.imag %mul.i = fadd double %mul.il, %mul.ir - %c.realp = getelementptr inbounds %0, %0* %c, i32 0, i32 0 - %c.real = load double, double* %c.realp - %c.imagp = getelementptr inbounds %0, %0* %c, i32 0, i32 1 - %c.imag = load double, double* %c.imagp + %c.real = load double, ptr %c + %c.imagp = getelementptr inbounds %0, ptr %c, i32 0, i32 1 + %c.imag = load double, ptr %c.imagp %add.r = fadd double %mul.r, %c.real %add.i = fadd double %mul.i, %c.imag - %real = getelementptr inbounds %0, %0* %agg.result, i32 0, i32 0 - %imag = getelementptr inbounds %0, %0* %agg.result, i32 0, i32 1 - store double %add.r, double* %real - store double %add.i, double* %imag + %imag = getelementptr inbounds %0, ptr %agg.result, i32 0, i32 1 + store double %add.r, ptr %agg.result + store double %add.i, ptr %imag ret void ; CHECK: fmadd } Index: llvm/test/CodeGen/PowerPC/ppc64-P9-mod.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-P9-mod.ll +++ llvm/test/CodeGen/PowerPC/ppc64-P9-mod.ll @@ -21,7 +21,7 @@ define void @modulo_sw(i32 signext %a, i32 signext %b) local_unnamed_addr { entry: %rem = srem i32 %a, %b - store i32 %rem, i32* @mod_resultsw, align 4 + store i32 %rem, ptr @mod_resultsw, align 4 ret void ; CHECK-LABEL: modulo_sw ; CHECK: modsw {{[0-9]+}}, 3, 4 @@ -67,7 +67,7 @@ define void @modulo_ud(i64 %a, i64 %b) local_unnamed_addr { entry: %rem = urem i64 %a, %b - store i64 %rem, i64* @mod_resultud, align 8 + store i64 %rem, ptr @mod_resultud, align 8 ret void ; CHECK-LABEL: modulo_ud ; CHECK: modud {{[0-9]+}}, 3, 4 @@ -83,9 +83,9 @@ define void @modulo_div_sw(i32 signext %a, i32 signext %b) local_unnamed_addr { entry: %rem = srem i32 %a, %b - store i32 %rem, i32* @mod_resultsw, align 4 + store i32 %rem, ptr @mod_resultsw, align 4 %div = sdiv i32 %a, %b - store i32 %div, i32* @div_resultsw, align 4 + store i32 %div, ptr @div_resultsw, align 4 ret void ; CHECK-LABEL: modulo_div_sw ; CHECK: modsw {{[0-9]+}}, 3, 4 @@ -109,9 +109,9 @@ define void @modulo_div_abc_sw(i32 signext %a, i32 signext %b, i32 signext %c) local_unnamed_addr { entry: %rem = srem i32 %a, %c - store i32 %rem, i32* @mod_resultsw, align 4 + store i32 %rem, ptr @mod_resultsw, align 4 %div = sdiv i32 %b, %c - store i32 %div, i32* @div_resultsw, align 4 + store i32 %div, ptr @div_resultsw, align 4 ret void ; CHECK-LABEL: modulo_div_abc_sw ; CHECK: modsw {{[0-9]+}}, 3, 5 @@ -127,9 +127,9 @@ define void @modulo_div_uw(i32 zeroext %a, i32 zeroext %b) local_unnamed_addr { entry: %rem = urem i32 %a, %b - store i32 %rem, i32* @mod_resultuw, align 4 + store i32 %rem, ptr @mod_resultuw, align 4 %div = udiv i32 %a, %b - store i32 %div, i32* @div_resultuw, align 4 + store i32 %div, ptr @div_resultuw, align 4 ret void ; CHECK-LABEL: modulo_div_uw ; CHECK: moduw {{[0-9]+}}, 3, 4 @@ -153,9 +153,9 @@ define void @modulo_div_swuw(i32 signext %a, i32 signext %b) local_unnamed_addr { entry: %rem = srem i32 %a, %b - store i32 %rem, i32* @mod_resultsw, align 4 + store i32 %rem, ptr @mod_resultsw, align 4 %div = udiv i32 %a, %b - store i32 %div, i32* @div_resultsw, align 4 + store i32 %div, ptr @div_resultsw, align 4 ret void ; CHECK-LABEL: modulo_div_swuw ; CHECK: modsw {{[0-9]+}}, 3, 4 @@ -171,9 +171,9 @@ define void @modulo_div_udsd(i64 %a, i64 %b) local_unnamed_addr { entry: %rem = urem i64 %a, %b - store i64 %rem, i64* @mod_resultud, align 8 + store i64 %rem, ptr @mod_resultud, align 8 %div = sdiv i64 %a, %b - store i64 %div, i64* @div_resultsd, align 8 + store i64 %div, ptr @div_resultsd, align 8 ret void ; CHECK-LABEL: modulo_div_udsd ; CHECK: modud {{[0-9]+}}, 3, 4 @@ -189,7 +189,7 @@ define void @modulo_const32_sw(i32 signext %a) local_unnamed_addr { entry: %rem = srem i32 %a, 32 - store i32 %rem, i32* @mod_resultsw, align 4 + store i32 %rem, ptr @mod_resultsw, align 4 ret void ; CHECK-LABEL: modulo_const32_sw ; CHECK-NOT: modsw @@ -247,13 +247,13 @@ define void @blocks_modulo_div_sw(i32 signext %a, i32 signext %b, i32 signext %c) local_unnamed_addr { entry: %div = sdiv i32 %a, %b - store i32 %div, i32* @div_resultsw, align 4 + store i32 %div, ptr @div_resultsw, align 4 %cmp = icmp sgt i32 %c, 0 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry %rem = srem i32 %a, %b - store i32 %rem, i32* @mod_resultsw, align 4 + store i32 %rem, ptr @mod_resultsw, align 4 br label %if.end if.end: ; preds = %if.then, %entry Index: llvm/test/CodeGen/PowerPC/ppc64-P9-setb.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-P9-setb.ll +++ llvm/test/CodeGen/PowerPC/ppc64-P9-setb.ll @@ -1369,7 +1369,7 @@ } ; Verify this case doesn't crash -define void @setbn4(i128 %0, i32* %sel.out) { +define void @setbn4(i128 %0, ptr %sel.out) { ; CHECK-LABEL: setbn4: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: li r6, 1 @@ -1408,6 +1408,6 @@ %c2 = icmp ugt i128 %0, 5192296858534827628530496329220096 %ext = zext i1 %c2 to i32 %sel = select i1 %c1, i32 -1, i32 %ext - store i32 %sel, i32* %sel.out, align 4 + store i32 %sel, ptr %sel.out, align 4 ret void } Index: llvm/test/CodeGen/PowerPC/ppc64-abi-extend.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-abi-extend.ll +++ llvm/test/CodeGen/PowerPC/ppc64-abi-extend.ll @@ -15,7 +15,7 @@ define void @pass_arg_si() nounwind { entry: - %0 = load i32, i32* @si, align 4 + %0 = load i32, ptr @si, align 4 tail call void @arg_si(i32 signext %0) nounwind ret void } @@ -25,7 +25,7 @@ define void @pass_arg_ui() nounwind { entry: - %0 = load i32, i32* @ui, align 4 + %0 = load i32, ptr @ui, align 4 tail call void @arg_ui(i32 zeroext %0) nounwind ret void } @@ -53,7 +53,7 @@ define signext i32 @pass_ret_si() nounwind readonly { entry: - %0 = load i32, i32* @si, align 4 + %0 = load i32, ptr @si, align 4 ret i32 %0 } ; CHECK: @pass_ret_si @@ -62,7 +62,7 @@ define zeroext i32 @pass_ret_ui() nounwind readonly { entry: - %0 = load i32, i32* @ui, align 4 + %0 = load i32, ptr @ui, align 4 ret i32 %0 } ; CHECK: @pass_ret_ui Index: llvm/test/CodeGen/PowerPC/ppc64-acc-regalloc-bugfix.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-acc-regalloc-bugfix.ll +++ llvm/test/CodeGen/PowerPC/ppc64-acc-regalloc-bugfix.ll @@ -14,7 +14,7 @@ %0 = tail call <512 x i1> @llvm.ppc.mma.assemble.acc(<16 x i8> zeroinitializer, <16 x i8> undef, <16 x i8> undef, <16 x i8> zeroinitializer) %1 = tail call { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } @llvm.ppc.mma.disassemble.acc(<512 x i1> %0) %2 = extractvalue { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } %1, 2 - store <16 x i8> %2, <16 x i8>* null, align 1 + store <16 x i8> %2, ptr null, align 1 unreachable } Index: llvm/test/CodeGen/PowerPC/ppc64-acc-regalloc.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-acc-regalloc.ll +++ llvm/test/CodeGen/PowerPC/ppc64-acc-regalloc.ll @@ -9,7 +9,7 @@ %0 = type <{ double }> %1 = type <{ double }> -define void @acc_regalloc(i32* %arg, [0 x %0]* %arg1, [0 x %1]* %arg2) local_unnamed_addr { +define void @acc_regalloc(ptr %arg, ptr %arg1, ptr %arg2) local_unnamed_addr { ; CHECK-LABEL: acc_regalloc: ; CHECK: # %bb.0: # %bb ; CHECK-NEXT: lwz r3, 0(r3) @@ -203,38 +203,32 @@ ; TRACKLIVE-NEXT: stxv vs12, 48(0) ; TRACKLIVE-NEXT: b .LBB0_1 bb: - %i = load i32, i32* %arg, align 4 + %i = load i32, ptr %arg, align 4 %i3 = sext i32 %i to i64 %i4 = shl nsw i64 %i3, 3 - %i5 = bitcast [0 x %0]* %arg1 to i8* - %i6 = getelementptr i8, i8* %i5, i64 undef - %i7 = getelementptr [0 x %1], [0 x %1]* %arg2, i64 0, i64 -8 - %i8 = getelementptr i8, i8* %i6, i64 undef + %i6 = getelementptr i8, ptr %arg1, i64 undef + %i7 = getelementptr [0 x %1], ptr %arg2, i64 0, i64 -8 + %i8 = getelementptr i8, ptr %i6, i64 undef br label %bb9 bb9: ; preds = %bb95, %bb %i10 = phi i64 [ 1, %bb ], [ 0, %bb95 ] - %i11 = getelementptr %1, %1* null, i64 2 - %i12 = bitcast %1* %i11 to <2 x double>* - %i13 = load <2 x double>, <2 x double>* %i12, align 1 + %i11 = getelementptr %1, ptr null, i64 2 + %i13 = load <2 x double>, ptr %i11, align 1 %i14 = add nuw nsw i64 %i10, 2 - %i15 = getelementptr inbounds %1, %1* %i7, i64 undef - %i16 = bitcast %1* %i15 to <2 x double>* - %i17 = load <2 x double>, <2 x double>* %i16, align 1 - %i18 = load <2 x double>, <2 x double>* null, align 1 - %i19 = getelementptr %1, %1* %i15, i64 6 - %i20 = bitcast %1* %i19 to <2 x double>* - %i21 = load <2 x double>, <2 x double>* %i20, align 1 - %i22 = load i64, i64* undef, align 8 + %i15 = getelementptr inbounds %1, ptr %i7, i64 undef + %i17 = load <2 x double>, ptr %i15, align 1 + %i18 = load <2 x double>, ptr null, align 1 + %i19 = getelementptr %1, ptr %i15, i64 6 + %i21 = load <2 x double>, ptr %i19, align 1 + %i22 = load i64, ptr undef, align 8 %i23 = insertelement <2 x i64> poison, i64 %i22, i32 0 %i24 = bitcast <2 x i64> %i23 to <2 x double> %i25 = shufflevector <2 x double> %i24, <2 x double> undef, <2 x i32> zeroinitializer %i26 = mul i64 %i14, %i4 - %i27 = getelementptr i8, i8* null, i64 %i26 - %i28 = getelementptr inbounds i8, i8* %i27, i64 0 - %i29 = getelementptr i8, i8* %i28, i64 16 - %i30 = bitcast i8* %i29 to i64* - %i31 = load i64, i64* %i30, align 8 + %i27 = getelementptr i8, ptr null, i64 %i26 + %i29 = getelementptr i8, ptr %i27, i64 16 + %i31 = load i64, ptr %i29, align 8 %i32 = insertelement <2 x i64> poison, i64 %i31, i32 0 %i33 = bitcast <2 x i64> %i32 to <2 x double> %i34 = shufflevector <2 x double> %i33, <2 x double> undef, <2 x i32> zeroinitializer @@ -311,18 +305,14 @@ %i101 = extractvalue { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } %i100, 2 %i102 = tail call { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } @llvm.ppc.mma.disassemble.acc(<512 x i1> %i94) %i103 = extractvalue { <16 x i8>, <16 x i8>, <16 x i8>, <16 x i8> } %i102, 3 - %i104 = getelementptr inbounds i8, i8* %i8, i64 undef - %i105 = bitcast i8* %i104 to <16 x i8>* - store <16 x i8> %i97, <16 x i8>* %i105, align 1 - %i106 = getelementptr i8, i8* %i104, i64 32 - %i107 = bitcast i8* %i106 to <16 x i8>* - store <16 x i8> %i101, <16 x i8>* %i107, align 1 - %i108 = getelementptr i8, i8* null, i64 16 - %i109 = bitcast i8* %i108 to <16 x i8>* - store <16 x i8> %i99, <16 x i8>* %i109, align 1 - %i110 = getelementptr i8, i8* null, i64 48 - %i111 = bitcast i8* %i110 to <16 x i8>* - store <16 x i8> %i103, <16 x i8>* %i111, align 1 + %i104 = getelementptr inbounds i8, ptr %i8, i64 undef + store <16 x i8> %i97, ptr %i104, align 1 + %i106 = getelementptr i8, ptr %i104, i64 32 + store <16 x i8> %i101, ptr %i106, align 1 + %i108 = getelementptr i8, ptr null, i64 16 + store <16 x i8> %i99, ptr %i108, align 1 + %i110 = getelementptr i8, ptr null, i64 48 + store <16 x i8> %i103, ptr %i110, align 1 br label %bb9 } Index: llvm/test/CodeGen/PowerPC/ppc64-align-long-double.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-align-long-double.ll +++ llvm/test/CodeGen/PowerPC/ppc64-align-long-double.ll @@ -18,7 +18,7 @@ ; value. Since the target does bitcast through memory and we no longer ; remember the address we need to do the store in a fresh local ; address. -define ppc_fp128 @test(%struct.S* byval(%struct.S) %x) nounwind { +define ppc_fp128 @test(ptr byval(%struct.S) %x) nounwind { ; CHECK-LABEL: test: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: std 5, -16(1) @@ -53,8 +53,8 @@ ; CHECK-P9-NEXT: std 4, 56(1) ; CHECK-P9-NEXT: blr entry: - %b = getelementptr inbounds %struct.S, %struct.S* %x, i32 0, i32 1 - %0 = load ppc_fp128, ppc_fp128* %b, align 16 + %b = getelementptr inbounds %struct.S, ptr %x, i32 0, i32 1 + %0 = load ppc_fp128, ptr %b, align 16 ret ppc_fp128 %0 } Index: llvm/test/CodeGen/PowerPC/ppc64-blnop.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-blnop.ll +++ llvm/test/CodeGen/PowerPC/ppc64-blnop.ll @@ -10,9 +10,9 @@ %class.T = type { [2 x i8] } -define void @e_callee(%class.T* %this, i8* %c) { ret void } -define void @e_caller(%class.T* %this, i8* %c) { - call void @e_callee(%class.T* %this, i8* %c) +define void @e_callee(ptr %this, ptr %c) { ret void } +define void @e_caller(ptr %this, ptr %c) { + call void @e_callee(ptr %this, ptr %c) ret void ; CHECK-LABEL: e_caller: @@ -24,9 +24,9 @@ ; CHECK-FS-NEXT: nop } -define void @e_scallee(%class.T* %this, i8* %c) section "different" { ret void } -define void @e_scaller(%class.T* %this, i8* %c) { - call void @e_scallee(%class.T* %this, i8* %c) +define void @e_scallee(ptr %this, ptr %c) section "different" { ret void } +define void @e_scaller(ptr %this, ptr %c) { + call void @e_scallee(ptr %this, ptr %c) ret void ; CHECK-LABEL: e_scaller: @@ -34,9 +34,9 @@ ; CHECK-NEXT: nop } -define void @e_s2callee(%class.T* %this, i8* %c) { ret void } -define void @e_s2caller(%class.T* %this, i8* %c) section "different" { - call void @e_s2callee(%class.T* %this, i8* %c) +define void @e_s2callee(ptr %this, ptr %c) { ret void } +define void @e_s2caller(ptr %this, ptr %c) section "different" { + call void @e_s2callee(ptr %this, ptr %c) ret void ; CHECK-LABEL: e_s2caller: @@ -47,9 +47,9 @@ $cd1 = comdat any $cd2 = comdat any -define void @e_ccallee(%class.T* %this, i8* %c) comdat($cd1) { ret void } -define void @e_ccaller(%class.T* %this, i8* %c) comdat($cd2) { - call void @e_ccallee(%class.T* %this, i8* %c) +define void @e_ccallee(ptr %this, ptr %c) comdat($cd1) { ret void } +define void @e_ccaller(ptr %this, ptr %c) comdat($cd2) { + call void @e_ccallee(ptr %this, ptr %c) ret void ; CHECK-LABEL: e_ccaller: @@ -59,9 +59,9 @@ $cd = comdat any -define void @e_c1callee(%class.T* %this, i8* %c) comdat($cd) { ret void } -define void @e_c1caller(%class.T* %this, i8* %c) comdat($cd) { - call void @e_c1callee(%class.T* %this, i8* %c) +define void @e_c1callee(ptr %this, ptr %c) comdat($cd) { ret void } +define void @e_c1caller(ptr %this, ptr %c) comdat($cd) { + call void @e_c1callee(ptr %this, ptr %c) ret void ; CHECK-LABEL: e_c1caller: @@ -69,9 +69,9 @@ ; CHECK-NEXT: nop } -define weak_odr hidden void @wo_hcallee(%class.T* %this, i8* %c) { ret void } -define void @wo_hcaller(%class.T* %this, i8* %c) { - call void @wo_hcallee(%class.T* %this, i8* %c) +define weak_odr hidden void @wo_hcallee(ptr %this, ptr %c) { ret void } +define void @wo_hcaller(ptr %this, ptr %c) { + call void @wo_hcallee(ptr %this, ptr %c) ret void ; CHECK-LABEL: wo_hcaller: @@ -83,9 +83,9 @@ ; SCM-NEXT: nop } -define weak_odr protected void @wo_pcallee(%class.T* %this, i8* %c) { ret void } -define void @wo_pcaller(%class.T* %this, i8* %c) { - call void @wo_pcallee(%class.T* %this, i8* %c) +define weak_odr protected void @wo_pcallee(ptr %this, ptr %c) { ret void } +define void @wo_pcaller(ptr %this, ptr %c) { + call void @wo_pcallee(ptr %this, ptr %c) ret void ; CHECK-LABEL: wo_pcaller: @@ -97,9 +97,9 @@ ; SCM-NEXT: nop } -define weak_odr void @wo_callee(%class.T* %this, i8* %c) { ret void } -define void @wo_caller(%class.T* %this, i8* %c) { - call void @wo_callee(%class.T* %this, i8* %c) +define weak_odr void @wo_callee(ptr %this, ptr %c) { ret void } +define void @wo_caller(ptr %this, ptr %c) { + call void @wo_callee(ptr %this, ptr %c) ret void ; CHECK-LABEL: wo_caller: @@ -107,9 +107,9 @@ ; CHECK-NEXT: nop } -define weak protected void @w_pcallee(i8* %ptr) { ret void } -define void @w_pcaller(i8* %ptr) { - call void @w_pcallee(i8* %ptr) +define weak protected void @w_pcallee(ptr %ptr) { ret void } +define void @w_pcaller(ptr %ptr) { + call void @w_pcallee(ptr %ptr) ret void ; CHECK-LABEL: w_pcaller: @@ -121,9 +121,9 @@ ; SCM-NEXT: nop } -define weak hidden void @w_hcallee(i8* %ptr) { ret void } -define void @w_hcaller(i8* %ptr) { - call void @w_hcallee(i8* %ptr) +define weak hidden void @w_hcallee(ptr %ptr) { ret void } +define void @w_hcaller(ptr %ptr) { + call void @w_hcallee(ptr %ptr) ret void ; CHECK-LABEL: w_hcaller: @@ -135,9 +135,9 @@ ; SCM-NEXT: nop } -define weak void @w_callee(i8* %ptr) { ret void } -define void @w_caller(i8* %ptr) { - call void @w_callee(i8* %ptr) +define weak void @w_callee(ptr %ptr) { ret void } +define void @w_caller(ptr %ptr) { + call void @w_callee(ptr %ptr) ret void ; CHECK-LABEL: w_caller: Index: llvm/test/CodeGen/PowerPC/ppc64-byval-align.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-byval-align.ll +++ llvm/test/CodeGen/PowerPC/ppc64-byval-align.ll @@ -9,7 +9,7 @@ @gt = common global %struct.test zeroinitializer, align 16 @gp = common global %struct.pad zeroinitializer, align 8 -define signext i32 @callee1(i32 signext %x, %struct.test* byval(%struct.test) align 16 nocapture readnone %y, i32 signext %z) { +define signext i32 @callee1(i32 signext %x, ptr byval(%struct.test) align 16 nocapture readnone %y, i32 signext %z) { entry: ret i32 %z } @@ -17,33 +17,31 @@ ; CHECK: mr 3, 7 ; CHECK: blr -declare signext i32 @test1(i32 signext, %struct.test* byval(%struct.test) align 16, i32 signext) +declare signext i32 @test1(i32 signext, ptr byval(%struct.test) align 16, i32 signext) define void @caller1(i32 signext %z) { entry: - %call = tail call signext i32 @test1(i32 signext 0, %struct.test* byval(%struct.test) align 16 @gt, i32 signext %z) + %call = tail call signext i32 @test1(i32 signext 0, ptr byval(%struct.test) align 16 @gt, i32 signext %z) ret void } ; CHECK-LABEL: @caller1 ; CHECK: mr 7, 3 ; CHECK: bl test1 -define i64 @callee2(%struct.pad* byval(%struct.pad) nocapture readnone %x, i32 signext %y, %struct.test* byval(%struct.test) align 16 nocapture readonly %z) { +define i64 @callee2(ptr byval(%struct.pad) nocapture readnone %x, i32 signext %y, ptr byval(%struct.test) align 16 nocapture readonly %z) { entry: - %x1 = getelementptr inbounds %struct.test, %struct.test* %z, i64 0, i32 0 - %0 = load i64, i64* %x1, align 16 + %0 = load i64, ptr %z, align 16 ret i64 %0 } ; CHECK-LABEL: @callee2 ; CHECK: ld {{[0-9]+}}, 128(1) ; CHECK: blr -declare i64 @test2(%struct.pad* byval(%struct.pad), i32 signext, %struct.test* byval(%struct.test) align 16) +declare i64 @test2(ptr byval(%struct.pad), i32 signext, ptr byval(%struct.test) align 16) define void @caller2(i64 %z) { entry: %tmp = alloca %struct.test, align 16 - %.compoundliteral.sroa.0.0..sroa_idx = getelementptr inbounds %struct.test, %struct.test* %tmp, i64 0, i32 0 - store i64 %z, i64* %.compoundliteral.sroa.0.0..sroa_idx, align 16 - %call = call i64 @test2(%struct.pad* byval(%struct.pad) @gp, i32 signext 0, %struct.test* byval(%struct.test) align 16 %tmp) + store i64 %z, ptr %tmp, align 16 + %call = call i64 @test2(ptr byval(%struct.pad) @gp, i32 signext 0, ptr byval(%struct.test) align 16 %tmp) ret void } ; CHECK-LABEL: @caller2 Index: llvm/test/CodeGen/PowerPC/ppc64-byval-larger-struct.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-byval-larger-struct.ll +++ llvm/test/CodeGen/PowerPC/ppc64-byval-larger-struct.ll @@ -12,7 +12,7 @@ ; RUN: llc -verify-machineinstrs --mtriple powerpc64-unknown-linux-gnu \ ; RUN: -mcpu=pwr10 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P10BE -define signext i8 @caller_9([9 x i8]* nocapture readonly byval([9 x i8]) %data) #0 { +define signext i8 @caller_9(ptr nocapture readonly byval([9 x i8]) %data) #0 { ; P8LE-LABEL: caller_9: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -133,47 +133,45 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [9 x i8], align 1 - %.elt0 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 0 - %.unpack0 = load i8, i8* %.elt0, align 1 - %.elt1 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 1 - %.unpack1 = load i8, i8* %.elt1, align 1 - %.elt2 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 2 - %.unpack2 = load i8, i8* %.elt2, align 1 - %.elt3 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 3 - %.unpack3 = load i8, i8* %.elt3, align 1 - %.elt4 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 4 - %.unpack4 = load i8, i8* %.elt4, align 1 - %.elt5 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 5 - %.unpack5 = load i8, i8* %.elt5, align 1 - %.elt6 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 6 - %.unpack6 = load i8, i8* %.elt6, align 1 - %.elt7 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 7 - %.unpack7 = load i8, i8* %.elt7, align 1 - %.elt8 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 8 - %.unpack8 = load i8, i8* %.elt8, align 1 - %.temp.0.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack0, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack1, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack2, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack3, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack4, i8* %.temp.4.gep, align 1 - %.temp.5.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 5 - store i8 %.unpack5, i8* %.temp.5.gep, align 1 - %.temp.6.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 6 - store i8 %.unpack6, i8* %.temp.6.gep, align 1 - %.temp.7.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 7 - store i8 %.unpack7, i8* %.temp.7.gep, align 1 - %.temp.8.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 8 - store i8 %.unpack8, i8* %.temp.8.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack0 = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 1 + %.unpack1 = load i8, ptr %.elt1, align 1 + %.elt2 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 2 + %.unpack2 = load i8, ptr %.elt2, align 1 + %.elt3 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 3 + %.unpack3 = load i8, ptr %.elt3, align 1 + %.elt4 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 4 + %.unpack4 = load i8, ptr %.elt4, align 1 + %.elt5 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 5 + %.unpack5 = load i8, ptr %.elt5, align 1 + %.elt6 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 6 + %.unpack6 = load i8, ptr %.elt6, align 1 + %.elt7 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 7 + %.unpack7 = load i8, ptr %.elt7, align 1 + %.elt8 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 8 + %.unpack8 = load i8, ptr %.elt8, align 1 + store i8 %.unpack0, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack1, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack2, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack3, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack4, ptr %.temp.4.gep, align 1 + %.temp.5.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 5 + store i8 %.unpack5, ptr %.temp.5.gep, align 1 + %.temp.6.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 6 + store i8 %.unpack6, ptr %.temp.6.gep, align 1 + %.temp.7.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 7 + store i8 %.unpack7, ptr %.temp.7.gep, align 1 + %.temp.8.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 8 + store i8 %.unpack8, ptr %.temp.8.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_9_callee_9([9 x i8]* nocapture readonly byval([9 x i8]) %data) #0 { +define signext i8 @caller_9_callee_9(ptr nocapture readonly byval([9 x i8]) %data) #0 { ; P8LE-LABEL: caller_9_callee_9: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -300,47 +298,45 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [9 x i8], align 1 - %.elt0 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 0 - %.unpack0 = load i8, i8* %.elt0, align 1 - %.elt1 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 1 - %.unpack1 = load i8, i8* %.elt1, align 1 - %.elt2 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 2 - %.unpack2 = load i8, i8* %.elt2, align 1 - %.elt3 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 3 - %.unpack3 = load i8, i8* %.elt3, align 1 - %.elt4 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 4 - %.unpack4 = load i8, i8* %.elt4, align 1 - %.elt5 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 5 - %.unpack5 = load i8, i8* %.elt5, align 1 - %.elt6 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 6 - %.unpack6 = load i8, i8* %.elt6, align 1 - %.elt7 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 7 - %.unpack7 = load i8, i8* %.elt7, align 1 - %.elt8 = getelementptr inbounds [9 x i8], [9 x i8]* %data, i64 0, i64 8 - %.unpack8 = load i8, i8* %.elt8, align 1 - %.temp.0.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack0, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack1, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack2, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack3, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack4, i8* %.temp.4.gep, align 1 - %.temp.5.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 5 - store i8 %.unpack5, i8* %.temp.5.gep, align 1 - %.temp.6.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 6 - store i8 %.unpack6, i8* %.temp.6.gep, align 1 - %.temp.7.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 7 - store i8 %.unpack7, i8* %.temp.7.gep, align 1 - %.temp.8.gep = getelementptr inbounds [9 x i8], [9 x i8]* %_param_data, i64 0, i64 8 - store i8 %.unpack8, i8* %.temp.8.gep, align 1 - call void @callee_9([9 x i8]* nocapture readonly byval([9 x i8]) %data) + %.unpack0 = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 1 + %.unpack1 = load i8, ptr %.elt1, align 1 + %.elt2 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 2 + %.unpack2 = load i8, ptr %.elt2, align 1 + %.elt3 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 3 + %.unpack3 = load i8, ptr %.elt3, align 1 + %.elt4 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 4 + %.unpack4 = load i8, ptr %.elt4, align 1 + %.elt5 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 5 + %.unpack5 = load i8, ptr %.elt5, align 1 + %.elt6 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 6 + %.unpack6 = load i8, ptr %.elt6, align 1 + %.elt7 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 7 + %.unpack7 = load i8, ptr %.elt7, align 1 + %.elt8 = getelementptr inbounds [9 x i8], ptr %data, i64 0, i64 8 + %.unpack8 = load i8, ptr %.elt8, align 1 + store i8 %.unpack0, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack1, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack2, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack3, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack4, ptr %.temp.4.gep, align 1 + %.temp.5.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 5 + store i8 %.unpack5, ptr %.temp.5.gep, align 1 + %.temp.6.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 6 + store i8 %.unpack6, ptr %.temp.6.gep, align 1 + %.temp.7.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 7 + store i8 %.unpack7, ptr %.temp.7.gep, align 1 + %.temp.8.gep = getelementptr inbounds [9 x i8], ptr %_param_data, i64 0, i64 8 + store i8 %.unpack8, ptr %.temp.8.gep, align 1 + call void @callee_9(ptr nocapture readonly byval([9 x i8]) %data) ret i8 0 } -define signext i8 @caller_10([10 x i8]* nocapture readonly byval([10 x i8]) %data) #0 { +define signext i8 @caller_10(ptr nocapture readonly byval([10 x i8]) %data) #0 { ; P8LE-LABEL: caller_10: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -461,51 +457,49 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [10 x i8], align 1 - %.elt0 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 0 - %.unpack0 = load i8, i8* %.elt0, align 1 - %.elt1 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 1 - %.unpack1 = load i8, i8* %.elt1, align 1 - %.elt2 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 2 - %.unpack2 = load i8, i8* %.elt2, align 1 - %.elt3 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 3 - %.unpack3 = load i8, i8* %.elt3, align 1 - %.elt4 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 4 - %.unpack4 = load i8, i8* %.elt4, align 1 - %.elt5 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 5 - %.unpack5 = load i8, i8* %.elt5, align 1 - %.elt6 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 6 - %.unpack6 = load i8, i8* %.elt6, align 1 - %.elt7 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 7 - %.unpack7 = load i8, i8* %.elt7, align 1 - %.elt8 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 8 - %.unpack8 = load i8, i8* %.elt8, align 1 - %.elt9 = getelementptr inbounds [10 x i8], [10 x i8]* %data, i64 0, i64 9 - %.unpack9 = load i8, i8* %.elt9, align 1 - %.temp.0.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack0, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack1, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack2, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack3, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack4, i8* %.temp.4.gep, align 1 - %.temp.5.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 5 - store i8 %.unpack5, i8* %.temp.5.gep, align 1 - %.temp.6.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 6 - store i8 %.unpack6, i8* %.temp.6.gep, align 1 - %.temp.7.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 7 - store i8 %.unpack7, i8* %.temp.7.gep, align 1 - %.temp.8.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 8 - store i8 %.unpack8, i8* %.temp.8.gep, align 1 - %.temp.9.gep = getelementptr inbounds [10 x i8], [10 x i8]* %_param_data, i64 0, i64 9 - store i8 %.unpack9, i8* %.temp.9.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack0 = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [10 x i8], ptr %data, i64 0, i64 1 + %.unpack1 = load i8, ptr %.elt1, align 1 + %.elt2 = getelementptr inbounds [10 x i8], ptr %data, i64 0, i64 2 + %.unpack2 = load i8, ptr %.elt2, align 1 + %.elt3 = getelementptr inbounds [10 x i8], ptr %data, i64 0, i64 3 + %.unpack3 = load i8, ptr %.elt3, align 1 + %.elt4 = getelementptr inbounds [10 x i8], ptr %data, i64 0, i64 4 + %.unpack4 = load i8, ptr %.elt4, align 1 + %.elt5 = getelementptr inbounds [10 x i8], ptr %data, i64 0, i64 5 + %.unpack5 = load i8, ptr %.elt5, align 1 + %.elt6 = getelementptr inbounds [10 x i8], ptr %data, i64 0, i64 6 + %.unpack6 = load i8, ptr %.elt6, align 1 + %.elt7 = getelementptr inbounds [10 x i8], ptr %data, i64 0, i64 7 + %.unpack7 = load i8, ptr %.elt7, align 1 + %.elt8 = getelementptr inbounds [10 x i8], ptr %data, i64 0, i64 8 + %.unpack8 = load i8, ptr %.elt8, align 1 + %.elt9 = getelementptr inbounds [10 x i8], ptr %data, i64 0, i64 9 + %.unpack9 = load i8, ptr %.elt9, align 1 + store i8 %.unpack0, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [10 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack1, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [10 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack2, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [10 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack3, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [10 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack4, ptr %.temp.4.gep, align 1 + %.temp.5.gep = getelementptr inbounds [10 x i8], ptr %_param_data, i64 0, i64 5 + store i8 %.unpack5, ptr %.temp.5.gep, align 1 + %.temp.6.gep = getelementptr inbounds [10 x i8], ptr %_param_data, i64 0, i64 6 + store i8 %.unpack6, ptr %.temp.6.gep, align 1 + %.temp.7.gep = getelementptr inbounds [10 x i8], ptr %_param_data, i64 0, i64 7 + store i8 %.unpack7, ptr %.temp.7.gep, align 1 + %.temp.8.gep = getelementptr inbounds [10 x i8], ptr %_param_data, i64 0, i64 8 + store i8 %.unpack8, ptr %.temp.8.gep, align 1 + %.temp.9.gep = getelementptr inbounds [10 x i8], ptr %_param_data, i64 0, i64 9 + store i8 %.unpack9, ptr %.temp.9.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_12([12 x i8]* nocapture readonly byval([12 x i8]) %data) #0 { +define signext i8 @caller_12(ptr nocapture readonly byval([12 x i8]) %data) #0 { ; P8LE-LABEL: caller_12: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -626,59 +620,57 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [12 x i8], align 1 - %.elt0 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 0 - %.unpack0 = load i8, i8* %.elt0, align 1 - %.elt1 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 1 - %.unpack1 = load i8, i8* %.elt1, align 1 - %.elt2 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 2 - %.unpack2 = load i8, i8* %.elt2, align 1 - %.elt3 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 3 - %.unpack3 = load i8, i8* %.elt3, align 1 - %.elt4 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 4 - %.unpack4 = load i8, i8* %.elt4, align 1 - %.elt5 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 5 - %.unpack5 = load i8, i8* %.elt5, align 1 - %.elt6 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 6 - %.unpack6 = load i8, i8* %.elt6, align 1 - %.elt7 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 7 - %.unpack7 = load i8, i8* %.elt7, align 1 - %.elt8 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 8 - %.unpack8 = load i8, i8* %.elt8, align 1 - %.elt9 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 9 - %.unpack9 = load i8, i8* %.elt9, align 1 - %.elt10 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 10 - %.unpack10 = load i8, i8* %.elt10, align 1 - %.elt11 = getelementptr inbounds [12 x i8], [12 x i8]* %data, i64 0, i64 11 - %.unpack11 = load i8, i8* %.elt11, align 1 - %.temp.0.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack0, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack1, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack2, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack3, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack4, i8* %.temp.4.gep, align 1 - %.temp.5.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 5 - store i8 %.unpack5, i8* %.temp.5.gep, align 1 - %.temp.6.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 6 - store i8 %.unpack6, i8* %.temp.6.gep, align 1 - %.temp.7.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 7 - store i8 %.unpack7, i8* %.temp.7.gep, align 1 - %.temp.8.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 8 - store i8 %.unpack8, i8* %.temp.8.gep, align 1 - %.temp.9.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 9 - store i8 %.unpack9, i8* %.temp.9.gep, align 1 - %.temp.10.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 10 - store i8 %.unpack10, i8* %.temp.10.gep, align 1 - %.temp.11.gep = getelementptr inbounds [12 x i8], [12 x i8]* %_param_data, i64 0, i64 11 - store i8 %.unpack11, i8* %.temp.11.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack0 = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 1 + %.unpack1 = load i8, ptr %.elt1, align 1 + %.elt2 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 2 + %.unpack2 = load i8, ptr %.elt2, align 1 + %.elt3 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 3 + %.unpack3 = load i8, ptr %.elt3, align 1 + %.elt4 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 4 + %.unpack4 = load i8, ptr %.elt4, align 1 + %.elt5 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 5 + %.unpack5 = load i8, ptr %.elt5, align 1 + %.elt6 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 6 + %.unpack6 = load i8, ptr %.elt6, align 1 + %.elt7 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 7 + %.unpack7 = load i8, ptr %.elt7, align 1 + %.elt8 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 8 + %.unpack8 = load i8, ptr %.elt8, align 1 + %.elt9 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 9 + %.unpack9 = load i8, ptr %.elt9, align 1 + %.elt10 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 10 + %.unpack10 = load i8, ptr %.elt10, align 1 + %.elt11 = getelementptr inbounds [12 x i8], ptr %data, i64 0, i64 11 + %.unpack11 = load i8, ptr %.elt11, align 1 + store i8 %.unpack0, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack1, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack2, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack3, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack4, ptr %.temp.4.gep, align 1 + %.temp.5.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 5 + store i8 %.unpack5, ptr %.temp.5.gep, align 1 + %.temp.6.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 6 + store i8 %.unpack6, ptr %.temp.6.gep, align 1 + %.temp.7.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 7 + store i8 %.unpack7, ptr %.temp.7.gep, align 1 + %.temp.8.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 8 + store i8 %.unpack8, ptr %.temp.8.gep, align 1 + %.temp.9.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 9 + store i8 %.unpack9, ptr %.temp.9.gep, align 1 + %.temp.10.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 10 + store i8 %.unpack10, ptr %.temp.10.gep, align 1 + %.temp.11.gep = getelementptr inbounds [12 x i8], ptr %_param_data, i64 0, i64 11 + store i8 %.unpack11, ptr %.temp.11.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_14([14 x i8]* nocapture readonly byval([14 x i8]) %data) #0 { +define signext i8 @caller_14(ptr nocapture readonly byval([14 x i8]) %data) #0 { ; P8LE-LABEL: caller_14: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -811,59 +803,57 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [14 x i8], align 1 - %.elt0 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 0 - %.unpack0 = load i8, i8* %.elt0, align 1 - %.elt1 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 1 - %.unpack1 = load i8, i8* %.elt1, align 1 - %.elt2 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 2 - %.unpack2 = load i8, i8* %.elt2, align 1 - %.elt3 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 3 - %.unpack3 = load i8, i8* %.elt3, align 1 - %.elt4 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 4 - %.unpack4 = load i8, i8* %.elt4, align 1 - %.elt5 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 5 - %.unpack5 = load i8, i8* %.elt5, align 1 - %.elt6 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 6 - %.unpack6 = load i8, i8* %.elt6, align 1 - %.elt7 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 7 - %.unpack7 = load i8, i8* %.elt7, align 1 - %.elt8 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 8 - %.unpack8 = load i8, i8* %.elt8, align 1 - %.elt9 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 9 - %.unpack9 = load i8, i8* %.elt9, align 1 - %.elt10 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 10 - %.unpack10 = load i8, i8* %.elt10, align 1 - %.elt11 = getelementptr inbounds [14 x i8], [14 x i8]* %data, i64 0, i64 11 - %.unpack11 = load i8, i8* %.elt11, align 1 - %.temp.0.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack0, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack1, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack2, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack3, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack4, i8* %.temp.4.gep, align 1 - %.temp.5.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 5 - store i8 %.unpack5, i8* %.temp.5.gep, align 1 - %.temp.6.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 6 - store i8 %.unpack6, i8* %.temp.6.gep, align 1 - %.temp.7.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 7 - store i8 %.unpack7, i8* %.temp.7.gep, align 1 - %.temp.8.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 8 - store i8 %.unpack8, i8* %.temp.8.gep, align 1 - %.temp.9.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 9 - store i8 %.unpack9, i8* %.temp.9.gep, align 1 - %.temp.10.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 10 - store i8 %.unpack10, i8* %.temp.10.gep, align 1 - %.temp.11.gep = getelementptr inbounds [14 x i8], [14 x i8]* %_param_data, i64 0, i64 11 - store i8 %.unpack11, i8* %.temp.11.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack0 = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 1 + %.unpack1 = load i8, ptr %.elt1, align 1 + %.elt2 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 2 + %.unpack2 = load i8, ptr %.elt2, align 1 + %.elt3 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 3 + %.unpack3 = load i8, ptr %.elt3, align 1 + %.elt4 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 4 + %.unpack4 = load i8, ptr %.elt4, align 1 + %.elt5 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 5 + %.unpack5 = load i8, ptr %.elt5, align 1 + %.elt6 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 6 + %.unpack6 = load i8, ptr %.elt6, align 1 + %.elt7 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 7 + %.unpack7 = load i8, ptr %.elt7, align 1 + %.elt8 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 8 + %.unpack8 = load i8, ptr %.elt8, align 1 + %.elt9 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 9 + %.unpack9 = load i8, ptr %.elt9, align 1 + %.elt10 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 10 + %.unpack10 = load i8, ptr %.elt10, align 1 + %.elt11 = getelementptr inbounds [14 x i8], ptr %data, i64 0, i64 11 + %.unpack11 = load i8, ptr %.elt11, align 1 + store i8 %.unpack0, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack1, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack2, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack3, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack4, ptr %.temp.4.gep, align 1 + %.temp.5.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 5 + store i8 %.unpack5, ptr %.temp.5.gep, align 1 + %.temp.6.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 6 + store i8 %.unpack6, ptr %.temp.6.gep, align 1 + %.temp.7.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 7 + store i8 %.unpack7, ptr %.temp.7.gep, align 1 + %.temp.8.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 8 + store i8 %.unpack8, ptr %.temp.8.gep, align 1 + %.temp.9.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 9 + store i8 %.unpack9, ptr %.temp.9.gep, align 1 + %.temp.10.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 10 + store i8 %.unpack10, ptr %.temp.10.gep, align 1 + %.temp.11.gep = getelementptr inbounds [14 x i8], ptr %_param_data, i64 0, i64 11 + store i8 %.unpack11, ptr %.temp.11.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_16([16 x i8]* nocapture readonly byval([16 x i8]) %data) #0 { +define signext i8 @caller_16(ptr nocapture readonly byval([16 x i8]) %data) #0 { ; P8LE-LABEL: caller_16: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -981,59 +971,57 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [16 x i8], align 1 - %.elt0 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 0 - %.unpack0 = load i8, i8* %.elt0, align 1 - %.elt1 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 1 - %.unpack1 = load i8, i8* %.elt1, align 1 - %.elt2 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 2 - %.unpack2 = load i8, i8* %.elt2, align 1 - %.elt3 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 3 - %.unpack3 = load i8, i8* %.elt3, align 1 - %.elt4 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 4 - %.unpack4 = load i8, i8* %.elt4, align 1 - %.elt5 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 5 - %.unpack5 = load i8, i8* %.elt5, align 1 - %.elt6 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 6 - %.unpack6 = load i8, i8* %.elt6, align 1 - %.elt7 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 7 - %.unpack7 = load i8, i8* %.elt7, align 1 - %.elt8 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 8 - %.unpack8 = load i8, i8* %.elt8, align 1 - %.elt9 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 9 - %.unpack9 = load i8, i8* %.elt9, align 1 - %.elt10 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 10 - %.unpack10 = load i8, i8* %.elt10, align 1 - %.elt11 = getelementptr inbounds [16 x i8], [16 x i8]* %data, i64 0, i64 11 - %.unpack11 = load i8, i8* %.elt11, align 1 - %.temp.0.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack0, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack1, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack2, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack3, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack4, i8* %.temp.4.gep, align 1 - %.temp.5.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 5 - store i8 %.unpack5, i8* %.temp.5.gep, align 1 - %.temp.6.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 6 - store i8 %.unpack6, i8* %.temp.6.gep, align 1 - %.temp.7.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 7 - store i8 %.unpack7, i8* %.temp.7.gep, align 1 - %.temp.8.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 8 - store i8 %.unpack8, i8* %.temp.8.gep, align 1 - %.temp.9.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 9 - store i8 %.unpack9, i8* %.temp.9.gep, align 1 - %.temp.10.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 10 - store i8 %.unpack10, i8* %.temp.10.gep, align 1 - %.temp.11.gep = getelementptr inbounds [16 x i8], [16 x i8]* %_param_data, i64 0, i64 11 - store i8 %.unpack11, i8* %.temp.11.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack0 = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 1 + %.unpack1 = load i8, ptr %.elt1, align 1 + %.elt2 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 2 + %.unpack2 = load i8, ptr %.elt2, align 1 + %.elt3 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 3 + %.unpack3 = load i8, ptr %.elt3, align 1 + %.elt4 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 4 + %.unpack4 = load i8, ptr %.elt4, align 1 + %.elt5 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 5 + %.unpack5 = load i8, ptr %.elt5, align 1 + %.elt6 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 6 + %.unpack6 = load i8, ptr %.elt6, align 1 + %.elt7 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 7 + %.unpack7 = load i8, ptr %.elt7, align 1 + %.elt8 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 8 + %.unpack8 = load i8, ptr %.elt8, align 1 + %.elt9 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 9 + %.unpack9 = load i8, ptr %.elt9, align 1 + %.elt10 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 10 + %.unpack10 = load i8, ptr %.elt10, align 1 + %.elt11 = getelementptr inbounds [16 x i8], ptr %data, i64 0, i64 11 + %.unpack11 = load i8, ptr %.elt11, align 1 + store i8 %.unpack0, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack1, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack2, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack3, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack4, ptr %.temp.4.gep, align 1 + %.temp.5.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 5 + store i8 %.unpack5, ptr %.temp.5.gep, align 1 + %.temp.6.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 6 + store i8 %.unpack6, ptr %.temp.6.gep, align 1 + %.temp.7.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 7 + store i8 %.unpack7, ptr %.temp.7.gep, align 1 + %.temp.8.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 8 + store i8 %.unpack8, ptr %.temp.8.gep, align 1 + %.temp.9.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 9 + store i8 %.unpack9, ptr %.temp.9.gep, align 1 + %.temp.10.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 10 + store i8 %.unpack10, ptr %.temp.10.gep, align 1 + %.temp.11.gep = getelementptr inbounds [16 x i8], ptr %_param_data, i64 0, i64 11 + store i8 %.unpack11, ptr %.temp.11.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_18([18 x i8]* nocapture readonly byval([18 x i8]) %data) #0 { +define signext i8 @caller_18(ptr nocapture readonly byval([18 x i8]) %data) #0 { ; P8LE-LABEL: caller_18: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -1157,62 +1145,60 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [18 x i8], align 1 - %.elt0 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 0 - %.unpack0 = load i8, i8* %.elt0, align 1 - %.elt1 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 1 - %.unpack1 = load i8, i8* %.elt1, align 1 - %.elt2 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 2 - %.unpack2 = load i8, i8* %.elt2, align 1 - %.elt3 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 3 - %.unpack3 = load i8, i8* %.elt3, align 1 - %.elt4 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 4 - %.unpack4 = load i8, i8* %.elt4, align 1 - %.elt5 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 5 - %.unpack5 = load i8, i8* %.elt5, align 1 - %.elt6 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 6 - %.unpack6 = load i8, i8* %.elt6, align 1 - %.elt7 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 7 - %.unpack7 = load i8, i8* %.elt7, align 1 - %.elt8 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 8 - %.unpack8 = load i8, i8* %.elt8, align 1 - %.elt9 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 9 - %.unpack9 = load i8, i8* %.elt9, align 1 - %.elt10 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 10 - %.unpack10 = load i8, i8* %.elt10, align 1 - %.elt11 = getelementptr inbounds [18 x i8], [18 x i8]* %data, i64 0, i64 11 - %.unpack11 = load i8, i8* %.elt11, align 1 - %.temp.0.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack0, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack1, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack2, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack3, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack4, i8* %.temp.4.gep, align 1 - %.temp.5.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 5 - store i8 %.unpack5, i8* %.temp.5.gep, align 1 - %.temp.6.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 6 - store i8 %.unpack6, i8* %.temp.6.gep, align 1 - %.temp.7.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 7 - store i8 %.unpack7, i8* %.temp.7.gep, align 1 - %.temp.8.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 8 - store i8 %.unpack8, i8* %.temp.8.gep, align 1 - %.temp.9.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 9 - store i8 %.unpack9, i8* %.temp.9.gep, align 1 - %.temp.10.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 10 - store i8 %.unpack10, i8* %.temp.10.gep, align 1 - %.temp.11.gep = getelementptr inbounds [18 x i8], [18 x i8]* %_param_data, i64 0, i64 11 - store i8 %.unpack11, i8* %.temp.11.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack0 = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 1 + %.unpack1 = load i8, ptr %.elt1, align 1 + %.elt2 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 2 + %.unpack2 = load i8, ptr %.elt2, align 1 + %.elt3 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 3 + %.unpack3 = load i8, ptr %.elt3, align 1 + %.elt4 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 4 + %.unpack4 = load i8, ptr %.elt4, align 1 + %.elt5 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 5 + %.unpack5 = load i8, ptr %.elt5, align 1 + %.elt6 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 6 + %.unpack6 = load i8, ptr %.elt6, align 1 + %.elt7 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 7 + %.unpack7 = load i8, ptr %.elt7, align 1 + %.elt8 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 8 + %.unpack8 = load i8, ptr %.elt8, align 1 + %.elt9 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 9 + %.unpack9 = load i8, ptr %.elt9, align 1 + %.elt10 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 10 + %.unpack10 = load i8, ptr %.elt10, align 1 + %.elt11 = getelementptr inbounds [18 x i8], ptr %data, i64 0, i64 11 + %.unpack11 = load i8, ptr %.elt11, align 1 + store i8 %.unpack0, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack1, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack2, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack3, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack4, ptr %.temp.4.gep, align 1 + %.temp.5.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 5 + store i8 %.unpack5, ptr %.temp.5.gep, align 1 + %.temp.6.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 6 + store i8 %.unpack6, ptr %.temp.6.gep, align 1 + %.temp.7.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 7 + store i8 %.unpack7, ptr %.temp.7.gep, align 1 + %.temp.8.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 8 + store i8 %.unpack8, ptr %.temp.8.gep, align 1 + %.temp.9.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 9 + store i8 %.unpack9, ptr %.temp.9.gep, align 1 + %.temp.10.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 10 + store i8 %.unpack10, ptr %.temp.10.gep, align 1 + %.temp.11.gep = getelementptr inbounds [18 x i8], ptr %_param_data, i64 0, i64 11 + store i8 %.unpack11, ptr %.temp.11.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -declare void @callee(i8*) local_unnamed_addr #0 -declare void @callee_9([9 x i8]* nocapture readonly byval([9 x i8]) %data) local_unnamed_addr #0 +declare void @callee(ptr) local_unnamed_addr #0 +declare void @callee_9(ptr nocapture readonly byval([9 x i8]) %data) local_unnamed_addr #0 attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/ppc64-byval-multi-store.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-byval-multi-store.ll +++ llvm/test/CodeGen/PowerPC/ppc64-byval-multi-store.ll @@ -12,7 +12,7 @@ ; RUN: llc -verify-machineinstrs --mtriple powerpc64-unknown-linux-gnu \ ; RUN: -mcpu=pwr10 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P10BE -define signext i8 @caller_1([1 x i8]* nocapture readonly byval([1 x i8]) %data) #0 { +define signext i8 @caller_1(ptr nocapture readonly byval([1 x i8]) %data) #0 { ; P8LE-LABEL: caller_1: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -115,15 +115,13 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [1 x i8], align 1 - %.elt = getelementptr inbounds [1 x i8], [1 x i8]* %data, i64 0, i64 0 - %.unpack = load i8, i8* %.elt, align 1 - %.temp.0.gep = getelementptr inbounds [1 x i8], [1 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack, i8* %.temp.0.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack = load i8, ptr %data, align 1 + store i8 %.unpack, ptr %_param_data, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_2([2 x i8]* nocapture readonly byval([2 x i8]) %data) #0 { +define signext i8 @caller_2(ptr nocapture readonly byval([2 x i8]) %data) #0 { ; P8LE-LABEL: caller_2: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -226,19 +224,17 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [2 x i8], align 1 - %.elt = getelementptr inbounds [2 x i8], [2 x i8]* %data, i64 0, i64 0 - %.unpack = load i8, i8* %.elt, align 1 - %.elt1 = getelementptr inbounds [2 x i8], [2 x i8]* %data, i64 0, i64 1 - %.unpack2 = load i8, i8* %.elt1, align 1 - %.temp.0.gep = getelementptr inbounds [2 x i8], [2 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [2 x i8], [2 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack2, i8* %.temp.1.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [2 x i8], ptr %data, i64 0, i64 1 + %.unpack2 = load i8, ptr %.elt1, align 1 + store i8 %.unpack, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [2 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack2, ptr %.temp.1.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_3([3 x i8]* nocapture readonly byval([3 x i8]) %data) #0 { +define signext i8 @caller_3(ptr nocapture readonly byval([3 x i8]) %data) #0 { ; P8LE-LABEL: caller_3: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -365,23 +361,21 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [3 x i8], align 1 - %.elt = getelementptr inbounds [3 x i8], [3 x i8]* %data, i64 0, i64 0 - %.unpack = load i8, i8* %.elt, align 1 - %.elt1 = getelementptr inbounds [3 x i8], [3 x i8]* %data, i64 0, i64 1 - %.unpack2 = load i8, i8* %.elt1, align 1 - %.elt3 = getelementptr inbounds [3 x i8], [3 x i8]* %data, i64 0, i64 2 - %.unpack4 = load i8, i8* %.elt3, align 1 - %.temp.0.gep = getelementptr inbounds [3 x i8], [3 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [3 x i8], [3 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack2, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [3 x i8], [3 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack4, i8* %.temp.2.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [3 x i8], ptr %data, i64 0, i64 1 + %.unpack2 = load i8, ptr %.elt1, align 1 + %.elt3 = getelementptr inbounds [3 x i8], ptr %data, i64 0, i64 2 + %.unpack4 = load i8, ptr %.elt3, align 1 + store i8 %.unpack, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [3 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack2, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [3 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack4, ptr %.temp.2.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_4([4 x i8]* nocapture readonly byval([4 x i8]) %data) #0 { +define signext i8 @caller_4(ptr nocapture readonly byval([4 x i8]) %data) #0 { ; P8LE-LABEL: caller_4: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -484,27 +478,25 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [4 x i8], align 1 - %.elt = getelementptr inbounds [4 x i8], [4 x i8]* %data, i64 0, i64 0 - %.unpack = load i8, i8* %.elt, align 1 - %.elt1 = getelementptr inbounds [4 x i8], [4 x i8]* %data, i64 0, i64 1 - %.unpack2 = load i8, i8* %.elt1, align 1 - %.elt3 = getelementptr inbounds [4 x i8], [4 x i8]* %data, i64 0, i64 2 - %.unpack4 = load i8, i8* %.elt3, align 1 - %.elt5 = getelementptr inbounds [4 x i8], [4 x i8]* %data, i64 0, i64 3 - %.unpack6 = load i8, i8* %.elt5, align 1 - %.temp.0.gep = getelementptr inbounds [4 x i8], [4 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [4 x i8], [4 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack2, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [4 x i8], [4 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack4, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [4 x i8], [4 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack6, i8* %.temp.3.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [4 x i8], ptr %data, i64 0, i64 1 + %.unpack2 = load i8, ptr %.elt1, align 1 + %.elt3 = getelementptr inbounds [4 x i8], ptr %data, i64 0, i64 2 + %.unpack4 = load i8, ptr %.elt3, align 1 + %.elt5 = getelementptr inbounds [4 x i8], ptr %data, i64 0, i64 3 + %.unpack6 = load i8, ptr %.elt5, align 1 + store i8 %.unpack, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [4 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack2, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [4 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack4, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [4 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack6, ptr %.temp.3.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_5([5 x i8]* nocapture readonly byval([5 x i8]) %data) #0 { +define signext i8 @caller_5(ptr nocapture readonly byval([5 x i8]) %data) #0 { ; P8LE-LABEL: caller_5: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -625,31 +617,29 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [5 x i8], align 1 - %.elt = getelementptr inbounds [5 x i8], [5 x i8]* %data, i64 0, i64 0 - %.unpack = load i8, i8* %.elt, align 1 - %.elt1 = getelementptr inbounds [5 x i8], [5 x i8]* %data, i64 0, i64 1 - %.unpack2 = load i8, i8* %.elt1, align 1 - %.elt3 = getelementptr inbounds [5 x i8], [5 x i8]* %data, i64 0, i64 2 - %.unpack4 = load i8, i8* %.elt3, align 1 - %.elt5 = getelementptr inbounds [5 x i8], [5 x i8]* %data, i64 0, i64 3 - %.unpack6 = load i8, i8* %.elt5, align 1 - %.elt7 = getelementptr inbounds [5 x i8], [5 x i8]* %data, i64 0, i64 4 - %.unpack8 = load i8, i8* %.elt7, align 1 - %.temp.0.gep = getelementptr inbounds [5 x i8], [5 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [5 x i8], [5 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack2, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [5 x i8], [5 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack4, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [5 x i8], [5 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack6, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [5 x i8], [5 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack8, i8* %.temp.4.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [5 x i8], ptr %data, i64 0, i64 1 + %.unpack2 = load i8, ptr %.elt1, align 1 + %.elt3 = getelementptr inbounds [5 x i8], ptr %data, i64 0, i64 2 + %.unpack4 = load i8, ptr %.elt3, align 1 + %.elt5 = getelementptr inbounds [5 x i8], ptr %data, i64 0, i64 3 + %.unpack6 = load i8, ptr %.elt5, align 1 + %.elt7 = getelementptr inbounds [5 x i8], ptr %data, i64 0, i64 4 + %.unpack8 = load i8, ptr %.elt7, align 1 + store i8 %.unpack, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [5 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack2, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [5 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack4, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [5 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack6, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [5 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack8, ptr %.temp.4.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_6([6 x i8]* nocapture readonly byval([6 x i8]) %data) #0 { +define signext i8 @caller_6(ptr nocapture readonly byval([6 x i8]) %data) #0 { ; P8LE-LABEL: caller_6: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -776,35 +766,33 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [6 x i8], align 1 - %.elt = getelementptr inbounds [6 x i8], [6 x i8]* %data, i64 0, i64 0 - %.unpack = load i8, i8* %.elt, align 1 - %.elt1 = getelementptr inbounds [6 x i8], [6 x i8]* %data, i64 0, i64 1 - %.unpack2 = load i8, i8* %.elt1, align 1 - %.elt3 = getelementptr inbounds [6 x i8], [6 x i8]* %data, i64 0, i64 2 - %.unpack4 = load i8, i8* %.elt3, align 1 - %.elt5 = getelementptr inbounds [6 x i8], [6 x i8]* %data, i64 0, i64 3 - %.unpack6 = load i8, i8* %.elt5, align 1 - %.elt7 = getelementptr inbounds [6 x i8], [6 x i8]* %data, i64 0, i64 4 - %.unpack8 = load i8, i8* %.elt7, align 1 - %.elt9 = getelementptr inbounds [6 x i8], [6 x i8]* %data, i64 0, i64 5 - %.unpack10 = load i8, i8* %.elt9, align 1 - %.temp.0.gep = getelementptr inbounds [6 x i8], [6 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [6 x i8], [6 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack2, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [6 x i8], [6 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack4, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [6 x i8], [6 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack6, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [6 x i8], [6 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack8, i8* %.temp.4.gep, align 1 - %.temp.5.gep = getelementptr inbounds [6 x i8], [6 x i8]* %_param_data, i64 0, i64 5 - store i8 %.unpack10, i8* %.temp.5.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 1 + %.unpack2 = load i8, ptr %.elt1, align 1 + %.elt3 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 2 + %.unpack4 = load i8, ptr %.elt3, align 1 + %.elt5 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 3 + %.unpack6 = load i8, ptr %.elt5, align 1 + %.elt7 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 4 + %.unpack8 = load i8, ptr %.elt7, align 1 + %.elt9 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 5 + %.unpack10 = load i8, ptr %.elt9, align 1 + store i8 %.unpack, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack2, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack4, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack6, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack8, ptr %.temp.4.gep, align 1 + %.temp.5.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 5 + store i8 %.unpack10, ptr %.temp.5.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -define signext i8 @caller_7([7 x i8]* nocapture readonly byval([7 x i8]) %data) #0 { +define signext i8 @caller_7(ptr nocapture readonly byval([7 x i8]) %data) #0 { ; P8LE-LABEL: caller_7: ; P8LE: # %bb.0: # %entry ; P8LE-NEXT: mflr r0 @@ -949,38 +937,36 @@ ; P10BE-NEXT: blr entry: %_param_data = alloca [7 x i8], align 1 - %.elt = getelementptr inbounds [7 x i8], [7 x i8]* %data, i64 0, i64 0 - %.unpack = load i8, i8* %.elt, align 1 - %.elt1 = getelementptr inbounds [7 x i8], [7 x i8]* %data, i64 0, i64 1 - %.unpack2 = load i8, i8* %.elt1, align 1 - %.elt3 = getelementptr inbounds [7 x i8], [7 x i8]* %data, i64 0, i64 2 - %.unpack4 = load i8, i8* %.elt3, align 1 - %.elt5 = getelementptr inbounds [7 x i8], [7 x i8]* %data, i64 0, i64 3 - %.unpack6 = load i8, i8* %.elt5, align 1 - %.elt7 = getelementptr inbounds [7 x i8], [7 x i8]* %data, i64 0, i64 4 - %.unpack8 = load i8, i8* %.elt7, align 1 - %.elt9 = getelementptr inbounds [7 x i8], [7 x i8]* %data, i64 0, i64 5 - %.unpack10 = load i8, i8* %.elt9, align 1 - %.elt11 = getelementptr inbounds [7 x i8], [7 x i8]* %data, i64 0, i64 6 - %.unpack12 = load i8, i8* %.elt11, align 1 - %.temp.0.gep = getelementptr inbounds [7 x i8], [7 x i8]* %_param_data, i64 0, i64 0 - store i8 %.unpack, i8* %.temp.0.gep, align 1 - %.temp.1.gep = getelementptr inbounds [7 x i8], [7 x i8]* %_param_data, i64 0, i64 1 - store i8 %.unpack2, i8* %.temp.1.gep, align 1 - %.temp.2.gep = getelementptr inbounds [7 x i8], [7 x i8]* %_param_data, i64 0, i64 2 - store i8 %.unpack4, i8* %.temp.2.gep, align 1 - %.temp.3.gep = getelementptr inbounds [7 x i8], [7 x i8]* %_param_data, i64 0, i64 3 - store i8 %.unpack6, i8* %.temp.3.gep, align 1 - %.temp.4.gep = getelementptr inbounds [7 x i8], [7 x i8]* %_param_data, i64 0, i64 4 - store i8 %.unpack8, i8* %.temp.4.gep, align 1 - %.temp.5.gep = getelementptr inbounds [7 x i8], [7 x i8]* %_param_data, i64 0, i64 5 - store i8 %.unpack10, i8* %.temp.5.gep, align 1 - %.temp.6.gep = getelementptr inbounds [7 x i8], [7 x i8]* %_param_data, i64 0, i64 6 - store i8 %.unpack12, i8* %.temp.6.gep, align 1 - call void @callee(i8* nonnull %.temp.0.gep) + %.unpack = load i8, ptr %data, align 1 + %.elt1 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 1 + %.unpack2 = load i8, ptr %.elt1, align 1 + %.elt3 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 2 + %.unpack4 = load i8, ptr %.elt3, align 1 + %.elt5 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 3 + %.unpack6 = load i8, ptr %.elt5, align 1 + %.elt7 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 4 + %.unpack8 = load i8, ptr %.elt7, align 1 + %.elt9 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 5 + %.unpack10 = load i8, ptr %.elt9, align 1 + %.elt11 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 6 + %.unpack12 = load i8, ptr %.elt11, align 1 + store i8 %.unpack, ptr %_param_data, align 1 + %.temp.1.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 1 + store i8 %.unpack2, ptr %.temp.1.gep, align 1 + %.temp.2.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 2 + store i8 %.unpack4, ptr %.temp.2.gep, align 1 + %.temp.3.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 3 + store i8 %.unpack6, ptr %.temp.3.gep, align 1 + %.temp.4.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 4 + store i8 %.unpack8, ptr %.temp.4.gep, align 1 + %.temp.5.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 5 + store i8 %.unpack10, ptr %.temp.5.gep, align 1 + %.temp.6.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 6 + store i8 %.unpack12, ptr %.temp.6.gep, align 1 + call void @callee(ptr nonnull %_param_data) ret i8 0 } -declare void @callee(i8*) local_unnamed_addr #0 +declare void @callee(ptr) local_unnamed_addr #0 attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/ppc64-calls.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-calls.ll +++ llvm/test/CodeGen/PowerPC/ppc64-calls.ll @@ -39,7 +39,7 @@ } ; Indirect calls requires a full stub creation -define dso_local void @test_indirect(void ()* nocapture %fp) nounwind { +define dso_local void @test_indirect(ptr nocapture %fp) nounwind { ; CHECK-LABEL: test_indirect: tail call void %fp() nounwind ; CHECK: ld [[FP:[0-9]+]], 0(3) @@ -56,7 +56,7 @@ ; used on 64-bit SVR4 (as e.g. on Darwin). define dso_local void @test_abs() nounwind { ; CHECK-LABEL: test_abs: - tail call void inttoptr (i64 1024 to void ()*)() nounwind + tail call void inttoptr (i64 1024 to ptr)() nounwind ; CHECK: ld [[FP:[0-9]+]], 1024(0) ; CHECK: ld 11, 1040(0) ; CHECK: ld 2, 1032(0) @@ -79,10 +79,10 @@ ; The 'ld 2, 40(1)' really must always come directly after the bctrl to make ; the unwinding code in libgcc happy. -@g = external global void ()* +@g = external global ptr declare void @h(i64) define dso_local void @test_indir_toc_reload(i64 %x) { - %1 = load void ()*, void ()** @g + %1 = load ptr, ptr @g call void %1() call void @h(i64 %x) ret void Index: llvm/test/CodeGen/PowerPC/ppc64-crash.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-crash.ll +++ llvm/test/CodeGen/PowerPC/ppc64-crash.ll @@ -8,7 +8,7 @@ %struct.pos_T = type { i64 } ; check that we're not copying stuff between R and X registers -define internal void @serialize_pos(%struct.pos_T* byval(%struct.pos_T) %pos, %struct.__sFILE* %fp) nounwind { +define internal void @serialize_pos(ptr byval(%struct.pos_T) %pos, ptr %fp) nounwind { entry: ret void } Index: llvm/test/CodeGen/PowerPC/ppc64-func-desc-hoist.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-func-desc-hoist.ll +++ llvm/test/CodeGen/PowerPC/ppc64-func-desc-hoist.ll @@ -4,9 +4,8 @@ target triple = "powerpc64-unknown-linux-gnu" ; Function Attrs: nounwind -define void @bar(void (...)* nocapture %x) #0 { +define void @bar(ptr nocapture %x) #0 { entry: - %callee.knr.cast = bitcast void (...)* %x to void ()* br label %for.body ; INVFUNCDESC-LABEL: @bar @@ -32,7 +31,7 @@ for.body: ; preds = %for.body, %entry %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ] - tail call void %callee.knr.cast() #0 + tail call void %x() #0 %inc = add nuw nsw i32 %i.02, 1 %exitcond = icmp eq i32 %inc, 1600000000 br i1 %exitcond, label %for.end, label %for.body Index: llvm/test/CodeGen/PowerPC/ppc64-get-cache-line-size.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-get-cache-line-size.ll +++ llvm/test/CodeGen/PowerPC/ppc64-get-cache-line-size.ll @@ -9,8 +9,8 @@ ; Function Attrs: nounwind define signext i32 @check_cache_line() local_unnamed_addr { entry: - %call = tail call i32* bitcast (i32* (...)* @magici to i32* ()*)() - %call115 = tail call signext i32 bitcast (i32 (...)* @iter to i32 ()*)() + %call = tail call ptr @magici() + %call115 = tail call signext i32 @iter() %cmp16 = icmp sgt i32 %call115, 0 br i1 %cmp16, label %for.body, label %for.cond.cleanup @@ -21,15 +21,15 @@ for.body: ; preds = %entry, %for.body %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ] %res.017 = phi i32 [ %add5, %for.body ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32, i32* %call, i64 %indvars.iv - %0 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %call, i64 %indvars.iv + %0 = load i32, ptr %arrayidx, align 4 %add = add nsw i32 %0, %res.017 %1 = add nuw nsw i64 %indvars.iv, 16 - %arrayidx4 = getelementptr inbounds i32, i32* %call, i64 %1 - %2 = load i32, i32* %arrayidx4, align 4 + %arrayidx4 = getelementptr inbounds i32, ptr %call, i64 %1 + %2 = load i32, ptr %arrayidx4, align 4 %add5 = add nsw i32 %add, %2 %indvars.iv.next = add nuw i64 %indvars.iv, 1 - %call1 = tail call signext i32 bitcast (i32 (...)* @iter to i32 ()*)() + %call1 = tail call signext i32 @iter() %3 = sext i32 %call1 to i64 %cmp = icmp slt i64 %indvars.iv.next, %3 br i1 %cmp, label %for.body, label %for.cond.cleanup @@ -43,7 +43,7 @@ ; CHECK-DCBT: blr } -declare i32* @magici(...) local_unnamed_addr +declare ptr @magici(...) local_unnamed_addr declare signext i32 @iter(...) local_unnamed_addr Index: llvm/test/CodeGen/PowerPC/ppc64-i128-abi.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-i128-abi.ll +++ llvm/test/CodeGen/PowerPC/ppc64-i128-abi.ll @@ -212,7 +212,7 @@ ; callee. See comments for individual functions above for details on registers ; used for parameters. define <1 x i128> @call_v1i128_increment_by_one() nounwind { - %tmp = load <1 x i128>, <1 x i128>* @x, align 16 + %tmp = load <1 x i128>, ptr @x, align 16 %ret = call <1 x i128> @v1i128_increment_by_one(<1 x i128> %tmp) ret <1 x i128> %ret @@ -241,8 +241,8 @@ } define <1 x i128> @call_v1i128_increment_by_val() nounwind { - %tmp = load <1 x i128>, <1 x i128>* @x, align 16 - %tmp2 = load <1 x i128>, <1 x i128>* @y, align 16 + %tmp = load <1 x i128>, ptr @x, align 16 + %tmp2 = load <1 x i128>, ptr @y, align 16 %ret = call <1 x i128> @v1i128_increment_by_val(<1 x i128> %tmp, <1 x i128> %tmp2) ret <1 x i128> %ret @@ -280,7 +280,7 @@ } define i128 @call_i128_increment_by_one() nounwind { - %tmp = load i128, i128* @a, align 16 + %tmp = load i128, ptr @a, align 16 %ret = call i128 @i128_increment_by_one(i128 %tmp) ret i128 %ret ; %ret4 = call i128 @i128_increment_by_val(i128 %tmp2, i128 %tmp2) @@ -304,8 +304,8 @@ } define i128 @call_i128_increment_by_val() nounwind { - %tmp = load i128, i128* @a, align 16 - %tmp2 = load i128, i128* @b, align 16 + %tmp = load i128, ptr @a, align 16 + %tmp2 = load i128, ptr @b, align 16 %ret = call i128 @i128_increment_by_val(i128 %tmp, i128 %tmp2) ret i128 %ret ; CHECK-LE-LABEL: @call_i128_increment_by_val @@ -363,8 +363,8 @@ define i128 @i128_split() { entry: - %0 = load i128, i128* @a, align 16 - %1 = load i128, i128* @b, align 16 + %0 = load i128, ptr @a, align 16 + %1 = load i128, ptr @b, align 16 %call = tail call i128 @callee_i128_split(i32 1, i128 %0, i32 4, i32 5, i32 6, i32 7, i128 %1, i32 8, i128 9) ret i128 %call Index: llvm/test/CodeGen/PowerPC/ppc64-icbt-pwr7.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-icbt-pwr7.ll +++ llvm/test/CodeGen/PowerPC/ppc64-icbt-pwr7.ll @@ -2,11 +2,11 @@ ; Based on the ppc64-prefetch.ll test ; RUN: not --crash llc -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 < %s 2>&1 | FileCheck %s -declare void @llvm.prefetch(i8*, i32, i32, i32) +declare void @llvm.prefetch(ptr, i32, i32, i32) -define void @test(i8* %a, ...) nounwind { +define void @test(ptr %a, ...) nounwind { entry: - call void @llvm.prefetch(i8* %a, i32 0, i32 3, i32 0) + call void @llvm.prefetch(ptr %a, i32 0, i32 3, i32 0) ret void ; FIXME: Crashing is not really the correct behavior here, we really should just emit nothing Index: llvm/test/CodeGen/PowerPC/ppc64-icbt-pwr8.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-icbt-pwr8.ll +++ llvm/test/CodeGen/PowerPC/ppc64-icbt-pwr8.ll @@ -2,11 +2,11 @@ ; Copied from the ppc64-prefetch.ll test ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck %s -declare void @llvm.prefetch(i8*, i32, i32, i32) +declare void @llvm.prefetch(ptr, i32, i32, i32) -define void @test(i8* %a, ...) nounwind { +define void @test(ptr %a, ...) nounwind { entry: - call void @llvm.prefetch(i8* %a, i32 0, i32 3, i32 0) + call void @llvm.prefetch(ptr %a, i32 0, i32 3, i32 0) ret void ; CHECK-LABEL: @test Index: llvm/test/CodeGen/PowerPC/ppc64-nest.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-nest.ll +++ llvm/test/CodeGen/PowerPC/ppc64-nest.ll @@ -5,26 +5,26 @@ ; Tests that the 'nest' parameter attribute causes the relevant parameter to be ; passed in the right register (r11 for PPC). -define i8* @nest_receiver(i8* nest %arg) nounwind { +define ptr @nest_receiver(ptr nest %arg) nounwind { ; CHECK-LABEL: nest_receiver: ; CHECK: # %bb.0: ; CHECK-NEXT: mr 3, 11 ; CHECK-NEXT: blr - ret i8* %arg + ret ptr %arg } -define i8* @nest_caller(i8* %arg) nounwind { +define ptr @nest_caller(ptr %arg) nounwind { ; CHECK-LABEL: nest_caller: ; CHECK: mr 11, 3 ; CHECK-NEXT: bl nest_receiver ; CHECK: blr - %result = call i8* @nest_receiver(i8* nest %arg) - ret i8* %result + %result = call ptr @nest_receiver(ptr nest %arg) + ret ptr %result } -define void @test_indirect(i32 ()* nocapture %f, i8* %p) { +define void @test_indirect(ptr nocapture %f, ptr %p) { entry: ; CHECK-LABEL: test_indirect @@ -35,8 +35,7 @@ ; CHECK: bctrl ; CHECK: blr - %callee.knr.cast = bitcast i32 ()* %f to i32 (i8*)* - %call = tail call signext i32 %callee.knr.cast(i8* nest %p) + %call = tail call signext i32 %f(ptr nest %p) ret void } Index: llvm/test/CodeGen/PowerPC/ppc64-nonfunc-calls.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-nonfunc-calls.ll +++ llvm/test/CodeGen/PowerPC/ppc64-nonfunc-calls.ll @@ -11,7 +11,7 @@ ; Function Attrs: nounwind define dso_local void @foo() #0 { entry: - tail call void bitcast ([33 x i8]* @something to void ()*)() #0 + tail call void @something() #0 ret void ; CHECK-LABEL: @foo @@ -30,7 +30,7 @@ ; Function Attrs: nounwind define dso_local void @bar() #0 { entry: - tail call void bitcast (%struct.cd* @tls_something to void ()*)() #0 + tail call void @tls_something() #0 ret void ; CHECK-LABEL: @bar @@ -49,7 +49,7 @@ ; Function Attrs: nounwind define dso_local void @ext() #0 { entry: - tail call void bitcast (%struct.cd* @extern_something to void ()*)() #0 + tail call void @extern_something() #0 ret void ; CHECK-LABEL: @ext Index: llvm/test/CodeGen/PowerPC/ppc64-pre-inc-no-extra-phi.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-pre-inc-no-extra-phi.ll +++ llvm/test/CodeGen/PowerPC/ppc64-pre-inc-no-extra-phi.ll @@ -11,14 +11,14 @@ while.cond: %l.0 = phi i64 [ 0, %entry ], [ %inc, %while.cond ] - %arrayidx = getelementptr inbounds [100 x i64], [100 x i64]* @perm, i64 0, i64 %l.0 - %0 = load i64, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds [100 x i64], ptr @perm, i64 0, i64 %l.0 + %0 = load i64, ptr %arrayidx, align 8 %cmp = icmp sgt i64 %0, 0 %inc = add nuw nsw i64 %l.0, 1 br i1 %cmp, label %while.cond, label %while.end while.end: - store i64 0, i64* %arrayidx, align 8 + store i64 0, ptr %arrayidx, align 8 ret void ; CHECK-LABEL: sort_basket ; CHECK: addi {{[0-9]+}}, {{[0-9]+}}, -8 Index: llvm/test/CodeGen/PowerPC/ppc64-prefetch.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-prefetch.ll +++ llvm/test/CodeGen/PowerPC/ppc64-prefetch.ll @@ -2,29 +2,29 @@ target triple = "powerpc64-unknown-linux-gnu" ; RUN: llc -verify-machineinstrs -mcpu=a2 < %s | FileCheck %s -define void @test1(i8* %a, ...) nounwind { +define void @test1(ptr %a, ...) nounwind { entry: - call void @llvm.prefetch(i8* %a, i32 0, i32 3, i32 1) + call void @llvm.prefetch(ptr %a, i32 0, i32 3, i32 1) ret void ; CHECK-LABEL: @test1 ; CHECK: dcbt } -declare void @llvm.prefetch(i8*, i32, i32, i32) +declare void @llvm.prefetch(ptr, i32, i32, i32) -define void @test2(i8* %a, ...) nounwind { +define void @test2(ptr %a, ...) nounwind { entry: - call void @llvm.prefetch(i8* %a, i32 1, i32 3, i32 1) + call void @llvm.prefetch(ptr %a, i32 1, i32 3, i32 1) ret void ; CHECK-LABEL: @test2 ; CHECK: dcbtst } -define void @test3(i8* %a, ...) nounwind { +define void @test3(ptr %a, ...) nounwind { entry: - call void @llvm.prefetch(i8* %a, i32 0, i32 3, i32 0) + call void @llvm.prefetch(ptr %a, i32 0, i32 3, i32 0) ret void ; CHECK-LABEL: @test3 Index: llvm/test/CodeGen/PowerPC/ppc64-rop-protection-aix.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-rop-protection-aix.ll +++ llvm/test/CodeGen/PowerPC/ppc64-rop-protection-aix.ll @@ -276,7 +276,7 @@ ;; outside of the initial 288 byte volatile program storage region in the ;; Protected Zone. However, this restriction will be removed in an upcoming ;; revision of the ABI. -define dso_local zeroext i32 @spill(i32* nocapture readonly %in) #0 { +define dso_local zeroext i32 @spill(ptr nocapture readonly %in) #0 { ; BE-P10-LABEL: spill: ; BE-P10: # %bb.0: # %entry ; BE-P10-NEXT: mflr r0 @@ -1904,21 +1904,20 @@ ; BE-32BIT-P8-PRIV-NEXT: blr entry: %local = alloca i32, align 4 - %0 = bitcast i32* %local to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) - %arrayidx = getelementptr inbounds i32, i32* %in, i64 3 - %1 = load i32, i32* %arrayidx, align 4 - store i32 %1, i32* %local, align 4 + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %local) + %arrayidx = getelementptr inbounds i32, ptr %in, i64 3 + %0 = load i32, ptr %arrayidx, align 4 + store i32 %0, ptr %local, align 4 tail call void asm sideeffect "nop", "~{cr2},~{cr3},~{cr4},~{r0},~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15},~{r16},~{r17},~{r18},~{r19},~{r20},~{r21},~{r22},~{r23},~{r24},~{r25},~{r26},~{r27},~{r28},~{r29},~{r30},~{r31},~{f14},~{f15},~{f16},~{f17},~{f18},~{f19},~{f20},~{f21},~{f22},~{f23},~{f24},~{f25},~{f26},~{f27},~{f28},~{f29},~{f30},~{f31},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"() - %call = call zeroext i32 @callee2(i32* nonnull %local) - %arrayidx1 = getelementptr inbounds i32, i32* %in, i64 4 - %2 = load i32, i32* %arrayidx1, align 4 - %add = add i32 %2, %call - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) + %call = call zeroext i32 @callee2(ptr nonnull %local) + %arrayidx1 = getelementptr inbounds i32, ptr %in, i64 4 + %1 = load i32, ptr %arrayidx1, align 4 + %add = add i32 %1, %call + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %local) ret i32 %add } -define dso_local zeroext i32 @shrinkwrap(i32* readonly %in) #0 { +define dso_local zeroext i32 @shrinkwrap(ptr readonly %in) #0 { ; BE-P10-LABEL: shrinkwrap: ; BE-P10: # %bb.0: # %entry ; BE-P10-NEXT: cmpldi r3, 0 @@ -2262,20 +2261,19 @@ ; BE-32BIT-P8-PRIV-NEXT: blr entry: %local = alloca i32, align 4 - %tobool.not = icmp eq i32* %in, null + %tobool.not = icmp eq ptr %in, null br i1 %tobool.not, label %return, label %if.end if.end: ; preds = %entry - %0 = bitcast i32* %local to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) - %arrayidx = getelementptr inbounds i32, i32* %in, i64 3 - %1 = load i32, i32* %arrayidx, align 4 - store i32 %1, i32* %local, align 4 - %call = call zeroext i32 @callee2(i32* nonnull %local) - %arrayidx1 = getelementptr inbounds i32, i32* %in, i64 4 - %2 = load i32, i32* %arrayidx1, align 4 - %add = add i32 %2, %call - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %local) + %arrayidx = getelementptr inbounds i32, ptr %in, i64 3 + %0 = load i32, ptr %arrayidx, align 4 + store i32 %0, ptr %local, align 4 + %call = call zeroext i32 @callee2(ptr nonnull %local) + %arrayidx1 = getelementptr inbounds i32, ptr %in, i64 4 + %1 = load i32, ptr %arrayidx1, align 4 + %add = add i32 %1, %call + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %local) br label %return return: ; preds = %entry, %if.end @@ -2283,7 +2281,7 @@ ret i32 %retval.0 } -define dso_local zeroext i32 @aligned(i32* nocapture readonly %in) #0 { +define dso_local zeroext i32 @aligned(ptr nocapture readonly %in) #0 { ; BE-P10-LABEL: aligned: ; BE-P10: # %bb.0: # %entry ; BE-P10-NEXT: mflr r0 @@ -2797,35 +2795,32 @@ %beforeLocal = alloca i32, align 4 %local = alloca i32, align 32768 %afterLocal = alloca i32, align 4 - %0 = bitcast i32* %beforeLocal to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) - %arrayidx = getelementptr inbounds i32, i32* %in, i64 1 - %1 = load i32, i32* %arrayidx, align 4 - store i32 %1, i32* %beforeLocal, align 4 - %2 = bitcast i32* %local to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %2) - %arrayidx1 = getelementptr inbounds i32, i32* %in, i64 3 - %3 = load i32, i32* %arrayidx1, align 4 - store i32 %3, i32* %local, align 32768 - %4 = bitcast i32* %afterLocal to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %4) - %arrayidx2 = getelementptr inbounds i32, i32* %in, i64 5 - %5 = load i32, i32* %arrayidx2, align 4 - store i32 %5, i32* %afterLocal, align 4 - %call = call zeroext i32 @callee3(i32* nonnull %local, i32* nonnull %beforeLocal, i32* nonnull %afterLocal) - %arrayidx3 = getelementptr inbounds i32, i32* %in, i64 4 - %6 = load i32, i32* %arrayidx3, align 4 - %add = add i32 %6, %call - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %4) - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %2) - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %beforeLocal) + %arrayidx = getelementptr inbounds i32, ptr %in, i64 1 + %0 = load i32, ptr %arrayidx, align 4 + store i32 %0, ptr %beforeLocal, align 4 + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %local) + %arrayidx1 = getelementptr inbounds i32, ptr %in, i64 3 + %1 = load i32, ptr %arrayidx1, align 4 + store i32 %1, ptr %local, align 32768 + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %afterLocal) + %arrayidx2 = getelementptr inbounds i32, ptr %in, i64 5 + %2 = load i32, ptr %arrayidx2, align 4 + store i32 %2, ptr %afterLocal, align 4 + %call = call zeroext i32 @callee3(ptr nonnull %local, ptr nonnull %beforeLocal, ptr nonnull %afterLocal) + %arrayidx3 = getelementptr inbounds i32, ptr %in, i64 4 + %3 = load i32, ptr %arrayidx3, align 4 + %add = add i32 %3, %call + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %afterLocal) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %local) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %beforeLocal) ret i32 %add } declare zeroext i32 @callee(i32 zeroext) local_unnamed_addr -declare zeroext i32 @callee2(i32*) local_unnamed_addr -declare zeroext i32 @callee3(i32*, i32*, i32*) local_unnamed_addr -declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) -declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) +declare zeroext i32 @callee2(ptr) local_unnamed_addr +declare zeroext i32 @callee3(ptr, ptr, ptr) local_unnamed_addr +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/ppc64-rop-protection.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-rop-protection.ll +++ llvm/test/CodeGen/PowerPC/ppc64-rop-protection.ll @@ -413,7 +413,7 @@ ;; outside of the initial 288 byte volatile program storage region in the ;; Protected Zone. However, this restriction will be removed in an upcoming ;; revision of the ABI. -define dso_local zeroext i32 @spill(i32* nocapture readonly %in) #0 { +define dso_local zeroext i32 @spill(ptr nocapture readonly %in) #0 { ; LE-P10-LABEL: spill: ; LE-P10: # %bb.0: # %entry ; LE-P10-NEXT: mflr r0 @@ -2840,21 +2840,20 @@ ; BE-P8-PRIV-NEXT: blr entry: %local = alloca i32, align 4 - %0 = bitcast i32* %local to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) - %arrayidx = getelementptr inbounds i32, i32* %in, i64 3 - %1 = load i32, i32* %arrayidx, align 4 - store i32 %1, i32* %local, align 4 + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %local) + %arrayidx = getelementptr inbounds i32, ptr %in, i64 3 + %0 = load i32, ptr %arrayidx, align 4 + store i32 %0, ptr %local, align 4 tail call void asm sideeffect "nop", "~{cr2},~{cr3},~{cr4},~{r0},~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15},~{r16},~{r17},~{r18},~{r19},~{r20},~{r21},~{r22},~{r23},~{r24},~{r25},~{r26},~{r27},~{r28},~{r29},~{r30},~{r31},~{f14},~{f15},~{f16},~{f17},~{f18},~{f19},~{f20},~{f21},~{f22},~{f23},~{f24},~{f25},~{f26},~{f27},~{f28},~{f29},~{f30},~{f31},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"() - %call = call zeroext i32 @callee2(i32* nonnull %local) - %arrayidx1 = getelementptr inbounds i32, i32* %in, i64 4 - %2 = load i32, i32* %arrayidx1, align 4 - %add = add i32 %2, %call - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) + %call = call zeroext i32 @callee2(ptr nonnull %local) + %arrayidx1 = getelementptr inbounds i32, ptr %in, i64 4 + %1 = load i32, ptr %arrayidx1, align 4 + %add = add i32 %1, %call + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %local) ret i32 %add } -define dso_local zeroext i32 @shrinkwrap(i32* readonly %in) #0 { +define dso_local zeroext i32 @shrinkwrap(ptr readonly %in) #0 { ; LE-P10-LABEL: shrinkwrap: ; LE-P10: # %bb.0: # %entry ; LE-P10-NEXT: cmpldi r3, 0 @@ -3385,20 +3384,19 @@ ; BE-P8-PRIV-NEXT: blr entry: %local = alloca i32, align 4 - %tobool.not = icmp eq i32* %in, null + %tobool.not = icmp eq ptr %in, null br i1 %tobool.not, label %return, label %if.end if.end: ; preds = %entry - %0 = bitcast i32* %local to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) - %arrayidx = getelementptr inbounds i32, i32* %in, i64 3 - %1 = load i32, i32* %arrayidx, align 4 - store i32 %1, i32* %local, align 4 - %call = call zeroext i32 @callee2(i32* nonnull %local) - %arrayidx1 = getelementptr inbounds i32, i32* %in, i64 4 - %2 = load i32, i32* %arrayidx1, align 4 - %add = add i32 %2, %call - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %local) + %arrayidx = getelementptr inbounds i32, ptr %in, i64 3 + %0 = load i32, ptr %arrayidx, align 4 + store i32 %0, ptr %local, align 4 + %call = call zeroext i32 @callee2(ptr nonnull %local) + %arrayidx1 = getelementptr inbounds i32, ptr %in, i64 4 + %1 = load i32, ptr %arrayidx1, align 4 + %add = add i32 %1, %call + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %local) br label %return return: ; preds = %entry, %if.end @@ -3406,7 +3404,7 @@ ret i32 %retval.0 } -define dso_local zeroext i32 @aligned(i32* nocapture readonly %in) #0 { +define dso_local zeroext i32 @aligned(ptr nocapture readonly %in) #0 { ; LE-P10-LABEL: aligned: ; LE-P10: # %bb.0: # %entry ; LE-P10-NEXT: mflr r0 @@ -4191,35 +4189,32 @@ %beforeLocal = alloca i32, align 4 %local = alloca i32, align 32768 %afterLocal = alloca i32, align 4 - %0 = bitcast i32* %beforeLocal to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) - %arrayidx = getelementptr inbounds i32, i32* %in, i64 1 - %1 = load i32, i32* %arrayidx, align 4 - store i32 %1, i32* %beforeLocal, align 4 - %2 = bitcast i32* %local to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %2) - %arrayidx1 = getelementptr inbounds i32, i32* %in, i64 3 - %3 = load i32, i32* %arrayidx1, align 4 - store i32 %3, i32* %local, align 32768 - %4 = bitcast i32* %afterLocal to i8* - call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %4) - %arrayidx2 = getelementptr inbounds i32, i32* %in, i64 5 - %5 = load i32, i32* %arrayidx2, align 4 - store i32 %5, i32* %afterLocal, align 4 - %call = call zeroext i32 @callee3(i32* nonnull %local, i32* nonnull %beforeLocal, i32* nonnull %afterLocal) - %arrayidx3 = getelementptr inbounds i32, i32* %in, i64 4 - %6 = load i32, i32* %arrayidx3, align 4 - %add = add i32 %6, %call - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %4) - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %2) - call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %beforeLocal) + %arrayidx = getelementptr inbounds i32, ptr %in, i64 1 + %0 = load i32, ptr %arrayidx, align 4 + store i32 %0, ptr %beforeLocal, align 4 + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %local) + %arrayidx1 = getelementptr inbounds i32, ptr %in, i64 3 + %1 = load i32, ptr %arrayidx1, align 4 + store i32 %1, ptr %local, align 32768 + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %afterLocal) + %arrayidx2 = getelementptr inbounds i32, ptr %in, i64 5 + %2 = load i32, ptr %arrayidx2, align 4 + store i32 %2, ptr %afterLocal, align 4 + %call = call zeroext i32 @callee3(ptr nonnull %local, ptr nonnull %beforeLocal, ptr nonnull %afterLocal) + %arrayidx3 = getelementptr inbounds i32, ptr %in, i64 4 + %3 = load i32, ptr %arrayidx3, align 4 + %add = add i32 %3, %call + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %afterLocal) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %local) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %beforeLocal) ret i32 %add } declare zeroext i32 @callee(i32 zeroext) local_unnamed_addr -declare zeroext i32 @callee2(i32*) local_unnamed_addr -declare zeroext i32 @callee3(i32*, i32*, i32*) local_unnamed_addr -declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) -declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) +declare zeroext i32 @callee2(ptr) local_unnamed_addr +declare zeroext i32 @callee3(ptr, ptr, ptr) local_unnamed_addr +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/ppc64-sibcall-shrinkwrap.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-sibcall-shrinkwrap.ll +++ llvm/test/CodeGen/PowerPC/ppc64-sibcall-shrinkwrap.ll @@ -9,9 +9,9 @@ declare void @__assert_fail(); define dso_local i8 @_ZNK5clang9NamedDecl23getLinkageAndVisibilityEv( - %"class.clang::NamedDecl"* %this) { + ptr %this) { entry: - %tobool = icmp eq %"class.clang::NamedDecl"* %this, null + %tobool = icmp eq ptr %this, null br i1 %tobool, label %cond.false, label %exit cond.false: @@ -19,12 +19,9 @@ unreachable exit: - %DeclKind = getelementptr inbounds - %"class.clang::NamedDecl", - %"class.clang::NamedDecl"* %this, i64 0, i32 0 - %bf.load = load i32, i32* %DeclKind, align 4 + %bf.load = load i32, ptr %this, align 4 %call.i = tail call i8 @LVComputationKind( - %"class.clang::NamedDecl"* %this, + ptr %this, i32 %bf.load) ret i8 %call.i @@ -38,7 +35,7 @@ } define dso_local fastcc i8 @LVComputationKind( - %"class.clang::NamedDecl"* %D, + ptr %D, i32 %computation) { ret i8 0 } Index: llvm/test/CodeGen/PowerPC/ppc64-sibcall.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-sibcall.ll +++ llvm/test/CodeGen/PowerPC/ppc64-sibcall.ll @@ -11,12 +11,12 @@ %S_32 = type { [7 x i32], i32 } ; Function Attrs: noinline nounwind -define dso_local void @callee_56_copy([7 x i64] %a, %S_56* %b) #0 { ret void } -define dso_local void @callee_64_copy([8 x i64] %a, %S_64* %b) #0 { ret void } +define dso_local void @callee_56_copy([7 x i64] %a, ptr %b) #0 { ret void } +define dso_local void @callee_64_copy([8 x i64] %a, ptr %b) #0 { ret void } ; Function Attrs: nounwind -define dso_local void @caller_56_reorder_copy(%S_56* %b, [7 x i64] %a) #1 { - tail call void @callee_56_copy([7 x i64] %a, %S_56* %b) +define dso_local void @caller_56_reorder_copy(ptr %b, [7 x i64] %a) #1 { + tail call void @callee_56_copy([7 x i64] %a, ptr %b) ret void ; CHECK-SCO-LABEL: caller_56_reorder_copy: @@ -24,8 +24,8 @@ ; CHECK-SCO: TC_RETURNd8 callee_56_copy } -define dso_local void @caller_64_reorder_copy(%S_64* %b, [8 x i64] %a) #1 { - tail call void @callee_64_copy([8 x i64] %a, %S_64* %b) +define dso_local void @caller_64_reorder_copy(ptr %b, [8 x i64] %a) #1 { + tail call void @callee_64_copy([8 x i64] %a, ptr %b) ret void ; CHECK-SCO-LABEL: caller_64_reorder_copy: @@ -67,17 +67,17 @@ } define dso_local void @arg8_callee( - float %a, i32 signext %b, float %c, i32* %d, - i8 zeroext %e, float %f, i32* %g, i32 signext %h) + float %a, i32 signext %b, float %c, ptr %d, + i8 zeroext %e, float %f, ptr %g, i32 signext %h) { ret void } -define dso_local void @arg8_caller(float %a, i32 signext %b, i8 zeroext %c, i32* %d) { +define dso_local void @arg8_caller(float %a, i32 signext %b, i8 zeroext %c, ptr %d) { entry: tail call void @arg8_callee(float undef, i32 signext undef, float undef, - i32* %d, i8 zeroext undef, float undef, - i32* undef, i32 signext undef) + ptr %d, i8 zeroext undef, float undef, + ptr undef, i32 signext undef) ret void ; CHECK-SCO-LABEL: arg8_caller: @@ -87,15 +87,14 @@ ; Struct return test ; Function Attrs: noinline nounwind -define dso_local void @callee_sret_56(%S_56* noalias sret(%S_56) %agg.result) #0 { ret void } -define dso_local void @callee_sret_32(%S_32* noalias sret(%S_32) %agg.result) #0 { ret void } +define dso_local void @callee_sret_56(ptr noalias sret(%S_56) %agg.result) #0 { ret void } +define dso_local void @callee_sret_32(ptr noalias sret(%S_32) %agg.result) #0 { ret void } ; Function Attrs: nounwind -define dso_local void @caller_do_something_sret_32(%S_32* noalias sret(%S_32) %agg.result) #1 { +define dso_local void @caller_do_something_sret_32(ptr noalias sret(%S_32) %agg.result) #1 { %1 = alloca %S_56, align 4 - %2 = bitcast %S_56* %1 to i8* - call void @callee_sret_56(%S_56* nonnull sret(%S_56) %1) - tail call void @callee_sret_32(%S_32* sret(%S_32) %agg.result) + call void @callee_sret_56(ptr nonnull sret(%S_56) %1) + tail call void @callee_sret_32(ptr sret(%S_32) %agg.result) ret void ; CHECK-SCO-LABEL: caller_do_something_sret_32: @@ -105,9 +104,9 @@ ; CHECK-SCO: TC_RETURNd8 callee_sret_32 } -define dso_local void @caller_local_sret_32(%S_32* %a) #1 { +define dso_local void @caller_local_sret_32(ptr %a) #1 { %tmp = alloca %S_32, align 4 - tail call void @callee_sret_32(%S_32* nonnull sret(%S_32) %tmp) + tail call void @callee_sret_32(ptr nonnull sret(%S_32) %tmp) ret void ; CHECK-SCO-LABEL: caller_local_sret_32: @@ -117,9 +116,9 @@ attributes #0 = { noinline nounwind } attributes #1 = { nounwind } -define dso_local void @f128_callee(i32* %ptr, ppc_fp128 %a, ppc_fp128 %b) { ret void } -define dso_local void @f128_caller(i32* %ptr, ppc_fp128 %a, ppc_fp128 %b) { - tail call void @f128_callee(i32* %ptr, ppc_fp128 %a, ppc_fp128 %b) +define dso_local void @f128_callee(ptr %ptr, ppc_fp128 %a, ppc_fp128 %b) { ret void } +define dso_local void @f128_caller(ptr %ptr, ppc_fp128 %a, ppc_fp128 %b) { + tail call void @f128_callee(ptr %ptr, ppc_fp128 %a, ppc_fp128 %b) ret void ; CHECK-SCO-LABEL: f128_caller: @@ -129,9 +128,9 @@ ; weak linkage test %class.T = type { [2 x i8] } -define weak_odr hidden void @wo_hcallee(%class.T* %this, i8* %c) { ret void } -define dso_local void @wo_hcaller(%class.T* %this, i8* %c) { - tail call void @wo_hcallee(%class.T* %this, i8* %c) +define weak_odr hidden void @wo_hcallee(ptr %this, ptr %c) { ret void } +define dso_local void @wo_hcaller(ptr %this, ptr %c) { + tail call void @wo_hcallee(ptr %this, ptr %c) ret void ; CHECK-SCO-LABEL: wo_hcaller: @@ -141,9 +140,9 @@ ; SCM: bl wo_hcallee } -define weak_odr protected void @wo_pcallee(%class.T* %this, i8* %c) { ret void } -define dso_local void @wo_pcaller(%class.T* %this, i8* %c) { - tail call void @wo_pcallee(%class.T* %this, i8* %c) +define weak_odr protected void @wo_pcallee(ptr %this, ptr %c) { ret void } +define dso_local void @wo_pcaller(ptr %this, ptr %c) { + tail call void @wo_pcallee(ptr %this, ptr %c) ret void ; CHECK-SCO-LABEL: wo_pcaller: @@ -153,9 +152,9 @@ ; SCM: bl wo_pcallee } -define weak_odr void @wo_callee(%class.T* %this, i8* %c) { ret void } -define dso_local void @wo_caller(%class.T* %this, i8* %c) { - tail call void @wo_callee(%class.T* %this, i8* %c) +define weak_odr void @wo_callee(ptr %this, ptr %c) { ret void } +define dso_local void @wo_caller(ptr %this, ptr %c) { + tail call void @wo_callee(ptr %this, ptr %c) ret void ; CHECK-SCO-LABEL: wo_caller: @@ -165,9 +164,9 @@ ; SCM: bl wo_callee } -define weak protected void @w_pcallee(i8* %ptr) { ret void } -define dso_local void @w_pcaller(i8* %ptr) { - tail call void @w_pcallee(i8* %ptr) +define weak protected void @w_pcallee(ptr %ptr) { ret void } +define dso_local void @w_pcaller(ptr %ptr) { + tail call void @w_pcallee(ptr %ptr) ret void ; CHECK-SCO-LABEL: w_pcaller: @@ -177,9 +176,9 @@ ; SCM: bl w_pcallee } -define weak hidden void @w_hcallee(i8* %ptr) { ret void } -define dso_local void @w_hcaller(i8* %ptr) { - tail call void @w_hcallee(i8* %ptr) +define weak hidden void @w_hcallee(ptr %ptr) { ret void } +define dso_local void @w_hcaller(ptr %ptr) { + tail call void @w_hcallee(ptr %ptr) ret void ; CHECK-SCO-LABEL: w_hcaller: @@ -189,9 +188,9 @@ ; SCM: bl w_hcallee } -define weak void @w_callee(i8* %ptr) { ret void } -define dso_local void @w_caller(i8* %ptr) { - tail call void @w_callee(i8* %ptr) +define weak void @w_callee(ptr %ptr) { ret void } +define dso_local void @w_caller(ptr %ptr) { + tail call void @w_callee(ptr %ptr) ret void ; CHECK-SCO-LABEL: w_caller: @@ -204,9 +203,9 @@ %struct.byvalTest = type { [8 x i8] } @byval = common global %struct.byvalTest zeroinitializer -define dso_local void @byval_callee(%struct.byvalTest* byval(%struct.byvalTest) %ptr) { ret void } +define dso_local void @byval_callee(ptr byval(%struct.byvalTest) %ptr) { ret void } define dso_local void @byval_caller() { - tail call void @byval_callee(%struct.byvalTest* byval(%struct.byvalTest) @byval) + tail call void @byval_callee(ptr byval(%struct.byvalTest) @byval) ret void ; CHECK-SCO-LABEL: bl byval_callee Index: llvm/test/CodeGen/PowerPC/ppc64-smallarg.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-smallarg.ll +++ llvm/test/CodeGen/PowerPC/ppc64-smallarg.ll @@ -13,12 +13,10 @@ @gs = common global %struct.small_arg zeroinitializer, align 2 @gf = common global float 0.000000e+00, align 4 -define void @callee1(%struct.small_arg* noalias nocapture sret(%struct.small_arg) %agg.result, %struct.large_arg* byval(%struct.large_arg) nocapture readnone %pad, %struct.small_arg* byval(%struct.small_arg) nocapture readonly %x) { +define void @callee1(ptr noalias nocapture sret(%struct.small_arg) %agg.result, ptr byval(%struct.large_arg) nocapture readnone %pad, ptr byval(%struct.small_arg) nocapture readonly %x) { entry: - %0 = bitcast %struct.small_arg* %x to i32* - %1 = bitcast %struct.small_arg* %agg.result to i32* - %2 = load i32, i32* %0, align 2 - store i32 %2, i32* %1, align 2 + %0 = load i32, ptr %x, align 2 + store i32 %0, ptr %agg.result, align 2 ret void } ; CHECK: @callee1 @@ -28,14 +26,14 @@ define void @caller1() { entry: %tmp = alloca %struct.small_arg, align 2 - call void @test1(%struct.small_arg* sret(%struct.small_arg) %tmp, %struct.large_arg* byval(%struct.large_arg) @gl, %struct.small_arg* byval(%struct.small_arg) @gs) + call void @test1(ptr sret(%struct.small_arg) %tmp, ptr byval(%struct.large_arg) @gl, ptr byval(%struct.small_arg) @gs) ret void } ; CHECK: @caller1 ; CHECK: stw {{[0-9]+}}, 124(1) ; CHECK: bl test1 -declare void @test1(%struct.small_arg* sret(%struct.small_arg), %struct.large_arg* byval(%struct.large_arg), %struct.small_arg* byval(%struct.small_arg)) +declare void @test1(ptr sret(%struct.small_arg), ptr byval(%struct.large_arg), ptr byval(%struct.small_arg)) define float @callee2(float %pad1, float %pad2, float %pad3, float %pad4, float %pad5, float %pad6, float %pad7, float %pad8, float %pad9, float %pad10, float %pad11, float %pad12, float %pad13, float %x) { entry: @@ -47,7 +45,7 @@ define void @caller2() { entry: - %0 = load float, float* @gf, align 4 + %0 = load float, ptr @gf, align 4 %call = tail call float @test2(float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float %0) ret void } Index: llvm/test/CodeGen/PowerPC/ppc64-toc.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-toc.ll +++ llvm/test/CodeGen/PowerPC/ppc64-toc.ll @@ -17,7 +17,7 @@ ; CHECK-NEXT: .quad 0 ; CHECK-NEXT: .text ; CHECK-NEXT: .L[[BEGIN]]: - %0 = load i64, i64* @number64, align 8 + %0 = load i64, ptr @number64, align 8 ; CHECK: ld {{[0-9]+}}, .LC{{[0-9]+}}@toc(2) %cmp = icmp eq i64 %0, %a %conv1 = zext i1 %cmp to i64 @@ -28,7 +28,7 @@ entry: ; CHECK-LABEL: internal_static_var: ; CHECK: ld {{[0-9]+}}, .LC{{[0-9]+}}@toc(2) - %0 = load i64, i64* @internal_static_var.x, align 8 + %0 = load i64, ptr @internal_static_var.x, align 8 %cmp = icmp eq i64 %0, %a %conv1 = zext i1 %cmp to i64 ret i64 %conv1 @@ -48,8 +48,8 @@ entry: ; CHECK-LABEL: access_double_array: %idxprom = sext i32 %i to i64 - %arrayidx = getelementptr inbounds [32 x double], [32 x double]* @double_array, i64 0, i64 %idxprom - %0 = load double, double* %arrayidx, align 8 + %arrayidx = getelementptr inbounds [32 x double], ptr @double_array, i64 0, i64 %idxprom + %0 = load double, ptr %arrayidx, align 8 ; CHECK: ld {{[0-9]+}}, .LC{{[0-9]+}}@toc(2) %cmp = fcmp oeq double %0, %a %conv = zext i1 %cmp to i32 Index: llvm/test/CodeGen/PowerPC/ppc64-vaarg-int.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-vaarg-int.ll +++ llvm/test/CodeGen/PowerPC/ppc64-vaarg-int.ll @@ -4,15 +4,14 @@ define i32 @intvaarg(i32 %a, ...) nounwind { entry: - %va = alloca i8*, align 8 - %va1 = bitcast i8** %va to i8* - call void @llvm.va_start(i8* %va1) - %0 = va_arg i8** %va, i32 + %va = alloca ptr, align 8 + call void @llvm.va_start(ptr %va) + %0 = va_arg ptr %va, i32 %sub = sub nsw i32 %a, %0 ret i32 %sub } -declare void @llvm.va_start(i8*) nounwind +declare void @llvm.va_start(ptr) nounwind ; CHECK: @intvaarg ; Make sure that the va pointer is incremented by 8 (not 4). Index: llvm/test/CodeGen/PowerPC/ppc64-varargs.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-varargs.ll +++ llvm/test/CodeGen/PowerPC/ppc64-varargs.ll @@ -50,10 +50,9 @@ ; LE-NEXT: std r4, -8(r1) ; LE-NEXT: blr entry: - %va = alloca i8*, align 8 - %va.cast = bitcast i8** %va to i8* - call void @llvm.va_start(i8* %va.cast) + %va = alloca ptr, align 8 + call void @llvm.va_start(ptr %va) ret i32 0 } -declare void @llvm.va_start(i8*) nounwind +declare void @llvm.va_start(ptr) nounwind Index: llvm/test/CodeGen/PowerPC/ppc64-xxsplti32dx-pattern-check.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64-xxsplti32dx-pattern-check.ll +++ llvm/test/CodeGen/PowerPC/ppc64-xxsplti32dx-pattern-check.ll @@ -14,7 +14,7 @@ define dso_local void @test_xxsplti32dx() local_unnamed_addr { entry: - %i1 = load double, double* undef, align 8 + %i1 = load double, ptr undef, align 8 br label %for.body124 for.body124: @@ -22,8 +22,8 @@ br i1 undef, label %for.body919.preheader, label %for.end1072 for.body919.preheader: - %i4 = load double, double* null, align 8 - %i5 = load double, double* null, align 8 + %i4 = load double, ptr null, align 8 + %i5 = load double, ptr null, align 8 %i15 = insertelement <2 x double> poison, double %i5, i32 0 %i23 = insertelement <2 x double> undef, double %i4, i32 1 %i24 = insertelement <2 x double> %i15, double 0x3FC5555555555555, i32 1 @@ -36,6 +36,6 @@ %E1 = phi double [ %E0, %for.body124 ], [ %sub994, %for.body919.preheader ] %i28 = phi <2 x double> [ zeroinitializer, %for.body124 ], [ %i15, %for.body919.preheader ] tail call void @callee() - store <2 x double> %i28, <2 x double>* undef, align 8 + store <2 x double> %i28, ptr undef, align 8 br label %for.body124 } Index: llvm/test/CodeGen/PowerPC/ppc64le-aggregates.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64le-aggregates.ll +++ llvm/test/CodeGen/PowerPC/ppc64le-aggregates.ll @@ -259,9 +259,9 @@ define void @caller2() { entry: - %0 = load [8 x float], [8 x float]* getelementptr inbounds (%struct.float8, %struct.float8* @g8, i64 0, i32 0), align 4 - %1 = load [5 x float], [5 x float]* getelementptr inbounds (%struct.float5, %struct.float5* @g5, i64 0, i32 0), align 4 - %2 = load [2 x float], [2 x float]* getelementptr inbounds (%struct.float2, %struct.float2* @g2, i64 0, i32 0), align 4 + %0 = load [8 x float], ptr @g8, align 4 + %1 = load [5 x float], ptr @g5, align 4 + %2 = load [2 x float], ptr @g2, align 4 tail call void @test2([8 x float] %0, [5 x float] %1, [2 x float] %2) ret void } @@ -298,8 +298,8 @@ define void @caller3(double %d) { entry: - %0 = load [8 x float], [8 x float]* getelementptr inbounds (%struct.float8, %struct.float8* @g8, i64 0, i32 0), align 4 - %1 = load [5 x float], [5 x float]* getelementptr inbounds (%struct.float5, %struct.float5* @g5, i64 0, i32 0), align 4 + %0 = load [8 x float], ptr @g8, align 4 + %1 = load [5 x float], ptr @g5, align 4 tail call void @test3([8 x float] %0, [5 x float] %1, double %d) ret void } @@ -321,8 +321,8 @@ define void @caller4(float %f) { entry: - %0 = load [8 x float], [8 x float]* getelementptr inbounds (%struct.float8, %struct.float8* @g8, i64 0, i32 0), align 4 - %1 = load [5 x float], [5 x float]* getelementptr inbounds (%struct.float5, %struct.float5* @g5, i64 0, i32 0), align 4 + %0 = load [8 x float], ptr @g8, align 4 + %1 = load [5 x float], ptr @g5, align 4 tail call void @test4([8 x float] %0, [5 x float] %1, float %f) ret void } Index: llvm/test/CodeGen/PowerPC/ppc64le-calls.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64le-calls.ll +++ llvm/test/CodeGen/PowerPC/ppc64le-calls.ll @@ -8,7 +8,7 @@ target triple = "powerpc64le-unknown-linux-gnu" ; Indirect calls requires a full stub creation -define void @test_indirect(void ()* nocapture %fp) { +define void @test_indirect(ptr nocapture %fp) { ; CHECK-LABEL: @test_indirect tail call void %fp() ; CHECK-DAG: std 2, 24(1) Index: llvm/test/CodeGen/PowerPC/ppc64le-crsave.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64le-crsave.ll +++ llvm/test/CodeGen/PowerPC/ppc64le-crsave.ll @@ -2,9 +2,9 @@ target datalayout = "e-m:e-i64:64-n32:64" target triple = "powerpc64le-unknown-linux-gnu" -@_ZTIi = external constant i8* -declare i8* @__cxa_allocate_exception(i64) -declare void @__cxa_throw(i8*, i8*, i8*) +@_ZTIi = external constant ptr +declare ptr @__cxa_allocate_exception(i64) +declare void @__cxa_throw(ptr, ptr, ptr) define void @crsave() { entry: @@ -12,10 +12,9 @@ call void asm sideeffect "", "~{cr3}"() call void asm sideeffect "", "~{cr4}"() - %exception = call i8* @__cxa_allocate_exception(i64 4) - %0 = bitcast i8* %exception to i32* - store i32 0, i32* %0 - call void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIi to i8*), i8* null) + %exception = call ptr @__cxa_allocate_exception(i64 4) + store i32 0, ptr %exception + call void @__cxa_throw(ptr %exception, ptr @_ZTIi, ptr null) unreachable return: ; No predecessors! Index: llvm/test/CodeGen/PowerPC/ppc64le-localentry-large.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64le-localentry-large.ll +++ llvm/test/CodeGen/PowerPC/ppc64le-localentry-large.ll @@ -19,7 +19,7 @@ ; CHECK-NEXT: .Lfunc_lep[[FN]]: ; CHECK-NEXT: .localentry use_toc, .Lfunc_lep[[FN]]-.Lfunc_gep[[FN]] ; CHECK-NEXT: %entry - %0 = load i64, i64* @number64, align 8 + %0 = load i64, ptr @number64, align 8 %cmp = icmp eq i64 %0, %a %conv1 = zext i1 %cmp to i64 ret i64 %conv1 Index: llvm/test/CodeGen/PowerPC/ppc64le-localentry.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64le-localentry.ll +++ llvm/test/CodeGen/PowerPC/ppc64le-localentry.ll @@ -23,7 +23,7 @@ ; CHECK-NEXT: .Lfunc_lep[[FN]]: ; CHECK-NEXT: .localentry use_toc, .Lfunc_lep[[FN]]-.Lfunc_gep[[FN]] ; CHECK-NEXT: %entry - %0 = load i64, i64* @number64, align 8 + %0 = load i64, ptr @number64, align 8 %cmp = icmp eq i64 %0, %a %conv1 = zext i1 %cmp to i64 ret i64 %conv1 Index: llvm/test/CodeGen/PowerPC/ppc64le-smallarg.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc64le-smallarg.ll +++ llvm/test/CodeGen/PowerPC/ppc64le-smallarg.ll @@ -13,12 +13,10 @@ @gs = common global %struct.small_arg zeroinitializer, align 2 @gf = common global float 0.000000e+00, align 4 -define void @callee1(%struct.small_arg* noalias nocapture sret(%struct.small_arg) %agg.result, %struct.large_arg* byval(%struct.large_arg) nocapture readnone %pad, %struct.small_arg* byval(%struct.small_arg) nocapture readonly %x) { +define void @callee1(ptr noalias nocapture sret(%struct.small_arg) %agg.result, ptr byval(%struct.large_arg) nocapture readnone %pad, ptr byval(%struct.small_arg) nocapture readonly %x) { entry: - %0 = bitcast %struct.small_arg* %x to i32* - %1 = bitcast %struct.small_arg* %agg.result to i32* - %2 = load i32, i32* %0, align 2 - store i32 %2, i32* %1, align 2 + %0 = load i32, ptr %x, align 2 + store i32 %0, ptr %agg.result, align 2 ret void } ; CHECK: @callee1 @@ -28,14 +26,14 @@ define void @caller1() { entry: %tmp = alloca %struct.small_arg, align 2 - call void @test1(%struct.small_arg* sret(%struct.small_arg) %tmp, %struct.large_arg* byval(%struct.large_arg) @gl, %struct.small_arg* byval(%struct.small_arg) @gs) + call void @test1(ptr sret(%struct.small_arg) %tmp, ptr byval(%struct.large_arg) @gl, ptr byval(%struct.small_arg) @gs) ret void } ; CHECK: @caller1 ; CHECK: stw {{[0-9]+}}, 104(1) ; CHECK: bl test1 -declare void @test1(%struct.small_arg* sret(%struct.small_arg), %struct.large_arg* byval(%struct.large_arg), %struct.small_arg* byval(%struct.small_arg)) +declare void @test1(ptr sret(%struct.small_arg), ptr byval(%struct.large_arg), ptr byval(%struct.small_arg)) define float @callee2(float %pad1, float %pad2, float %pad3, float %pad4, float %pad5, float %pad6, float %pad7, float %pad8, float %pad9, float %pad10, float %pad11, float %pad12, float %pad13, float %x) { entry: @@ -47,7 +45,7 @@ define void @caller2() { entry: - %0 = load float, float* @gf, align 4 + %0 = load float, ptr @gf, align 4 %call = tail call float @test2(float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float %0) ret void } Index: llvm/test/CodeGen/PowerPC/ppc_fp128-bcwriter.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppc_fp128-bcwriter.ll +++ llvm/test/CodeGen/PowerPC/ppc_fp128-bcwriter.ll @@ -6,10 +6,10 @@ define i32 @main() local_unnamed_addr { _main_entry: %e3 = alloca ppc_fp128, align 16 - store ppc_fp128 0xM0000000000000000FFFFFFFFFFFFFFFF, ppc_fp128* %e3, align 16 - %0 = call i64 @foo( ppc_fp128* nonnull %e3) + store ppc_fp128 0xM0000000000000000FFFFFFFFFFFFFFFF, ptr %e3, align 16 + %0 = call i64 @foo( ptr nonnull %e3) ret i32 undef } -declare i64 @foo(ppc_fp128 *) +declare i64 @foo(ptr) Index: llvm/test/CodeGen/PowerPC/ppcf128-1.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppcf128-1.ll +++ llvm/test/CodeGen/PowerPC/ppcf128-1.ll @@ -5,88 +5,88 @@ define ppc_fp128 @plus(ppc_fp128 %x, ppc_fp128 %y) { entry: - %x_addr = alloca ppc_fp128 ; [#uses=2] - %y_addr = alloca ppc_fp128 ; [#uses=2] - %retval = alloca ppc_fp128, align 16 ; [#uses=2] - %tmp = alloca ppc_fp128, align 16 ; [#uses=2] + %x_addr = alloca ppc_fp128 ; [#uses=2] + %y_addr = alloca ppc_fp128 ; [#uses=2] + %retval = alloca ppc_fp128, align 16 ; [#uses=2] + %tmp = alloca ppc_fp128, align 16 ; [#uses=2] %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store ppc_fp128 %x, ppc_fp128* %x_addr - store ppc_fp128 %y, ppc_fp128* %y_addr - %tmp1 = load ppc_fp128, ppc_fp128* %x_addr, align 16 ; [#uses=1] - %tmp2 = load ppc_fp128, ppc_fp128* %y_addr, align 16 ; [#uses=1] + store ppc_fp128 %x, ptr %x_addr + store ppc_fp128 %y, ptr %y_addr + %tmp1 = load ppc_fp128, ptr %x_addr, align 16 ; [#uses=1] + %tmp2 = load ppc_fp128, ptr %y_addr, align 16 ; [#uses=1] %tmp3 = fadd ppc_fp128 %tmp1, %tmp2 ; [#uses=1] - store ppc_fp128 %tmp3, ppc_fp128* %tmp, align 16 - %tmp4 = load ppc_fp128, ppc_fp128* %tmp, align 16 ; [#uses=1] - store ppc_fp128 %tmp4, ppc_fp128* %retval, align 16 + store ppc_fp128 %tmp3, ptr %tmp, align 16 + %tmp4 = load ppc_fp128, ptr %tmp, align 16 ; [#uses=1] + store ppc_fp128 %tmp4, ptr %retval, align 16 br label %return return: ; preds = %entry - %retval5 = load ppc_fp128, ppc_fp128* %retval ; [#uses=1] + %retval5 = load ppc_fp128, ptr %retval ; [#uses=1] ret ppc_fp128 %retval5 } define ppc_fp128 @minus(ppc_fp128 %x, ppc_fp128 %y) { entry: - %x_addr = alloca ppc_fp128 ; [#uses=2] - %y_addr = alloca ppc_fp128 ; [#uses=2] - %retval = alloca ppc_fp128, align 16 ; [#uses=2] - %tmp = alloca ppc_fp128, align 16 ; [#uses=2] + %x_addr = alloca ppc_fp128 ; [#uses=2] + %y_addr = alloca ppc_fp128 ; [#uses=2] + %retval = alloca ppc_fp128, align 16 ; [#uses=2] + %tmp = alloca ppc_fp128, align 16 ; [#uses=2] %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store ppc_fp128 %x, ppc_fp128* %x_addr - store ppc_fp128 %y, ppc_fp128* %y_addr - %tmp1 = load ppc_fp128, ppc_fp128* %x_addr, align 16 ; [#uses=1] - %tmp2 = load ppc_fp128, ppc_fp128* %y_addr, align 16 ; [#uses=1] + store ppc_fp128 %x, ptr %x_addr + store ppc_fp128 %y, ptr %y_addr + %tmp1 = load ppc_fp128, ptr %x_addr, align 16 ; [#uses=1] + %tmp2 = load ppc_fp128, ptr %y_addr, align 16 ; [#uses=1] %tmp3 = fsub ppc_fp128 %tmp1, %tmp2 ; [#uses=1] - store ppc_fp128 %tmp3, ppc_fp128* %tmp, align 16 - %tmp4 = load ppc_fp128, ppc_fp128* %tmp, align 16 ; [#uses=1] - store ppc_fp128 %tmp4, ppc_fp128* %retval, align 16 + store ppc_fp128 %tmp3, ptr %tmp, align 16 + %tmp4 = load ppc_fp128, ptr %tmp, align 16 ; [#uses=1] + store ppc_fp128 %tmp4, ptr %retval, align 16 br label %return return: ; preds = %entry - %retval5 = load ppc_fp128, ppc_fp128* %retval ; [#uses=1] + %retval5 = load ppc_fp128, ptr %retval ; [#uses=1] ret ppc_fp128 %retval5 } define ppc_fp128 @times(ppc_fp128 %x, ppc_fp128 %y) { entry: - %x_addr = alloca ppc_fp128 ; [#uses=2] - %y_addr = alloca ppc_fp128 ; [#uses=2] - %retval = alloca ppc_fp128, align 16 ; [#uses=2] - %tmp = alloca ppc_fp128, align 16 ; [#uses=2] + %x_addr = alloca ppc_fp128 ; [#uses=2] + %y_addr = alloca ppc_fp128 ; [#uses=2] + %retval = alloca ppc_fp128, align 16 ; [#uses=2] + %tmp = alloca ppc_fp128, align 16 ; [#uses=2] %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store ppc_fp128 %x, ppc_fp128* %x_addr - store ppc_fp128 %y, ppc_fp128* %y_addr - %tmp1 = load ppc_fp128, ppc_fp128* %x_addr, align 16 ; [#uses=1] - %tmp2 = load ppc_fp128, ppc_fp128* %y_addr, align 16 ; [#uses=1] + store ppc_fp128 %x, ptr %x_addr + store ppc_fp128 %y, ptr %y_addr + %tmp1 = load ppc_fp128, ptr %x_addr, align 16 ; [#uses=1] + %tmp2 = load ppc_fp128, ptr %y_addr, align 16 ; [#uses=1] %tmp3 = fmul ppc_fp128 %tmp1, %tmp2 ; [#uses=1] - store ppc_fp128 %tmp3, ppc_fp128* %tmp, align 16 - %tmp4 = load ppc_fp128, ppc_fp128* %tmp, align 16 ; [#uses=1] - store ppc_fp128 %tmp4, ppc_fp128* %retval, align 16 + store ppc_fp128 %tmp3, ptr %tmp, align 16 + %tmp4 = load ppc_fp128, ptr %tmp, align 16 ; [#uses=1] + store ppc_fp128 %tmp4, ptr %retval, align 16 br label %return return: ; preds = %entry - %retval5 = load ppc_fp128, ppc_fp128* %retval ; [#uses=1] + %retval5 = load ppc_fp128, ptr %retval ; [#uses=1] ret ppc_fp128 %retval5 } define ppc_fp128 @divide(ppc_fp128 %x, ppc_fp128 %y) { entry: - %x_addr = alloca ppc_fp128 ; [#uses=2] - %y_addr = alloca ppc_fp128 ; [#uses=2] - %retval = alloca ppc_fp128, align 16 ; [#uses=2] - %tmp = alloca ppc_fp128, align 16 ; [#uses=2] + %x_addr = alloca ppc_fp128 ; [#uses=2] + %y_addr = alloca ppc_fp128 ; [#uses=2] + %retval = alloca ppc_fp128, align 16 ; [#uses=2] + %tmp = alloca ppc_fp128, align 16 ; [#uses=2] %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store ppc_fp128 %x, ppc_fp128* %x_addr - store ppc_fp128 %y, ppc_fp128* %y_addr - %tmp1 = load ppc_fp128, ppc_fp128* %x_addr, align 16 ; [#uses=1] - %tmp2 = load ppc_fp128, ppc_fp128* %y_addr, align 16 ; [#uses=1] + store ppc_fp128 %x, ptr %x_addr + store ppc_fp128 %y, ptr %y_addr + %tmp1 = load ppc_fp128, ptr %x_addr, align 16 ; [#uses=1] + %tmp2 = load ppc_fp128, ptr %y_addr, align 16 ; [#uses=1] %tmp3 = fdiv ppc_fp128 %tmp1, %tmp2 ; [#uses=1] - store ppc_fp128 %tmp3, ppc_fp128* %tmp, align 16 - %tmp4 = load ppc_fp128, ppc_fp128* %tmp, align 16 ; [#uses=1] - store ppc_fp128 %tmp4, ppc_fp128* %retval, align 16 + store ppc_fp128 %tmp3, ptr %tmp, align 16 + %tmp4 = load ppc_fp128, ptr %tmp, align 16 ; [#uses=1] + store ppc_fp128 %tmp4, ptr %retval, align 16 br label %return return: ; preds = %entry - %retval5 = load ppc_fp128, ppc_fp128* %retval ; [#uses=1] + %retval5 = load ppc_fp128, ptr %retval ; [#uses=1] ret ppc_fp128 %retval5 } Index: llvm/test/CodeGen/PowerPC/ppcf128-3.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppcf128-3.ll +++ llvm/test/CodeGen/PowerPC/ppcf128-3.ll @@ -1,28 +1,28 @@ ; RUN: llc -verify-machineinstrs < %s -mtriple=ppc32-- %struct.stp_sequence = type { double, double } -define i32 @stp_sequence_set_short_data(%struct.stp_sequence* %sequence, i32 %count, i16* %data) { +define i32 @stp_sequence_set_short_data(ptr %sequence, i32 %count, ptr %data) { entry: %tmp1112 = sitofp i16 0 to ppc_fp128 ; [#uses=1] %tmp13 = call i32 (...) @__inline_isfinite( ppc_fp128 %tmp1112 ) nounwind ; [#uses=0] ret i32 0 } -define i32 @stp_sequence_set_short_data2(%struct.stp_sequence* %sequence, i32 %count, i16* %data) { +define i32 @stp_sequence_set_short_data2(ptr %sequence, i32 %count, ptr %data) { entry: %tmp1112 = sitofp i8 0 to ppc_fp128 ; [#uses=1] %tmp13 = call i32 (...) @__inline_isfinite( ppc_fp128 %tmp1112 ) nounwind ; [#uses=0] ret i32 0 } -define i32 @stp_sequence_set_short_data3(%struct.stp_sequence* %sequence, i32 %count, i16* %data) { +define i32 @stp_sequence_set_short_data3(ptr %sequence, i32 %count, ptr %data) { entry: %tmp1112 = uitofp i16 0 to ppc_fp128 ; [#uses=1] %tmp13 = call i32 (...) @__inline_isfinite( ppc_fp128 %tmp1112 ) nounwind ; [#uses=0] ret i32 0 } -define i32 @stp_sequence_set_short_data4(%struct.stp_sequence* %sequence, i32 %count, i16* %data) { +define i32 @stp_sequence_set_short_data4(ptr %sequence, i32 %count, ptr %data) { entry: %tmp1112 = uitofp i8 0 to ppc_fp128 ; [#uses=1] %tmp13 = call i32 (...) @__inline_isfinite( ppc_fp128 %tmp1112 ) nounwind ; [#uses=0] Index: llvm/test/CodeGen/PowerPC/ppcf128-constrained-fp-intrinsics.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppcf128-constrained-fp-intrinsics.ll +++ llvm/test/CodeGen/PowerPC/ppcf128-constrained-fp-intrinsics.ll @@ -1413,7 +1413,7 @@ ; Test that resultant libcalls retain order even when their non-strict FLOP form could be ; trivially optimized into differing sequences. -define void @test_constrained_libcall_multichain(float* %firstptr, ppc_fp128* %result) #0 { +define void @test_constrained_libcall_multichain(ptr %firstptr, ptr %result) #0 { ; PC64LE-LABEL: test_constrained_libcall_multichain: ; PC64LE: # %bb.0: ; PC64LE-NEXT: mflr 0 @@ -1570,11 +1570,11 @@ ; PC64-NEXT: ld 0, 16(1) ; PC64-NEXT: mtlr 0 ; PC64-NEXT: blr - %load = load float, float* %firstptr + %load = load float, ptr %firstptr %first = call ppc_fp128 @llvm.experimental.constrained.fpext.f32.ppcf128( float %load, metadata !"fpexcept.strict") #1 - store ppc_fp128 %first, ppc_fp128* %result + store ppc_fp128 %first, ptr %result ; For unconstrained FLOPs, these next two FP instructions would necessarily ; be executed in series with one another. @@ -1583,15 +1583,15 @@ ppc_fp128 %first, metadata !"round.dynamic", metadata !"fpexcept.strict") #1 - %stridx1 = getelementptr ppc_fp128, ppc_fp128* %result, i32 1 - store ppc_fp128 %fadd, ppc_fp128* %stridx1 + %stridx1 = getelementptr ppc_fp128, ptr %result, i32 1 + store ppc_fp128 %fadd, ptr %stridx1 %fmul = call ppc_fp128 @llvm.experimental.constrained.fmul.ppcf128( ppc_fp128 %fadd, ppc_fp128 %fadd, metadata !"round.dynamic", metadata !"fpexcept.strict") #1 - %stridx2 = getelementptr ppc_fp128, ppc_fp128* %stridx1, i32 1 - store ppc_fp128 %fadd, ppc_fp128* %stridx2 + %stridx2 = getelementptr ppc_fp128, ptr %stridx1, i32 1 + store ppc_fp128 %fadd, ptr %stridx2 ; For unconstrained FLOPs, these next two FP instructions could be reordered ; or even executed in parallel with respect to the previous two instructions. @@ -1605,9 +1605,9 @@ ppc_fp128 %powi, metadata !"round.dynamic", metadata !"fpexcept.strict") #1 - store float %tinypow, float* %firstptr - %stridxn1 = getelementptr ppc_fp128, ppc_fp128* %result, i32 -1 - store ppc_fp128 %powi, ppc_fp128* %stridxn1 + store float %tinypow, ptr %firstptr + %stridxn1 = getelementptr ppc_fp128, ptr %result, i32 -1 + store ppc_fp128 %powi, ptr %stridxn1 ret void } Index: llvm/test/CodeGen/PowerPC/ppcf128-endian.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppcf128-endian.ll +++ llvm/test/CodeGen/PowerPC/ppcf128-endian.ll @@ -18,9 +18,9 @@ ; CHECK-NEXT: blr entry: %x.addr = alloca ppc_fp128, align 16 - store ppc_fp128 %x, ppc_fp128* %x.addr, align 16 - %0 = load ppc_fp128, ppc_fp128* %x.addr, align 16 - store ppc_fp128 %0, ppc_fp128* @g, align 16 + store ppc_fp128 %x, ptr %x.addr, align 16 + %0 = load ppc_fp128, ptr %x.addr, align 16 + store ppc_fp128 %0, ptr @g, align 16 ret void } @@ -43,7 +43,7 @@ ; CHECK-NEXT: mtlr 0 ; CHECK-NEXT: blr entry: - %0 = load ppc_fp128, ppc_fp128* @g, align 16 + %0 = load ppc_fp128, ptr @g, align 16 call void @test(ppc_fp128 %0) ret void } @@ -82,7 +82,7 @@ ; CHECK-NEXT: lfd 2, 8(3) ; CHECK-NEXT: blr entry: - %0 = load ppc_fp128, ppc_fp128* @g, align 16 + %0 = load ppc_fp128, ptr @g, align 16 ret ppc_fp128 %0 } @@ -106,7 +106,7 @@ ; CHECK-NEXT: blr entry: %call = tail call ppc_fp128 @test_result() #3 - store ppc_fp128 %call, ppc_fp128* @g, align 16 + store ppc_fp128 %call, ptr @g, align 16 ret void } @@ -191,7 +191,7 @@ ret double %conv } -declare void @llvm.va_start(i8*) +declare void @llvm.va_start(ptr) define double @vararg(i32 %a, ...) { ; CHECK-LABEL: vararg: @@ -212,10 +212,9 @@ ; CHECK-NEXT: std 3, -8(1) ; CHECK-NEXT: blr entry: - %va = alloca i8*, align 8 - %va1 = bitcast i8** %va to i8* - call void @llvm.va_start(i8* %va1) - %arg = va_arg i8** %va, ppc_fp128 + %va = alloca ptr, align 8 + call void @llvm.va_start(ptr %va) + %arg = va_arg ptr %va, ppc_fp128 %conv = fptrunc ppc_fp128 %arg to double ret double %conv } Index: llvm/test/CodeGen/PowerPC/ppcf128sf.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppcf128sf.ll +++ llvm/test/CodeGen/PowerPC/ppcf128sf.ll @@ -11,22 +11,22 @@ define void @foo() #0 { entry: %c = alloca ppc_fp128, align 16 - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 - %1 = load ppc_fp128, ppc_fp128* @ld2, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 + %1 = load ppc_fp128, ptr @ld2, align 16 %add = fadd ppc_fp128 %0, %1 - store volatile ppc_fp128 %add, ppc_fp128* %c, align 16 - %2 = load ppc_fp128, ppc_fp128* @ld, align 16 - %3 = load ppc_fp128, ppc_fp128* @ld2, align 16 + store volatile ppc_fp128 %add, ptr %c, align 16 + %2 = load ppc_fp128, ptr @ld, align 16 + %3 = load ppc_fp128, ptr @ld2, align 16 %sub = fsub ppc_fp128 %2, %3 - store volatile ppc_fp128 %sub, ppc_fp128* %c, align 16 - %4 = load ppc_fp128, ppc_fp128* @ld, align 16 - %5 = load ppc_fp128, ppc_fp128* @ld2, align 16 + store volatile ppc_fp128 %sub, ptr %c, align 16 + %4 = load ppc_fp128, ptr @ld, align 16 + %5 = load ppc_fp128, ptr @ld2, align 16 %mul = fmul ppc_fp128 %4, %5 - store volatile ppc_fp128 %mul, ppc_fp128* %c, align 16 - %6 = load ppc_fp128, ppc_fp128* @ld, align 16 - %7 = load ppc_fp128, ppc_fp128* @ld2, align 16 + store volatile ppc_fp128 %mul, ptr %c, align 16 + %6 = load ppc_fp128, ptr @ld, align 16 + %7 = load ppc_fp128, ptr @ld2, align 16 %div = fdiv ppc_fp128 %6, %7 - store volatile ppc_fp128 %div, ppc_fp128* %c, align 16 + store volatile ppc_fp128 %div, ptr %c, align 16 ret void ; CHECK-LABEL: __gcc_qadd @@ -37,9 +37,9 @@ define void @foo1() #0 { entry: - %0 = load double, double* @d, align 8 + %0 = load double, ptr @d, align 8 %conv = fpext double %0 to ppc_fp128 - store ppc_fp128 %conv, ppc_fp128* @ld, align 16 + store ppc_fp128 %conv, ptr @ld, align 16 ret void ; CHECK-LABEL: __gcc_dtoq @@ -47,9 +47,9 @@ define void @foo2() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 %conv = fptrunc ppc_fp128 %0 to double - store double %conv, double* @d, align 8 + store double %conv, ptr @d, align 8 ret void ; CHECK-LABEL: __gcc_qtod @@ -57,9 +57,9 @@ define void @foo3() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 %conv = fptrunc ppc_fp128 %0 to float - store float %conv, float* @f, align 4 + store float %conv, ptr @f, align 4 ret void ; CHECK-LABEL: __gcc_qtos @@ -67,9 +67,9 @@ define void @foo4() #0 { entry: - %0 = load i32, i32* @i, align 4 + %0 = load i32, ptr @i, align 4 %conv = sitofp i32 %0 to ppc_fp128 - store ppc_fp128 %conv, ppc_fp128* @ld, align 16 + store ppc_fp128 %conv, ptr @ld, align 16 ret void ; CHECK-LABEL: __gcc_itoq @@ -77,9 +77,9 @@ define void @foo5() #0 { entry: - %0 = load i32, i32* @ui, align 4 + %0 = load i32, ptr @ui, align 4 %conv = uitofp i32 %0 to ppc_fp128 - store ppc_fp128 %conv, ppc_fp128* @ld, align 16 + store ppc_fp128 %conv, ptr @ld, align 16 ret void ; CHECK-LABEL: __gcc_utoq @@ -87,12 +87,12 @@ define void @foo6() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 - %1 = load ppc_fp128, ppc_fp128* @ld2, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 + %1 = load ppc_fp128, ptr @ld2, align 16 %cmp = fcmp oeq ppc_fp128 %0, %1 %conv = zext i1 %cmp to i32 %conv1 = trunc i32 %conv to i8 - store i8 %conv1, i8* @var, align 1 + store i8 %conv1, ptr @var, align 1 ret void ; CHECK-LABEL: __gcc_qeq @@ -100,12 +100,12 @@ define void @foo7() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 - %1 = load ppc_fp128, ppc_fp128* @ld2, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 + %1 = load ppc_fp128, ptr @ld2, align 16 %cmp = fcmp une ppc_fp128 %0, %1 %conv = zext i1 %cmp to i32 %conv1 = trunc i32 %conv to i8 - store i8 %conv1, i8* @var, align 1 + store i8 %conv1, ptr @var, align 1 ret void ; CHECK-LABEL: __gcc_qne @@ -113,12 +113,12 @@ define void @foo8() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 - %1 = load ppc_fp128, ppc_fp128* @ld2, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 + %1 = load ppc_fp128, ptr @ld2, align 16 %cmp = fcmp ogt ppc_fp128 %0, %1 %conv = zext i1 %cmp to i32 %conv1 = trunc i32 %conv to i8 - store i8 %conv1, i8* @var, align 1 + store i8 %conv1, ptr @var, align 1 ret void ; CHECK-LABEL: __gcc_qgt @@ -126,12 +126,12 @@ define void @foo9() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 - %1 = load ppc_fp128, ppc_fp128* @ld2, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 + %1 = load ppc_fp128, ptr @ld2, align 16 %cmp = fcmp olt ppc_fp128 %0, %1 %conv = zext i1 %cmp to i32 %conv1 = trunc i32 %conv to i8 - store i8 %conv1, i8* @var, align 1 + store i8 %conv1, ptr @var, align 1 ret void ; CHECK-LABEL: __gcc_qlt @@ -139,12 +139,12 @@ define void @foo10() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 - %1 = load ppc_fp128, ppc_fp128* @ld2, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 + %1 = load ppc_fp128, ptr @ld2, align 16 %cmp = fcmp ole ppc_fp128 %0, %1 %conv = zext i1 %cmp to i32 %conv1 = trunc i32 %conv to i8 - store i8 %conv1, i8* @var, align 1 + store i8 %conv1, ptr @var, align 1 ret void ; CHECK-LABEL: __gcc_qle @@ -152,12 +152,12 @@ define void @foo11() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 - %1 = load ppc_fp128, ppc_fp128* @ld, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 + %1 = load ppc_fp128, ptr @ld, align 16 %cmp = fcmp une ppc_fp128 %0, %1 %conv = zext i1 %cmp to i32 %conv1 = trunc i32 %conv to i8 - store i8 %conv1, i8* @var, align 1 + store i8 %conv1, ptr @var, align 1 ret void ; CHECK-LABEL: __gcc_qunord @@ -165,12 +165,12 @@ define void @foo12() #0 { entry: - %0 = load ppc_fp128, ppc_fp128* @ld, align 16 - %1 = load ppc_fp128, ppc_fp128* @ld2, align 16 + %0 = load ppc_fp128, ptr @ld, align 16 + %1 = load ppc_fp128, ptr @ld2, align 16 %cmp = fcmp oge ppc_fp128 %0, %1 %conv = zext i1 %cmp to i32 %conv1 = trunc i32 %conv to i8 - store i8 %conv1, i8* @var, align 1 + store i8 %conv1, ptr @var, align 1 ret void ; CHECK-LABEL: __gcc_qge Index: llvm/test/CodeGen/PowerPC/ppcsoftops.ll =================================================================== --- llvm/test/CodeGen/PowerPC/ppcsoftops.ll +++ llvm/test/CodeGen/PowerPC/ppcsoftops.ll @@ -7,8 +7,8 @@ entry: %a = alloca double, align 8 %b = alloca double, align 8 - %0 = load double, double* %a, align 8 - %1 = load double, double* %b, align 8 + %0 = load double, ptr %a, align 8 + %1 = load double, ptr %b, align 8 %add = fadd double %0, %1 ret double %add @@ -19,8 +19,8 @@ entry: %a = alloca double, align 8 %b = alloca double, align 8 - %0 = load double, double* %a, align 8 - %1 = load double, double* %b, align 8 + %0 = load double, ptr %a, align 8 + %1 = load double, ptr %b, align 8 %mul = fmul double %0, %1 ret double %mul @@ -31,8 +31,8 @@ entry: %a = alloca double, align 8 %b = alloca double, align 8 - %0 = load double, double* %a, align 8 - %1 = load double, double* %b, align 8 + %0 = load double, ptr %a, align 8 + %1 = load double, ptr %b, align 8 %sub = fsub double %0, %1 ret double %sub @@ -43,8 +43,8 @@ entry: %a = alloca double, align 8 %b = alloca double, align 8 - %0 = load double, double* %a, align 8 - %1 = load double, double* %b, align 8 + %0 = load double, ptr %a, align 8 + %1 = load double, ptr %b, align 8 %div = fdiv double %0, %1 ret double %div Index: llvm/test/CodeGen/PowerPC/pr13891.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr13891.ll +++ llvm/test/CodeGen/PowerPC/pr13891.ll @@ -4,14 +4,13 @@ %struct.foo = type { i8, i8 } -define void @_Z5check3foos(%struct.foo* nocapture byval(%struct.foo) %f, i16 signext %i) noinline { +define void @_Z5check3foos(ptr nocapture byval(%struct.foo) %f, i16 signext %i) noinline { ; CHECK-LABEL: _Z5check3foos: ; CHECK: sth 3, {{[0-9]+}}(1) ; CHECK: lbz {{[0-9]+}}, {{[0-9]+}}(1) entry: - %0 = bitcast %struct.foo* %f to i16* - %1 = load i16, i16* %0, align 2 - %bf.val.sext = ashr i16 %1, 8 + %0 = load i16, ptr %f, align 2 + %bf.val.sext = ashr i16 %0, 8 %cmp = icmp eq i16 %bf.val.sext, %i br i1 %cmp, label %if.end, label %if.then Index: llvm/test/CodeGen/PowerPC/pr15031.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr15031.ll +++ llvm/test/CodeGen/PowerPC/pr15031.ll @@ -16,176 +16,176 @@ 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-f128:128:128-v128:128:128-n32:64" target triple = "powerpc64-unknown-linux-gnu" -%"class.llvm::MachineMemOperand" = type { %"struct.llvm::MachinePointerInfo", i64, i32, %"class.llvm::MDNode"*, %"class.llvm::MDNode"* } -%"struct.llvm::MachinePointerInfo" = type { %"class.llvm::Value"*, i64 } -%"class.llvm::Value" = type { i32 (...)**, i8, i8, i16, %"class.llvm::Type"*, %"class.llvm::Use"*, %"class.llvm::StringMapEntry"* } -%"class.llvm::Type" = type { %"class.llvm::LLVMContext"*, i32, i32, %"class.llvm::Type"** } -%"class.llvm::LLVMContext" = type { %"class.llvm::LLVMContextImpl"* } +%"class.llvm::MachineMemOperand" = type { %"struct.llvm::MachinePointerInfo", i64, i32, ptr, ptr } +%"struct.llvm::MachinePointerInfo" = type { ptr, i64 } +%"class.llvm::Value" = type { ptr, i8, i8, i16, ptr, ptr, ptr } +%"class.llvm::Type" = type { ptr, i32, i32, ptr } +%"class.llvm::LLVMContext" = type { ptr } %"class.llvm::LLVMContextImpl" = type opaque -%"class.llvm::Use" = type { %"class.llvm::Value"*, %"class.llvm::Use"*, %"class.llvm::PointerIntPair" } +%"class.llvm::Use" = type { ptr, ptr, %"class.llvm::PointerIntPair" } %"class.llvm::PointerIntPair" = type { i64 } %"class.llvm::StringMapEntry" = type opaque %"class.llvm::MDNode" = type { %"class.llvm::Value", %"class.llvm::FoldingSetImpl::Node", i32, i32 } -%"class.llvm::FoldingSetImpl::Node" = type { i8* } -%"class.llvm::MachineInstr" = type { %"class.llvm::ilist_node", %"class.llvm::MCInstrDesc"*, %"class.llvm::MachineBasicBlock"*, %"class.llvm::MachineOperand"*, i32, %"class.llvm::ArrayRecycler::Capacity", i8, i8, i8, %"class.llvm::MachineMemOperand"**, %"class.llvm::DebugLoc" } -%"class.llvm::ilist_node" = type { %"class.llvm::ilist_half_node", %"class.llvm::MachineInstr"* } -%"class.llvm::ilist_half_node" = type { %"class.llvm::MachineInstr"* } -%"class.llvm::MCInstrDesc" = type { i16, i16, i16, i16, i16, i32, i64, i16*, i16*, %"class.llvm::MCOperandInfo"* } +%"class.llvm::FoldingSetImpl::Node" = type { ptr } +%"class.llvm::MachineInstr" = type { %"class.llvm::ilist_node", ptr, ptr, ptr, i32, %"class.llvm::ArrayRecycler::Capacity", i8, i8, i8, ptr, %"class.llvm::DebugLoc" } +%"class.llvm::ilist_node" = type { %"class.llvm::ilist_half_node", ptr } +%"class.llvm::ilist_half_node" = type { ptr } +%"class.llvm::MCInstrDesc" = type { i16, i16, i16, i16, i16, i32, i64, ptr, ptr, ptr } %"class.llvm::MCOperandInfo" = type { i16, i8, i8, i32 } -%"class.llvm::MachineBasicBlock" = type { %"class.llvm::ilist_node.0", %"struct.llvm::ilist", %"class.llvm::BasicBlock"*, i32, %"class.llvm::MachineFunction"*, %"class.std::vector.163", %"class.std::vector.163", %"class.std::vector.123", %"class.std::vector.123", i32, i8, i8 } -%"class.llvm::ilist_node.0" = type { %"class.llvm::ilist_half_node.1", %"class.llvm::MachineBasicBlock"* } -%"class.llvm::ilist_half_node.1" = type { %"class.llvm::MachineBasicBlock"* } +%"class.llvm::MachineBasicBlock" = type { %"class.llvm::ilist_node.0", %"struct.llvm::ilist", ptr, i32, ptr, %"class.std::vector.163", %"class.std::vector.163", %"class.std::vector.123", %"class.std::vector.123", i32, i8, i8 } +%"class.llvm::ilist_node.0" = type { %"class.llvm::ilist_half_node.1", ptr } +%"class.llvm::ilist_half_node.1" = type { ptr } %"struct.llvm::ilist" = type { %"class.llvm::iplist" } -%"class.llvm::iplist" = type { %"struct.llvm::ilist_traits", %"class.llvm::MachineInstr"* } -%"struct.llvm::ilist_traits" = type { %"class.llvm::ilist_half_node", %"class.llvm::MachineBasicBlock"* } -%"class.llvm::BasicBlock" = type { %"class.llvm::Value", %"class.llvm::ilist_node.2", %"class.llvm::iplist.4", %"class.llvm::Function"* } -%"class.llvm::ilist_node.2" = type { %"class.llvm::ilist_half_node.3", %"class.llvm::BasicBlock"* } -%"class.llvm::ilist_half_node.3" = type { %"class.llvm::BasicBlock"* } -%"class.llvm::iplist.4" = type { %"struct.llvm::ilist_traits.5", %"class.llvm::Instruction"* } +%"class.llvm::iplist" = type { %"struct.llvm::ilist_traits", ptr } +%"struct.llvm::ilist_traits" = type { %"class.llvm::ilist_half_node", ptr } +%"class.llvm::BasicBlock" = type { %"class.llvm::Value", %"class.llvm::ilist_node.2", %"class.llvm::iplist.4", ptr } +%"class.llvm::ilist_node.2" = type { %"class.llvm::ilist_half_node.3", ptr } +%"class.llvm::ilist_half_node.3" = type { ptr } +%"class.llvm::iplist.4" = type { %"struct.llvm::ilist_traits.5", ptr } %"struct.llvm::ilist_traits.5" = type { %"class.llvm::ilist_half_node.10" } -%"class.llvm::ilist_half_node.10" = type { %"class.llvm::Instruction"* } -%"class.llvm::Instruction" = type { %"class.llvm::User", %"class.llvm::ilist_node.193", %"class.llvm::BasicBlock"*, %"class.llvm::DebugLoc" } -%"class.llvm::User" = type { %"class.llvm::Value", %"class.llvm::Use"*, i32 } -%"class.llvm::ilist_node.193" = type { %"class.llvm::ilist_half_node.10", %"class.llvm::Instruction"* } +%"class.llvm::ilist_half_node.10" = type { ptr } +%"class.llvm::Instruction" = type { %"class.llvm::User", %"class.llvm::ilist_node.193", ptr, %"class.llvm::DebugLoc" } +%"class.llvm::User" = type { %"class.llvm::Value", ptr, i32 } +%"class.llvm::ilist_node.193" = type { %"class.llvm::ilist_half_node.10", ptr } %"class.llvm::DebugLoc" = type { i32, i32 } -%"class.llvm::Function" = type { %"class.llvm::GlobalValue", %"class.llvm::ilist_node.27", %"class.llvm::iplist.47", %"class.llvm::iplist.54", %"class.llvm::ValueSymbolTable"*, %"class.llvm::AttributeSet" } -%"class.llvm::GlobalValue" = type { [52 x i8], [4 x i8], %"class.llvm::Module"*, %"class.std::basic_string" } -%"class.llvm::Module" = type { %"class.llvm::LLVMContext"*, %"class.llvm::iplist.11", %"class.llvm::iplist.20", %"class.llvm::iplist.29", %"struct.llvm::ilist.38", %"class.std::basic_string", %"class.llvm::ValueSymbolTable"*, %"class.llvm::OwningPtr", %"class.std::basic_string", %"class.std::basic_string", %"class.std::basic_string", i8* } -%"class.llvm::iplist.11" = type { %"struct.llvm::ilist_traits.12", %"class.llvm::GlobalVariable"* } +%"class.llvm::Function" = type { %"class.llvm::GlobalValue", %"class.llvm::ilist_node.27", %"class.llvm::iplist.47", %"class.llvm::iplist.54", ptr, %"class.llvm::AttributeSet" } +%"class.llvm::GlobalValue" = type { [52 x i8], [4 x i8], ptr, %"class.std::basic_string" } +%"class.llvm::Module" = type { ptr, %"class.llvm::iplist.11", %"class.llvm::iplist.20", %"class.llvm::iplist.29", %"struct.llvm::ilist.38", %"class.std::basic_string", ptr, %"class.llvm::OwningPtr", %"class.std::basic_string", %"class.std::basic_string", %"class.std::basic_string", ptr } +%"class.llvm::iplist.11" = type { %"struct.llvm::ilist_traits.12", ptr } %"struct.llvm::ilist_traits.12" = type { %"class.llvm::ilist_node.18" } -%"class.llvm::ilist_node.18" = type { %"class.llvm::ilist_half_node.19", %"class.llvm::GlobalVariable"* } -%"class.llvm::ilist_half_node.19" = type { %"class.llvm::GlobalVariable"* } +%"class.llvm::ilist_node.18" = type { %"class.llvm::ilist_half_node.19", ptr } +%"class.llvm::ilist_half_node.19" = type { ptr } %"class.llvm::GlobalVariable" = type { %"class.llvm::GlobalValue", %"class.llvm::ilist_node.18", i8 } -%"class.llvm::iplist.20" = type { %"struct.llvm::ilist_traits.21", %"class.llvm::Function"* } +%"class.llvm::iplist.20" = type { %"struct.llvm::ilist_traits.21", ptr } %"struct.llvm::ilist_traits.21" = type { %"class.llvm::ilist_node.27" } -%"class.llvm::ilist_node.27" = type { %"class.llvm::ilist_half_node.28", %"class.llvm::Function"* } -%"class.llvm::ilist_half_node.28" = type { %"class.llvm::Function"* } -%"class.llvm::iplist.29" = type { %"struct.llvm::ilist_traits.30", %"class.llvm::GlobalAlias"* } +%"class.llvm::ilist_node.27" = type { %"class.llvm::ilist_half_node.28", ptr } +%"class.llvm::ilist_half_node.28" = type { ptr } +%"class.llvm::iplist.29" = type { %"struct.llvm::ilist_traits.30", ptr } %"struct.llvm::ilist_traits.30" = type { %"class.llvm::ilist_node.36" } -%"class.llvm::ilist_node.36" = type { %"class.llvm::ilist_half_node.37", %"class.llvm::GlobalAlias"* } -%"class.llvm::ilist_half_node.37" = type { %"class.llvm::GlobalAlias"* } +%"class.llvm::ilist_node.36" = type { %"class.llvm::ilist_half_node.37", ptr } +%"class.llvm::ilist_half_node.37" = type { ptr } %"class.llvm::GlobalAlias" = type { %"class.llvm::GlobalValue", %"class.llvm::ilist_node.36" } %"struct.llvm::ilist.38" = type { %"class.llvm::iplist.39" } -%"class.llvm::iplist.39" = type { %"struct.llvm::ilist_traits.40", %"class.llvm::NamedMDNode"* } +%"class.llvm::iplist.39" = type { %"struct.llvm::ilist_traits.40", ptr } %"struct.llvm::ilist_traits.40" = type { %"class.llvm::ilist_node.45" } -%"class.llvm::ilist_node.45" = type { %"class.llvm::ilist_half_node.46", %"class.llvm::NamedMDNode"* } -%"class.llvm::ilist_half_node.46" = type { %"class.llvm::NamedMDNode"* } -%"class.llvm::NamedMDNode" = type { %"class.llvm::ilist_node.45", %"class.std::basic_string", %"class.llvm::Module"*, i8* } +%"class.llvm::ilist_node.45" = type { %"class.llvm::ilist_half_node.46", ptr } +%"class.llvm::ilist_half_node.46" = type { ptr } +%"class.llvm::NamedMDNode" = type { %"class.llvm::ilist_node.45", %"class.std::basic_string", ptr, ptr } %"class.std::basic_string" = type { %"struct.std::basic_string, std::allocator >::_Alloc_hider" } -%"struct.std::basic_string, std::allocator >::_Alloc_hider" = type { i8* } +%"struct.std::basic_string, std::allocator >::_Alloc_hider" = type { ptr } %"class.llvm::ValueSymbolTable" = type opaque -%"class.llvm::OwningPtr" = type { %"class.llvm::GVMaterializer"* } +%"class.llvm::OwningPtr" = type { ptr } %"class.llvm::GVMaterializer" = type opaque -%"class.llvm::iplist.47" = type { %"struct.llvm::ilist_traits.48", %"class.llvm::BasicBlock"* } +%"class.llvm::iplist.47" = type { %"struct.llvm::ilist_traits.48", ptr } %"struct.llvm::ilist_traits.48" = type { %"class.llvm::ilist_half_node.3" } -%"class.llvm::iplist.54" = type { %"struct.llvm::ilist_traits.55", %"class.llvm::Argument"* } +%"class.llvm::iplist.54" = type { %"struct.llvm::ilist_traits.55", ptr } %"struct.llvm::ilist_traits.55" = type { %"class.llvm::ilist_half_node.61" } -%"class.llvm::ilist_half_node.61" = type { %"class.llvm::Argument"* } -%"class.llvm::Argument" = type { %"class.llvm::Value", %"class.llvm::ilist_node.192", %"class.llvm::Function"* } -%"class.llvm::ilist_node.192" = type { %"class.llvm::ilist_half_node.61", %"class.llvm::Argument"* } -%"class.llvm::AttributeSet" = type { %"class.llvm::AttributeSetImpl"* } +%"class.llvm::ilist_half_node.61" = type { ptr } +%"class.llvm::Argument" = type { %"class.llvm::Value", %"class.llvm::ilist_node.192", ptr } +%"class.llvm::ilist_node.192" = type { %"class.llvm::ilist_half_node.61", ptr } +%"class.llvm::AttributeSet" = type { ptr } %"class.llvm::AttributeSetImpl" = type opaque -%"class.llvm::MachineFunction" = type { %"class.llvm::Function"*, %"class.llvm::TargetMachine"*, %"class.llvm::MCContext"*, %"class.llvm::MachineModuleInfo"*, %"class.llvm::GCModuleInfo"*, %"class.llvm::MachineRegisterInfo"*, %"struct.llvm::MachineFunctionInfo"*, %"class.llvm::MachineFrameInfo"*, %"class.llvm::MachineConstantPool"*, %"class.llvm::MachineJumpTableInfo"*, %"class.std::vector.163", %"class.llvm::BumpPtrAllocator", %"class.llvm::Recycler", %"class.llvm::ArrayRecycler", %"class.llvm::Recycler.180", %"struct.llvm::ilist.181", i32, i32, i8 } -%"class.llvm::TargetMachine" = type { i32 (...)**, %"class.llvm::Target"*, %"class.std::basic_string", %"class.std::basic_string", %"class.std::basic_string", %"class.llvm::MCCodeGenInfo"*, %"class.llvm::MCAsmInfo"*, i8, %"class.llvm::TargetOptions" } +%"class.llvm::MachineFunction" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::vector.163", %"class.llvm::BumpPtrAllocator", %"class.llvm::Recycler", %"class.llvm::ArrayRecycler", %"class.llvm::Recycler.180", %"struct.llvm::ilist.181", i32, i32, i8 } +%"class.llvm::TargetMachine" = type { ptr, ptr, %"class.std::basic_string", %"class.std::basic_string", %"class.std::basic_string", ptr, ptr, i8, %"class.llvm::TargetOptions" } %"class.llvm::Target" = type opaque %"class.llvm::MCCodeGenInfo" = type opaque %"class.llvm::MCAsmInfo" = type opaque %"class.llvm::TargetOptions" = type { [2 x i8], i32, i8, i32, i8, %"class.std::basic_string", i32, i32 } -%"class.llvm::MCContext" = type { %"class.llvm::SourceMgr"*, %"class.llvm::MCAsmInfo"*, %"class.llvm::MCRegisterInfo"*, %"class.llvm::MCObjectFileInfo"*, %"class.llvm::BumpPtrAllocator", %"class.llvm::StringMap", %"class.llvm::StringMap.62", i32, %"class.llvm::DenseMap.63", i8*, %"class.llvm::raw_ostream"*, i8, %"class.std::basic_string", %"class.std::basic_string", %"class.std::vector", %"class.std::vector.70", %"class.llvm::MCDwarfLoc", i8, i8, i32, %"class.llvm::MCSection"*, %"class.llvm::MCSymbol"*, %"class.llvm::MCSymbol"*, %"class.std::vector.75", %"class.llvm::StringRef", %"class.llvm::StringRef", i8, %"class.llvm::DenseMap.80", %"class.std::vector.84", i8*, i8*, i8*, i8 } +%"class.llvm::MCContext" = type { ptr, ptr, ptr, ptr, %"class.llvm::BumpPtrAllocator", %"class.llvm::StringMap", %"class.llvm::StringMap.62", i32, %"class.llvm::DenseMap.63", ptr, ptr, i8, %"class.std::basic_string", %"class.std::basic_string", %"class.std::vector", %"class.std::vector.70", %"class.llvm::MCDwarfLoc", i8, i8, i32, ptr, ptr, ptr, %"class.std::vector.75", %"class.llvm::StringRef", %"class.llvm::StringRef", i8, %"class.llvm::DenseMap.80", %"class.std::vector.84", ptr, ptr, ptr, i8 } %"class.llvm::SourceMgr" = type opaque -%"class.llvm::MCRegisterInfo" = type { %"struct.llvm::MCRegisterDesc"*, i32, i32, i32, %"class.llvm::MCRegisterClass"*, i32, i32, [2 x i16]*, i16*, i8*, i16*, i32, i16*, i32, i32, i32, i32, %"struct.llvm::MCRegisterInfo::DwarfLLVMRegPair"*, %"struct.llvm::MCRegisterInfo::DwarfLLVMRegPair"*, %"struct.llvm::MCRegisterInfo::DwarfLLVMRegPair"*, %"struct.llvm::MCRegisterInfo::DwarfLLVMRegPair"*, %"class.llvm::DenseMap" } +%"class.llvm::MCRegisterInfo" = type { ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, ptr, ptr, i32, ptr, i32, i32, i32, i32, ptr, ptr, ptr, ptr, %"class.llvm::DenseMap" } %"struct.llvm::MCRegisterDesc" = type { i32, i32, i32, i32, i32, i32 } -%"class.llvm::MCRegisterClass" = type { i8*, i16*, i8*, i16, i16, i16, i16, i16, i8, i8 } +%"class.llvm::MCRegisterClass" = type { ptr, ptr, ptr, i16, i16, i16, i16, i16, i8, i8 } %"struct.llvm::MCRegisterInfo::DwarfLLVMRegPair" = type { i32, i32 } -%"class.llvm::DenseMap" = type { %"struct.std::pair"*, i32, i32, i32 } +%"class.llvm::DenseMap" = type { ptr, i32, i32, i32 } %"struct.std::pair" = type { i32, i32 } %"class.llvm::MCObjectFileInfo" = type opaque -%"class.llvm::BumpPtrAllocator" = type { i64, i64, %"class.llvm::SlabAllocator"*, %"class.llvm::MemSlab"*, i8*, i8*, i64 } -%"class.llvm::SlabAllocator" = type { i32 (...)** } -%"class.llvm::MemSlab" = type { i64, %"class.llvm::MemSlab"* } -%"class.llvm::StringMap" = type { %"class.llvm::StringMapImpl", %"class.llvm::BumpPtrAllocator"* } -%"class.llvm::StringMapImpl" = type { %"class.llvm::StringMapEntryBase"**, i32, i32, i32, i32 } +%"class.llvm::BumpPtrAllocator" = type { i64, i64, ptr, ptr, ptr, ptr, i64 } +%"class.llvm::SlabAllocator" = type { ptr } +%"class.llvm::MemSlab" = type { i64, ptr } +%"class.llvm::StringMap" = type { %"class.llvm::StringMapImpl", ptr } +%"class.llvm::StringMapImpl" = type { ptr, i32, i32, i32, i32 } %"class.llvm::StringMapEntryBase" = type { i32 } -%"class.llvm::StringMap.62" = type { %"class.llvm::StringMapImpl", %"class.llvm::BumpPtrAllocator"* } -%"class.llvm::DenseMap.63" = type { %"struct.std::pair.66"*, i32, i32, i32 } +%"class.llvm::StringMap.62" = type { %"class.llvm::StringMapImpl", ptr } +%"class.llvm::DenseMap.63" = type { ptr, i32, i32, i32 } %"struct.std::pair.66" = type opaque -%"class.llvm::raw_ostream" = type { i32 (...)**, i8*, i8*, i8*, i32 } +%"class.llvm::raw_ostream" = type { ptr, ptr, ptr, ptr, i32 } %"class.std::vector" = type { %"struct.std::_Vector_base" } %"struct.std::_Vector_base" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::MCDwarfFile"**, %"class.llvm::MCDwarfFile"**, %"class.llvm::MCDwarfFile"** } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } %"class.llvm::MCDwarfFile" = type { %"class.llvm::StringRef", i32 } -%"class.llvm::StringRef" = type { i8*, i64 } +%"class.llvm::StringRef" = type { ptr, i64 } %"class.std::vector.70" = type { %"struct.std::_Vector_base.71" } %"struct.std::_Vector_base.71" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::StringRef"*, %"class.llvm::StringRef"*, %"class.llvm::StringRef"* } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } %"class.llvm::MCDwarfLoc" = type { i32, i32, i32, i32, i32, i32 } %"class.llvm::MCSection" = type opaque -%"class.llvm::MCSymbol" = type { %"class.llvm::StringRef", %"class.llvm::MCSection"*, %"class.llvm::MCExpr"*, i8 } +%"class.llvm::MCSymbol" = type { %"class.llvm::StringRef", ptr, ptr, i8 } %"class.llvm::MCExpr" = type opaque %"class.std::vector.75" = type { %"struct.std::_Vector_base.76" } %"struct.std::_Vector_base.76" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::MCGenDwarfLabelEntry"**, %"class.llvm::MCGenDwarfLabelEntry"**, %"class.llvm::MCGenDwarfLabelEntry"** } -%"class.llvm::MCGenDwarfLabelEntry" = type { %"class.llvm::StringRef", i32, i32, %"class.llvm::MCSymbol"* } -%"class.llvm::DenseMap.80" = type { %"struct.std::pair.83"*, i32, i32, i32 } -%"struct.std::pair.83" = type { %"class.llvm::MCSection"*, %"class.llvm::MCLineSection"* } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } +%"class.llvm::MCGenDwarfLabelEntry" = type { %"class.llvm::StringRef", i32, i32, ptr } +%"class.llvm::DenseMap.80" = type { ptr, i32, i32, i32 } +%"struct.std::pair.83" = type { ptr, ptr } %"class.llvm::MCLineSection" = type { %"class.std::vector.215" } %"class.std::vector.215" = type { %"struct.std::_Vector_base.216" } %"struct.std::_Vector_base.216" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::MCLineEntry"*, %"class.llvm::MCLineEntry"*, %"class.llvm::MCLineEntry"* } -%"class.llvm::MCLineEntry" = type { %"class.llvm::MCDwarfLoc", %"class.llvm::MCSymbol"* } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } +%"class.llvm::MCLineEntry" = type { %"class.llvm::MCDwarfLoc", ptr } %"class.std::vector.84" = type { %"struct.std::_Vector_base.85" } %"struct.std::_Vector_base.85" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::MCSection"**, %"class.llvm::MCSection"**, %"class.llvm::MCSection"** } -%"class.llvm::MachineModuleInfo" = type { %"class.llvm::ImmutablePass", %"class.llvm::MCContext", %"class.llvm::Module"*, %"class.llvm::MachineModuleInfoImpl"*, %"class.std::vector.95", i32, %"class.std::vector.100", %"class.llvm::DenseMap.110", %"class.llvm::DenseMap.114", i32, %"class.std::vector.118", %"class.std::vector.123", %"class.std::vector.123", %"class.std::vector.128", %"class.llvm::SmallPtrSet", %"class.llvm::MMIAddrLabelMap"*, i8, i8, i8, i8, %"class.llvm::SmallVector.133" } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } +%"class.llvm::MachineModuleInfo" = type { %"class.llvm::ImmutablePass", %"class.llvm::MCContext", ptr, ptr, %"class.std::vector.95", i32, %"class.std::vector.100", %"class.llvm::DenseMap.110", %"class.llvm::DenseMap.114", i32, %"class.std::vector.118", %"class.std::vector.123", %"class.std::vector.123", %"class.std::vector.128", %"class.llvm::SmallPtrSet", ptr, i8, i8, i8, i8, %"class.llvm::SmallVector.133" } %"class.llvm::ImmutablePass" = type { %"class.llvm::ModulePass" } %"class.llvm::ModulePass" = type { %"class.llvm::Pass" } -%"class.llvm::Pass" = type { i32 (...)**, %"class.llvm::AnalysisResolver"*, i8*, i32 } -%"class.llvm::AnalysisResolver" = type { %"class.std::vector.89", %"class.llvm::PMDataManager"* } +%"class.llvm::Pass" = type { ptr, ptr, ptr, i32 } +%"class.llvm::AnalysisResolver" = type { %"class.std::vector.89", ptr } %"class.std::vector.89" = type { %"struct.std::_Vector_base.90" } -%"struct.std::_Vector_base.90" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl" } -%"struct.std::_Vector_base, std::allocator > >::_Vector_impl" = type { %"struct.std::pair.94"*, %"struct.std::pair.94"*, %"struct.std::pair.94"* } -%"struct.std::pair.94" = type { i8*, %"class.llvm::Pass"* } +%"struct.std::_Vector_base.90" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl" } +%"struct.std::_Vector_base, std::allocator > >::_Vector_impl" = type { ptr, ptr, ptr } +%"struct.std::pair.94" = type { ptr, ptr } %"class.llvm::PMDataManager" = type opaque -%"class.llvm::MachineModuleInfoImpl" = type { i32 (...)** } +%"class.llvm::MachineModuleInfoImpl" = type { ptr } %"class.std::vector.95" = type { %"struct.std::_Vector_base.96" } %"struct.std::_Vector_base.96" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::MachineMove"*, %"class.llvm::MachineMove"*, %"class.llvm::MachineMove"* } -%"class.llvm::MachineMove" = type { %"class.llvm::MCSymbol"*, %"class.llvm::MachineLocation", %"class.llvm::MachineLocation" } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } +%"class.llvm::MachineMove" = type { ptr, %"class.llvm::MachineLocation", %"class.llvm::MachineLocation" } %"class.llvm::MachineLocation" = type { i8, i32, i32 } %"class.std::vector.100" = type { %"struct.std::_Vector_base.101" } %"struct.std::_Vector_base.101" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"struct.llvm::LandingPadInfo"*, %"struct.llvm::LandingPadInfo"*, %"struct.llvm::LandingPadInfo"* } -%"struct.llvm::LandingPadInfo" = type { %"class.llvm::MachineBasicBlock"*, %"class.llvm::SmallVector", %"class.llvm::SmallVector", %"class.llvm::MCSymbol"*, %"class.llvm::Function"*, %"class.std::vector.105" } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } +%"struct.llvm::LandingPadInfo" = type { ptr, %"class.llvm::SmallVector", %"class.llvm::SmallVector", ptr, ptr, %"class.std::vector.105" } %"class.llvm::SmallVector" = type { %"class.llvm::SmallVectorImpl", %"struct.llvm::SmallVectorStorage" } %"class.llvm::SmallVectorImpl" = type { %"class.llvm::SmallVectorTemplateBase" } %"class.llvm::SmallVectorTemplateBase" = type { %"class.llvm::SmallVectorTemplateCommon" } %"class.llvm::SmallVectorTemplateCommon" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion" } -%"class.llvm::SmallVectorBase" = type { i8*, i8*, i8* } +%"class.llvm::SmallVectorBase" = type { ptr, ptr, ptr } %"struct.llvm::AlignedCharArrayUnion" = type { %"struct.llvm::AlignedCharArray" } %"struct.llvm::AlignedCharArray" = type { [8 x i8] } %"struct.llvm::SmallVectorStorage" = type { i8 } %"class.std::vector.105" = type { %"struct.std::_Vector_base.106" } %"struct.std::_Vector_base.106" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { i32*, i32*, i32* } -%"class.llvm::DenseMap.110" = type { %"struct.std::pair.113"*, i32, i32, i32 } -%"struct.std::pair.113" = type { %"class.llvm::MCSymbol"*, %"class.llvm::SmallVector.206" } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } +%"class.llvm::DenseMap.110" = type { ptr, i32, i32, i32 } +%"struct.std::pair.113" = type { ptr, %"class.llvm::SmallVector.206" } %"class.llvm::SmallVector.206" = type { [28 x i8], %"struct.llvm::SmallVectorStorage.207" } %"struct.llvm::SmallVectorStorage.207" = type { [3 x %"struct.llvm::AlignedCharArrayUnion.198"] } %"struct.llvm::AlignedCharArrayUnion.198" = type { %"struct.llvm::AlignedCharArray.199" } %"struct.llvm::AlignedCharArray.199" = type { [4 x i8] } -%"class.llvm::DenseMap.114" = type { %"struct.std::pair.117"*, i32, i32, i32 } -%"struct.std::pair.117" = type { %"class.llvm::MCSymbol"*, i32 } +%"class.llvm::DenseMap.114" = type { ptr, i32, i32, i32 } +%"struct.std::pair.117" = type { ptr, i32 } %"class.std::vector.118" = type { %"struct.std::_Vector_base.119" } %"struct.std::_Vector_base.119" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::GlobalVariable"**, %"class.llvm::GlobalVariable"**, %"class.llvm::GlobalVariable"** } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } %"class.std::vector.123" = type { %"struct.std::_Vector_base.124" } %"struct.std::_Vector_base.124" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { i32*, i32*, i32* } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } %"class.std::vector.128" = type { %"struct.std::_Vector_base.129" } %"struct.std::_Vector_base.129" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::Function"**, %"class.llvm::Function"**, %"class.llvm::Function"** } -%"class.llvm::SmallPtrSet" = type { %"class.llvm::SmallPtrSetImpl", [33 x i8*] } -%"class.llvm::SmallPtrSetImpl" = type { i8**, i8**, i32, i32, i32 } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } +%"class.llvm::SmallPtrSet" = type { %"class.llvm::SmallPtrSetImpl", [33 x ptr] } +%"class.llvm::SmallPtrSetImpl" = type { ptr, ptr, i32, i32, i32 } %"class.llvm::MMIAddrLabelMap" = type opaque %"class.llvm::SmallVector.133" = type { %"class.llvm::SmallVectorImpl.134", %"struct.llvm::SmallVectorStorage.139" } %"class.llvm::SmallVectorImpl.134" = type { %"class.llvm::SmallVectorTemplateBase.135" } @@ -195,49 +195,49 @@ %"struct.llvm::AlignedCharArray.138" = type { [40 x i8] } %"struct.llvm::SmallVectorStorage.139" = type { [3 x %"struct.llvm::AlignedCharArrayUnion.137"] } %"class.llvm::GCModuleInfo" = type opaque -%"class.llvm::MachineRegisterInfo" = type { %"class.llvm::TargetRegisterInfo"*, i8, i8, %"class.llvm::IndexedMap", %"class.llvm::IndexedMap.146", %"class.llvm::MachineOperand"**, %"class.llvm::BitVector", %"class.llvm::BitVector", %"class.llvm::BitVector", %"class.std::vector.147", %"class.std::vector.123" } -%"class.llvm::TargetRegisterInfo" = type { i32 (...)**, %"class.llvm::MCRegisterInfo", %"struct.llvm::TargetRegisterInfoDesc"*, i8**, i32*, %"class.llvm::TargetRegisterClass"**, %"class.llvm::TargetRegisterClass"** } +%"class.llvm::MachineRegisterInfo" = type { ptr, i8, i8, %"class.llvm::IndexedMap", %"class.llvm::IndexedMap.146", ptr, %"class.llvm::BitVector", %"class.llvm::BitVector", %"class.llvm::BitVector", %"class.std::vector.147", %"class.std::vector.123" } +%"class.llvm::TargetRegisterInfo" = type { ptr, %"class.llvm::MCRegisterInfo", ptr, ptr, ptr, ptr, ptr } %"struct.llvm::TargetRegisterInfoDesc" = type { i32, i8 } -%"class.llvm::TargetRegisterClass" = type { %"class.llvm::MCRegisterClass"*, i32*, i32*, i16*, %"class.llvm::TargetRegisterClass"**, void (%"class.llvm::ArrayRef"*, %"class.llvm::MachineFunction"*)* } -%"class.llvm::ArrayRef" = type { i16*, i64 } +%"class.llvm::TargetRegisterClass" = type { ptr, ptr, ptr, ptr, ptr, ptr } +%"class.llvm::ArrayRef" = type { ptr, i64 } %"class.llvm::IndexedMap" = type { %"class.std::vector.140", %"struct.std::pair.145", %"struct.llvm::VirtReg2IndexFunctor" } %"class.std::vector.140" = type { %"struct.std::_Vector_base.141" } %"struct.std::_Vector_base.141" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl" } -%"struct.std::_Vector_base, std::allocator > >::_Vector_impl" = type { %"struct.std::pair.145"*, %"struct.std::pair.145"*, %"struct.std::pair.145"* } -%"struct.std::pair.145" = type { %"class.llvm::TargetRegisterClass"*, %"class.llvm::MachineOperand"* } -%"class.llvm::MachineOperand" = type { i8, [3 x i8], %union.anon, %"class.llvm::MachineInstr"*, %union.anon.188 } +%"struct.std::_Vector_base, std::allocator > >::_Vector_impl" = type { ptr, ptr, ptr } +%"struct.std::pair.145" = type { ptr, ptr } +%"class.llvm::MachineOperand" = type { i8, [3 x i8], %union.anon, ptr, %union.anon.188 } %union.anon = type { i32 } %union.anon.188 = type { %struct.anon } -%struct.anon = type { %"class.llvm::MachineOperand"*, %"class.llvm::MachineOperand"* } +%struct.anon = type { ptr, ptr } %"struct.llvm::VirtReg2IndexFunctor" = type { i8 } %"class.llvm::IndexedMap.146" = type { %"class.std::vector.147", %"struct.std::pair.152", %"struct.llvm::VirtReg2IndexFunctor" } %"class.std::vector.147" = type { %"struct.std::_Vector_base.148" } %"struct.std::_Vector_base.148" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl" } -%"struct.std::_Vector_base, std::allocator > >::_Vector_impl" = type { %"struct.std::pair.152"*, %"struct.std::pair.152"*, %"struct.std::pair.152"* } +%"struct.std::_Vector_base, std::allocator > >::_Vector_impl" = type { ptr, ptr, ptr } %"struct.std::pair.152" = type { i32, i32 } -%"class.llvm::BitVector" = type { i64*, i32, i32 } -%"struct.llvm::MachineFunctionInfo" = type { i32 (...)** } +%"class.llvm::BitVector" = type { ptr, i32, i32 } +%"struct.llvm::MachineFunctionInfo" = type { ptr } %"class.llvm::MachineFrameInfo" = type opaque -%"class.llvm::MachineConstantPool" = type { %"class.llvm::DataLayout"*, i32, %"class.std::vector.153", %"class.llvm::DenseSet" } +%"class.llvm::MachineConstantPool" = type { ptr, i32, %"class.std::vector.153", %"class.llvm::DenseSet" } %"class.llvm::DataLayout" = type opaque %"class.std::vector.153" = type { %"struct.std::_Vector_base.154" } %"struct.std::_Vector_base.154" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::MachineConstantPoolEntry"*, %"class.llvm::MachineConstantPoolEntry"*, %"class.llvm::MachineConstantPoolEntry"* } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } %"class.llvm::MachineConstantPoolEntry" = type { %union.anon.158, i32 } -%union.anon.158 = type { %"class.llvm::Constant"* } +%union.anon.158 = type { ptr } %"class.llvm::Constant" = type { %"class.llvm::User" } %"class.llvm::DenseSet" = type { %"class.llvm::DenseMap.159" } -%"class.llvm::DenseMap.159" = type { %"struct.std::pair.162"*, i32, i32, i32 } -%"struct.std::pair.162" = type { %"class.llvm::MachineConstantPoolValue"*, i8 } -%"class.llvm::MachineConstantPoolValue" = type { i32 (...)**, %"class.llvm::Type"* } +%"class.llvm::DenseMap.159" = type { ptr, i32, i32, i32 } +%"struct.std::pair.162" = type { ptr, i8 } +%"class.llvm::MachineConstantPoolValue" = type { ptr, ptr } %"class.llvm::MachineJumpTableInfo" = type opaque %"class.std::vector.163" = type { %"struct.std::_Vector_base.164" } %"struct.std::_Vector_base.164" = type { %"struct.std::_Vector_base >::_Vector_impl" } -%"struct.std::_Vector_base >::_Vector_impl" = type { %"class.llvm::MachineBasicBlock"**, %"class.llvm::MachineBasicBlock"**, %"class.llvm::MachineBasicBlock"** } +%"struct.std::_Vector_base >::_Vector_impl" = type { ptr, ptr, ptr } %"class.llvm::Recycler" = type { %"class.llvm::iplist.168" } -%"class.llvm::iplist.168" = type { %"struct.llvm::ilist_traits.169", %"struct.llvm::RecyclerStruct"* } +%"class.llvm::iplist.168" = type { %"struct.llvm::ilist_traits.169", ptr } %"struct.llvm::ilist_traits.169" = type { %"struct.llvm::RecyclerStruct" } -%"struct.llvm::RecyclerStruct" = type { %"struct.llvm::RecyclerStruct"*, %"struct.llvm::RecyclerStruct"* } +%"struct.llvm::RecyclerStruct" = type { ptr, ptr } %"class.llvm::ArrayRecycler" = type { %"class.llvm::SmallVector.174" } %"class.llvm::SmallVector.174" = type { %"class.llvm::SmallVectorImpl.175", %"struct.llvm::SmallVectorStorage.179" } %"class.llvm::SmallVectorImpl.175" = type { %"class.llvm::SmallVectorTemplateBase.176" } @@ -247,39 +247,39 @@ %"struct.llvm::SmallVectorStorage.179" = type { [7 x %"struct.llvm::AlignedCharArrayUnion.178"] } %"class.llvm::Recycler.180" = type { %"class.llvm::iplist.168" } %"struct.llvm::ilist.181" = type { %"class.llvm::iplist.182" } -%"class.llvm::iplist.182" = type { %"struct.llvm::ilist_traits.183", %"class.llvm::MachineBasicBlock"* } +%"class.llvm::iplist.182" = type { %"struct.llvm::ilist_traits.183", ptr } %"struct.llvm::ilist_traits.183" = type { %"class.llvm::ilist_half_node.1" } %"class.llvm::ArrayRecycler::Capacity" = type { i8 } %"class.llvm::ConstantInt" = type { %"class.llvm::Constant", %"class.llvm::APInt" } %"class.llvm::APInt" = type { i32, %union.anon.189 } %union.anon.189 = type { i64 } %"class.llvm::ConstantFP" = type { %"class.llvm::Constant", %"class.llvm::APFloat" } -%"class.llvm::APFloat" = type { %"struct.llvm::fltSemantics"*, %"union.llvm::APFloat::Significand", i16, i8 } +%"class.llvm::APFloat" = type { ptr, %"union.llvm::APFloat::Significand", i16, i8 } %"struct.llvm::fltSemantics" = type opaque %"union.llvm::APFloat::Significand" = type { i64 } %"class.llvm::BlockAddress" = type { %"class.llvm::Constant" } %"class.llvm::hash_code" = type { i64 } %"struct.llvm::hashing::detail::hash_combine_recursive_helper" = type { [64 x i8], %"struct.llvm::hashing::detail::hash_state", i64 } %"struct.llvm::hashing::detail::hash_state" = type { i64, i64, i64, i64, i64, i64, i64, i64 } -%"class.llvm::PrintReg" = type { %"class.llvm::TargetRegisterInfo"*, i32, i32 } +%"class.llvm::PrintReg" = type { ptr, i32, i32 } %"class.llvm::PseudoSourceValue" = type { %"class.llvm::Value" } %"class.llvm::FoldingSetNodeID" = type { %"class.llvm::SmallVector.194" } %"class.llvm::SmallVector.194" = type { [28 x i8], %"struct.llvm::SmallVectorStorage.200" } %"struct.llvm::SmallVectorStorage.200" = type { [31 x %"struct.llvm::AlignedCharArrayUnion.198"] } -%"struct.llvm::ArrayRecycler::FreeList" = type { %"struct.llvm::ArrayRecycler::FreeList"* } -%"class.llvm::ilist_iterator.202" = type { %"class.llvm::MachineInstr"* } -%"class.llvm::TargetInstrInfo" = type { i32 (...)**, [28 x i8], i32, i32 } +%"struct.llvm::ArrayRecycler::FreeList" = type { ptr } +%"class.llvm::ilist_iterator.202" = type { ptr } +%"class.llvm::TargetInstrInfo" = type { ptr, [28 x i8], i32, i32 } %"struct.std::pair.203" = type { i8, i8 } %"class.llvm::SmallVectorImpl.195" = type { %"class.llvm::SmallVectorTemplateBase.196" } %"class.llvm::SmallVectorTemplateBase.196" = type { %"class.llvm::SmallVectorTemplateCommon.197" } %"class.llvm::SmallVectorTemplateCommon.197" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.198" } -%"class.llvm::AliasAnalysis" = type { i32 (...)**, %"class.llvm::DataLayout"*, %"class.llvm::TargetLibraryInfo"*, %"class.llvm::AliasAnalysis"* } +%"class.llvm::AliasAnalysis" = type { ptr, ptr, ptr, ptr } %"class.llvm::TargetLibraryInfo" = type opaque -%"struct.llvm::AliasAnalysis::Location" = type { %"class.llvm::Value"*, i64, %"class.llvm::MDNode"* } +%"struct.llvm::AliasAnalysis::Location" = type { ptr, i64, ptr } %"class.llvm::DIVariable" = type { %"class.llvm::DIDescriptor" } -%"class.llvm::DIDescriptor" = type { %"class.llvm::MDNode"* } +%"class.llvm::DIDescriptor" = type { ptr } %"class.llvm::DIScope" = type { %"class.llvm::DIDescriptor" } -%"class.llvm::ArrayRef.208" = type { i32*, i64 } +%"class.llvm::ArrayRef.208" = type { ptr, i64 } %"class.llvm::SmallVector.209" = type { %"class.llvm::SmallVectorImpl.210", %"struct.llvm::SmallVectorStorage.214" } %"class.llvm::SmallVectorImpl.210" = type { %"class.llvm::SmallVectorTemplateBase.211" } %"class.llvm::SmallVectorTemplateBase.211" = type { %"class.llvm::SmallVectorTemplateCommon.212" } @@ -287,68 +287,67 @@ %"struct.llvm::AlignedCharArrayUnion.213" = type { %"struct.llvm::AlignedCharArray" } %"struct.llvm::SmallVectorStorage.214" = type { [7 x %"struct.llvm::AlignedCharArrayUnion.213"] } %"class.llvm::Twine" = type { %"union.llvm::Twine::Child", %"union.llvm::Twine::Child", i8, i8 } -%"union.llvm::Twine::Child" = type { %"class.llvm::Twine"* } +%"union.llvm::Twine::Child" = type { ptr } %"struct.std::random_access_iterator_tag" = type { i8 } -declare void @_ZN4llvm19MachineRegisterInfo27removeRegOperandFromUseListEPNS_14MachineOperandE(%"class.llvm::MachineRegisterInfo"*, %"class.llvm::MachineOperand"*) +declare void @_ZN4llvm19MachineRegisterInfo27removeRegOperandFromUseListEPNS_14MachineOperandE(ptr, ptr) -declare void @_ZN4llvm19MachineRegisterInfo22addRegOperandToUseListEPNS_14MachineOperandE(%"class.llvm::MachineRegisterInfo"*, %"class.llvm::MachineOperand"*) +declare void @_ZN4llvm19MachineRegisterInfo22addRegOperandToUseListEPNS_14MachineOperandE(ptr, ptr) -declare zeroext i32 @_ZNK4llvm14MCRegisterInfo9getSubRegEjj(%"class.llvm::MCRegisterInfo"*, i32 zeroext, i32 zeroext) +declare zeroext i32 @_ZNK4llvm14MCRegisterInfo9getSubRegEjj(ptr, i32 zeroext, i32 zeroext) -define void @_ZN4llvm14MachineOperand12substPhysRegEjRKNS_18TargetRegisterInfoE(%"class.llvm::MachineOperand"* %this, i32 zeroext %Reg, %"class.llvm::TargetRegisterInfo"* %TRI) align 2 { +define void @_ZN4llvm14MachineOperand12substPhysRegEjRKNS_18TargetRegisterInfoE(ptr %this, i32 zeroext %Reg, ptr %TRI) align 2 { entry: - %SubReg_TargetFlags.i = getelementptr inbounds %"class.llvm::MachineOperand", %"class.llvm::MachineOperand"* %this, i64 0, i32 1 - %0 = bitcast [3 x i8]* %SubReg_TargetFlags.i to i24* - %bf.load.i = load i24, i24* %0, align 1 + %SubReg_TargetFlags.i = getelementptr inbounds %"class.llvm::MachineOperand", ptr %this, i64 0, i32 1 + %bf.load.i = load i24, ptr %SubReg_TargetFlags.i, align 1 %bf.lshr.i = lshr i24 %bf.load.i, 12 %tobool = icmp eq i24 %bf.lshr.i, 0 br i1 %tobool, label %if.end, label %if.then if.then: ; preds = %entry %bf.cast.i = zext i24 %bf.lshr.i to i32 - %add.ptr = getelementptr inbounds %"class.llvm::TargetRegisterInfo", %"class.llvm::TargetRegisterInfo"* %TRI, i64 0, i32 1 - %call3 = tail call zeroext i32 @_ZNK4llvm14MCRegisterInfo9getSubRegEjj(%"class.llvm::MCRegisterInfo"* %add.ptr, i32 zeroext %Reg, i32 zeroext %bf.cast.i) - %bf.load.i10 = load i24, i24* %0, align 1 + %add.ptr = getelementptr inbounds %"class.llvm::TargetRegisterInfo", ptr %TRI, i64 0, i32 1 + %call3 = tail call zeroext i32 @_ZNK4llvm14MCRegisterInfo9getSubRegEjj(ptr %add.ptr, i32 zeroext %Reg, i32 zeroext %bf.cast.i) + %bf.load.i10 = load i24, ptr %SubReg_TargetFlags.i, align 1 %bf.clear.i = and i24 %bf.load.i10, 4095 - store i24 %bf.clear.i, i24* %0, align 1 + store i24 %bf.clear.i, ptr %SubReg_TargetFlags.i, align 1 br label %if.end if.end: ; preds = %entry, %if.then %Reg.addr.0 = phi i32 [ %call3, %if.then ], [ %Reg, %entry ] - %RegNo.i.i = getelementptr inbounds %"class.llvm::MachineOperand", %"class.llvm::MachineOperand"* %this, i64 0, i32 2, i32 0 - %1 = load i32, i32* %RegNo.i.i, align 4 - %cmp.i = icmp eq i32 %1, %Reg.addr.0 + %RegNo.i.i = getelementptr inbounds %"class.llvm::MachineOperand", ptr %this, i64 0, i32 2, i32 0 + %0 = load i32, ptr %RegNo.i.i, align 4 + %cmp.i = icmp eq i32 %0, %Reg.addr.0 br i1 %cmp.i, label %_ZN4llvm14MachineOperand6setRegEj.exit, label %if.end.i if.end.i: ; preds = %if.end - %ParentMI.i.i = getelementptr inbounds %"class.llvm::MachineOperand", %"class.llvm::MachineOperand"* %this, i64 0, i32 3 - %2 = load %"class.llvm::MachineInstr"*, %"class.llvm::MachineInstr"** %ParentMI.i.i, align 8 - %tobool.i = icmp eq %"class.llvm::MachineInstr"* %2, null + %ParentMI.i.i = getelementptr inbounds %"class.llvm::MachineOperand", ptr %this, i64 0, i32 3 + %1 = load ptr, ptr %ParentMI.i.i, align 8 + %tobool.i = icmp eq ptr %1, null br i1 %tobool.i, label %if.end13.i, label %if.then3.i if.then3.i: ; preds = %if.end.i - %Parent.i.i = getelementptr inbounds %"class.llvm::MachineInstr", %"class.llvm::MachineInstr"* %2, i64 0, i32 2 - %3 = load %"class.llvm::MachineBasicBlock"*, %"class.llvm::MachineBasicBlock"** %Parent.i.i, align 8 - %tobool5.i = icmp eq %"class.llvm::MachineBasicBlock"* %3, null + %Parent.i.i = getelementptr inbounds %"class.llvm::MachineInstr", ptr %1, i64 0, i32 2 + %2 = load ptr, ptr %Parent.i.i, align 8 + %tobool5.i = icmp eq ptr %2, null br i1 %tobool5.i, label %if.end13.i, label %if.then6.i if.then6.i: ; preds = %if.then3.i - %xParent.i.i = getelementptr inbounds %"class.llvm::MachineBasicBlock", %"class.llvm::MachineBasicBlock"* %3, i64 0, i32 4 - %4 = load %"class.llvm::MachineFunction"*, %"class.llvm::MachineFunction"** %xParent.i.i, align 8 - %tobool8.i = icmp eq %"class.llvm::MachineFunction"* %4, null + %xParent.i.i = getelementptr inbounds %"class.llvm::MachineBasicBlock", ptr %2, i64 0, i32 4 + %3 = load ptr, ptr %xParent.i.i, align 8 + %tobool8.i = icmp eq ptr %3, null br i1 %tobool8.i, label %if.end13.i, label %if.then9.i if.then9.i: ; preds = %if.then6.i - %RegInfo.i.i = getelementptr inbounds %"class.llvm::MachineFunction", %"class.llvm::MachineFunction"* %4, i64 0, i32 5 - %5 = load %"class.llvm::MachineRegisterInfo"*, %"class.llvm::MachineRegisterInfo"** %RegInfo.i.i, align 8 - tail call void @_ZN4llvm19MachineRegisterInfo27removeRegOperandFromUseListEPNS_14MachineOperandE(%"class.llvm::MachineRegisterInfo"* %5, %"class.llvm::MachineOperand"* %this) - store i32 %Reg.addr.0, i32* %RegNo.i.i, align 4 - tail call void @_ZN4llvm19MachineRegisterInfo22addRegOperandToUseListEPNS_14MachineOperandE(%"class.llvm::MachineRegisterInfo"* %5, %"class.llvm::MachineOperand"* %this) + %RegInfo.i.i = getelementptr inbounds %"class.llvm::MachineFunction", ptr %3, i64 0, i32 5 + %4 = load ptr, ptr %RegInfo.i.i, align 8 + tail call void @_ZN4llvm19MachineRegisterInfo27removeRegOperandFromUseListEPNS_14MachineOperandE(ptr %4, ptr %this) + store i32 %Reg.addr.0, ptr %RegNo.i.i, align 4 + tail call void @_ZN4llvm19MachineRegisterInfo22addRegOperandToUseListEPNS_14MachineOperandE(ptr %4, ptr %this) br label %_ZN4llvm14MachineOperand6setRegEj.exit if.end13.i: ; preds = %if.then6.i, %if.then3.i, %if.end.i - store i32 %Reg.addr.0, i32* %RegNo.i.i, align 4 + store i32 %Reg.addr.0, ptr %RegNo.i.i, align 4 br label %_ZN4llvm14MachineOperand6setRegEj.exit _ZN4llvm14MachineOperand6setRegEj.exit: ; preds = %if.end, %if.then9.i, %if.end13.i Index: llvm/test/CodeGen/PowerPC/pr15359.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr15359.ll +++ llvm/test/CodeGen/PowerPC/pr15359.ll @@ -8,7 +8,7 @@ define fastcc void @func() nounwind { entry: - store i32 42, i32* @nextIdx + store i32 42, ptr @nextIdx ret void } Index: llvm/test/CodeGen/PowerPC/pr15630.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr15630.ll +++ llvm/test/CodeGen/PowerPC/pr15630.ll @@ -3,13 +3,13 @@ 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-v128:128:128-n32:64" target triple = "powerpc64-unknown-linux-gnu" -define weak_odr void @_D4core6atomic49__T11atomicStoreVE4core6atomic11MemoryOrder3ThThZ11atomicStoreFNaNbKOhhZv(i8* %val_arg, i8 zeroext %newval_arg) { +define weak_odr void @_D4core6atomic49__T11atomicStoreVE4core6atomic11MemoryOrder3ThThZ11atomicStoreFNaNbKOhhZv(ptr %val_arg, i8 zeroext %newval_arg) { entry: %newval = alloca i8 %ordering = alloca i32, align 4 - store i8 %newval_arg, i8* %newval - %tmp = load i8, i8* %newval - store atomic volatile i8 %tmp, i8* %val_arg seq_cst, align 1 + store i8 %newval_arg, ptr %newval + %tmp = load i8, ptr %newval + store atomic volatile i8 %tmp, ptr %val_arg seq_cst, align 1 ret void } Index: llvm/test/CodeGen/PowerPC/pr15632.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr15632.ll +++ llvm/test/CodeGen/PowerPC/pr15632.ll @@ -8,7 +8,7 @@ define void @bug() { entry: - %x = load ppc_fp128, ppc_fp128* @ld2, align 16 + %x = load ppc_fp128, ptr @ld2, align 16 %tmp70 = frem ppc_fp128 0xM00000000000000000000000000000000, %x call void @other(ppc_fp128 %tmp70) unreachable Index: llvm/test/CodeGen/PowerPC/pr16556-2.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr16556-2.ll +++ llvm/test/CodeGen/PowerPC/pr16556-2.ll @@ -11,27 +11,26 @@ @_D4core4time12TickDuration11ticksPerSecyl = global i64 0 @.str5 = internal unnamed_addr constant [40 x i8] c"..\5Cldc\5Cruntime\5Cdruntime\5Csrc\5Ccore\5Ctime.d\00" @.str83 = internal constant [10 x i8] c"null this\00" -@.modulefilename = internal constant { i32, i8* } { i32 39, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str5, i32 0, i32 0) } +@.modulefilename = internal constant { i32, ptr } { i32 39, ptr @.str5 } -declare i8* @_d_assert_msg({ i32, i8* }, { i32, i8* }, i32) +declare ptr @_d_assert_msg({ i32, ptr }, { i32, ptr }, i32) -define weak_odr fastcc i64 @_D4core4time12TickDuration30__T2toVAyaa7_7365636f6e6473TlZ2toMxFNaNbNfZl(%core.time.TickDuration* %.this_arg) { +define weak_odr fastcc i64 @_D4core4time12TickDuration30__T2toVAyaa7_7365636f6e6473TlZ2toMxFNaNbNfZl(ptr %.this_arg) { entry: %unitsPerSec = alloca i64, align 8 - %tmp = icmp ne %core.time.TickDuration* %.this_arg, null + %tmp = icmp ne ptr %.this_arg, null br i1 %tmp, label %noassert, label %assert assert: ; preds = %entry - %tmp1 = load { i32, i8* }, { i32, i8* }* @.modulefilename - %0 = call i8* @_d_assert_msg({ i32, i8* } { i32 9, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str83, i32 0, i32 0) }, { i32, i8* } %tmp1, i32 1586) + %tmp1 = load { i32, ptr }, ptr @.modulefilename + %0 = call ptr @_d_assert_msg({ i32, ptr } { i32 9, ptr @.str83 }, { i32, ptr } %tmp1, i32 1586) unreachable noassert: ; preds = %entry - %tmp2 = getelementptr %core.time.TickDuration, %core.time.TickDuration* %.this_arg, i32 0, i32 0 - %tmp3 = load i64, i64* %tmp2 + %tmp3 = load i64, ptr %.this_arg %tmp4 = sitofp i64 %tmp3 to ppc_fp128 - %tmp5 = load i64, i64* @_D4core4time12TickDuration11ticksPerSecyl + %tmp5 = load i64, ptr @_D4core4time12TickDuration11ticksPerSecyl %tmp6 = sitofp i64 %tmp5 to ppc_fp128 %tmp7 = fdiv ppc_fp128 %tmp6, 0xM80000000000000000000000000000000 %tmp8 = fdiv ppc_fp128 %tmp4, %tmp7 Index: llvm/test/CodeGen/PowerPC/pr16556.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr16556.ll +++ llvm/test/CodeGen/PowerPC/pr16556.ll @@ -7,7 +7,7 @@ %core.time.TickDuration.37.125 = type { i64 } -define weak_odr fastcc i64 @_D4core4time12TickDuration30__T2toVAyaa7_7365636f6e6473TlZ2toMxFNaNbNfZl(%core.time.TickDuration.37.125* %.this_arg) { +define weak_odr fastcc i64 @_D4core4time12TickDuration30__T2toVAyaa7_7365636f6e6473TlZ2toMxFNaNbNfZl(ptr %.this_arg) { entry: br i1 undef, label %noassert, label %assert Index: llvm/test/CodeGen/PowerPC/pr17168.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr17168.ll +++ llvm/test/CodeGen/PowerPC/pr17168.ll @@ -26,7 +26,7 @@ for.end1042: ; preds = %for.cond968.preheader, %for.cond964.preheader, %entry %0 = phi i32 [ undef, %for.cond964.preheader ], [ undef, %for.cond968.preheader ], [ undef, %entry ] - %1 = load i32, i32* getelementptr inbounds ([3 x i32], [3 x i32]* @grid_points, i64 0, i64 0), align 4, !dbg !285, !tbaa !286 + %1 = load i32, ptr @grid_points, align 4, !dbg !285, !tbaa !286 tail call void @llvm.dbg.value(metadata i32 1, i64 0, metadata !268, metadata !290), !dbg !291 %sub10454270 = add nsw i32 %0, -1, !dbg !291 %cmp10464271 = icmp sgt i32 %sub10454270, 1, !dbg !291 Index: llvm/test/CodeGen/PowerPC/pr17354.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr17354.ll +++ llvm/test/CodeGen/PowerPC/pr17354.ll @@ -10,11 +10,11 @@ %struct.CS = type { i32 } @_ZL3glb = internal global [1 x %struct.CS] zeroinitializer, align 4 -@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }] +@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_a, ptr null }] define internal void @__cxx_global_var_init() section ".text.startup" { entry: - call void @_Z4funcv(%struct.CS* sret(%struct.CS) getelementptr inbounds ([1 x %struct.CS], [1 x %struct.CS]* @_ZL3glb, i64 0, i64 0)) + call void @_Z4funcv(ptr sret(%struct.CS) @_ZL3glb) ret void } @@ -23,10 +23,9 @@ ; CHECK-NEXT: nop ; Function Attrs: nounwind -define void @_Z4funcv(%struct.CS* noalias sret(%struct.CS) %agg.result) #0 { +define void @_Z4funcv(ptr noalias sret(%struct.CS) %agg.result) #0 { entry: - %a_ = getelementptr inbounds %struct.CS, %struct.CS* %agg.result, i32 0, i32 0 - store i32 0, i32* %a_, align 4 + store i32 0, ptr %agg.result, align 4 ret void } Index: llvm/test/CodeGen/PowerPC/pr18663-2.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr18663-2.ll +++ llvm/test/CodeGen/PowerPC/pr18663-2.ll @@ -4,19 +4,19 @@ %"class.std::__1::locale::id.1580.4307.4610.8491" = type { %"struct.std::__1::once_flag.1579.4306.4609.8490", i32 } %"struct.std::__1::once_flag.1579.4306.4609.8490" = type { i64 } %"class.Foam::IOerror.1581.4308.4611.8505" = type { %"class.Foam::error.1535.4262.4565.8504", %"class.Foam::string.1530.4257.4560.8499", i32, i32 } -%"class.Foam::error.1535.4262.4565.8504" = type { %"class.std::exception.1523.4250.4553.8492", [36 x i8], %"class.Foam::string.1530.4257.4560.8499", %"class.Foam::string.1530.4257.4560.8499", i32, i8, i8, %"class.Foam::OStringStream.1534.4261.4564.8503"* } -%"class.std::exception.1523.4250.4553.8492" = type { i32 (...)** } +%"class.Foam::error.1535.4262.4565.8504" = type { %"class.std::exception.1523.4250.4553.8492", [36 x i8], %"class.Foam::string.1530.4257.4560.8499", %"class.Foam::string.1530.4257.4560.8499", i32, i8, i8, ptr } +%"class.std::exception.1523.4250.4553.8492" = type { ptr } %"class.Foam::OStringStream.1534.4261.4564.8503" = type { %"class.Foam::OSstream.1533.4260.4563.8502" } -%"class.Foam::OSstream.1533.4260.4563.8502" = type { [50 x i8], %"class.Foam::fileName.1531.4258.4561.8500", %"class.std::__1::basic_ostream.1532.4259.4562.8501"* } +%"class.Foam::OSstream.1533.4260.4563.8502" = type { [50 x i8], %"class.Foam::fileName.1531.4258.4561.8500", ptr } %"class.Foam::fileName.1531.4258.4561.8500" = type { %"class.Foam::string.1530.4257.4560.8499" } -%"class.std::__1::basic_ostream.1532.4259.4562.8501" = type { i32 (...)**, [148 x i8] } +%"class.std::__1::basic_ostream.1532.4259.4562.8501" = type { ptr, [148 x i8] } %"class.Foam::string.1530.4257.4560.8499" = type { %"class.std::__1::basic_string.1529.4256.4559.8498" } %"class.std::__1::basic_string.1529.4256.4559.8498" = type { %"class.std::__1::__compressed_pair.1528.4255.4558.8497" } %"class.std::__1::__compressed_pair.1528.4255.4558.8497" = type { %"class.std::__1::__libcpp_compressed_pair_imp.1527.4254.4557.8496" } %"class.std::__1::__libcpp_compressed_pair_imp.1527.4254.4557.8496" = type { %"struct.std::__1::basic_string, std::__1::allocator >::__rep.1526.4253.4556.8495" } %"struct.std::__1::basic_string, std::__1::allocator >::__rep.1526.4253.4556.8495" = type { %union.anon.1525.4252.4555.8494 } %union.anon.1525.4252.4555.8494 = type { %"struct.std::__1::basic_string, std::__1::allocator >::__long.1524.4251.4554.8493" } -%"struct.std::__1::basic_string, std::__1::allocator >::__long.1524.4251.4554.8493" = type { i64, i64, i8* } +%"struct.std::__1::basic_string, std::__1::allocator >::__long.1524.4251.4554.8493" = type { i64, i64, ptr } @.str3 = external unnamed_addr constant [16 x i8], align 1 @_ZNSt3__15ctypeIcE2idE = external global %"class.std::__1::locale::id.1580.4307.4610.8491" @@ -46,7 +46,7 @@ ; Function Attrs: inlinehint declare void @_ZN4Foam8fileName12stripInvalidEv() #2 align 2 -define void @_ZN4Foam3CSVINS_6VectorIdEEE4readEv() #0 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { +define void @_ZN4Foam3CSVINS_6VectorIdEEE4readEv() #0 align 2 personality ptr @__gxx_personality_v0 { entry: invoke void @_ZN4Foam6string6expandEb() to label %invoke.cont unwind label %lpad @@ -66,7 +66,7 @@ to label %invoke.cont2 unwind label %lpad.i lpad.i: ; preds = %_ZN4Foam6stringC2ERKS0_.exit.i - %0 = landingpad { i8*, i32 } + %0 = landingpad { ptr, i32 } cleanup br label %ehcleanup142 @@ -90,17 +90,17 @@ to label %if.end unwind label %lpad5 lpad: ; preds = %if.then.i.i.i.i176, %entry - %1 = landingpad { i8*, i32 } + %1 = landingpad { ptr, i32 } cleanup br label %ehcleanup142 lpad3: ; preds = %invoke.cont2 - %2 = landingpad { i8*, i32 } + %2 = landingpad { ptr, i32 } cleanup br label %ehcleanup142 lpad5: ; preds = %memptr.end.i, %invoke.cont8, %if.then - %3 = landingpad { i8*, i32 } + %3 = landingpad { ptr, i32 } cleanup br label %ehcleanup142 @@ -119,12 +119,12 @@ unreachable lpad.i.i.i: ; preds = %.noexc205 - %4 = landingpad { i8*, i32 } + %4 = landingpad { ptr, i32 } cleanup br label %ehcleanup142 lpad19: ; preds = %for.body - %5 = landingpad { i8*, i32 } + %5 = landingpad { ptr, i32 } cleanup br label %ehcleanup142 @@ -144,7 +144,7 @@ br label %vector.body ehcleanup142: ; preds = %lpad19, %lpad.i.i.i, %lpad5, %lpad3, %lpad, %lpad.i - resume { i8*, i32 } undef + resume { ptr, i32 } undef } attributes #0 = { "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } Index: llvm/test/CodeGen/PowerPC/pr18663.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr18663.ll +++ llvm/test/CodeGen/PowerPC/pr18663.ll @@ -4,78 +4,78 @@ %class.Point.1 = type { %class.Tensor.0 } %class.Tensor.0 = type { [3 x double] } %class.TriaObjectAccessor.57 = type { %class.TriaAccessor.56 } -%class.TriaAccessor.56 = type { i32, i32, %class.Triangulation.55* } -%class.Triangulation.55 = type { %class.Subscriptor, %"class.std::vector.46", %"class.std::vector", %"class.std::vector.3.8", [255 x %class.Boundary.50*], i32, %struct.TriaNumberCache.54 } -%class.Subscriptor = type { i32 (...)**, i32, %"class.std::type_info.2"* } -%"class.std::type_info.2" = type { i32 (...)**, i8* } +%class.TriaAccessor.56 = type { i32, i32, ptr } +%class.Triangulation.55 = type { %class.Subscriptor, %"class.std::vector.46", %"class.std::vector", %"class.std::vector.3.8", [255 x ptr], i32, %struct.TriaNumberCache.54 } +%class.Subscriptor = type { ptr, i32, ptr } +%"class.std::type_info.2" = type { ptr, ptr } %"class.std::vector.46" = type { %"struct.std::_Vector_base.45" } -%"struct.std::_Vector_base.45" = type { %"struct.std::_Vector_base *, std::allocator *> >::_Vector_impl.44" } -%"struct.std::_Vector_base *, std::allocator *> >::_Vector_impl.44" = type { %class.TriangulationLevel.43**, %class.TriangulationLevel.43**, %class.TriangulationLevel.43** } +%"struct.std::_Vector_base.45" = type { %"struct.std::_Vector_base >::_Vector_impl.44" } +%"struct.std::_Vector_base >::_Vector_impl.44" = type { ptr, ptr, ptr } %class.TriangulationLevel.43 = type { %class.TriangulationLevel.0.37, %"struct.TriangulationLevel<3>::HexesData.42" } %class.TriangulationLevel.0.37 = type { %class.TriangulationLevel.1.31, %"struct.TriangulationLevel<2>::QuadsData.36" } %class.TriangulationLevel.1.31 = type { %class.TriangulationLevel, %"struct.TriangulationLevel<1>::LinesData.30" } %class.TriangulationLevel = type { %"class.std::vector.3.8", %"class.std::vector.3.8", %"class.std::vector.7.12", %"class.std::vector.12.15" } %"class.std::vector.7.12" = type { %"struct.std::_Vector_base" } %"struct.std::_Vector_base" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl.10" } -%"struct.std::_Vector_base, std::allocator > >::_Vector_impl.10" = type { %"struct.std::pair.9"*, %"struct.std::pair.9"*, %"struct.std::pair.9"* } +%"struct.std::_Vector_base, std::allocator > >::_Vector_impl.10" = type { ptr, ptr, ptr } %"struct.std::pair.9" = type opaque %"class.std::vector.12.15" = type { %"struct.std::_Vector_base.13.14" } %"struct.std::_Vector_base.13.14" = type { %"struct.std::_Vector_base >::_Vector_impl.13" } -%"struct.std::_Vector_base >::_Vector_impl.13" = type { i32*, i32*, i32* } +%"struct.std::_Vector_base >::_Vector_impl.13" = type { ptr, ptr, ptr } %"struct.TriangulationLevel<1>::LinesData.30" = type { %"class.std::vector.17.20", %"class.std::vector.22.23", %"class.std::vector.3.8", %"class.std::vector.3.8", %"class.std::vector.27.26", %"class.std::vector.32.29" } %"class.std::vector.17.20" = type { %"struct.std::_Vector_base.18.19" } %"struct.std::_Vector_base.18.19" = type { %"struct.std::_Vector_base >::_Vector_impl.18" } -%"struct.std::_Vector_base >::_Vector_impl.18" = type { %class.Line.17*, %class.Line.17*, %class.Line.17* } +%"struct.std::_Vector_base >::_Vector_impl.18" = type { ptr, ptr, ptr } %class.Line.17 = type { [2 x i32] } %"class.std::vector.22.23" = type { %"struct.std::_Vector_base.23.22" } %"struct.std::_Vector_base.23.22" = type { %"struct.std::_Vector_base >::_Vector_impl.21" } -%"struct.std::_Vector_base >::_Vector_impl.21" = type { i32*, i32*, i32* } +%"struct.std::_Vector_base >::_Vector_impl.21" = type { ptr, ptr, ptr } %"class.std::vector.27.26" = type { %"struct.std::_Vector_base.28.25" } %"struct.std::_Vector_base.28.25" = type { %"struct.std::_Vector_base >::_Vector_impl.24" } -%"struct.std::_Vector_base >::_Vector_impl.24" = type { i8*, i8*, i8* } +%"struct.std::_Vector_base >::_Vector_impl.24" = type { ptr, ptr, ptr } %"class.std::vector.32.29" = type { %"struct.std::_Vector_base.33.28" } -%"struct.std::_Vector_base.33.28" = type { %"struct.std::_Vector_base >::_Vector_impl.27" } -%"struct.std::_Vector_base >::_Vector_impl.27" = type { i8**, i8**, i8** } +%"struct.std::_Vector_base.33.28" = type { %"struct.std::_Vector_base >::_Vector_impl.27" } +%"struct.std::_Vector_base >::_Vector_impl.27" = type { ptr, ptr, ptr } %"struct.TriangulationLevel<2>::QuadsData.36" = type { %"class.std::vector.37.35", %"class.std::vector.22.23", %"class.std::vector.3.8", %"class.std::vector.3.8", %"class.std::vector.27.26", %"class.std::vector.32.29" } %"class.std::vector.37.35" = type { %"struct.std::_Vector_base.38.34" } %"struct.std::_Vector_base.38.34" = type { %"struct.std::_Vector_base >::_Vector_impl.33" } -%"struct.std::_Vector_base >::_Vector_impl.33" = type { %class.Quad.32*, %class.Quad.32*, %class.Quad.32* } +%"struct.std::_Vector_base >::_Vector_impl.33" = type { ptr, ptr, ptr } %class.Quad.32 = type { [4 x i32] } %"struct.TriangulationLevel<3>::HexesData.42" = type { %"class.std::vector.42.41", %"class.std::vector.22.23", %"class.std::vector.3.8", %"class.std::vector.3.8", %"class.std::vector.27.26", %"class.std::vector.32.29", %"class.std::vector.3.8" } %"class.std::vector.42.41" = type { %"struct.std::_Vector_base.43.40" } %"struct.std::_Vector_base.43.40" = type { %"struct.std::_Vector_base >::_Vector_impl.39" } -%"struct.std::_Vector_base >::_Vector_impl.39" = type { %class.Hexahedron.38*, %class.Hexahedron.38*, %class.Hexahedron.38* } +%"struct.std::_Vector_base >::_Vector_impl.39" = type { ptr, ptr, ptr } %class.Hexahedron.38= type { [6 x i32] } %"class.std::vector" = type { %"struct.std::_Vector_base.48.48" } %"struct.std::_Vector_base.48.48" = type { %"struct.std::_Vector_base, std::allocator > >::_Vector_impl.47" } -%"struct.std::_Vector_base, std::allocator > >::_Vector_impl.47" = type { %class.Point.1*, %class.Point.1*, %class.Point.1* } +%"struct.std::_Vector_base, std::allocator > >::_Vector_impl.47" = type { ptr, ptr, ptr } %"class.std::vector.3.8" = type { %"struct.std::_Bvector_base.7" } %"struct.std::_Bvector_base.7" = type { %"struct.std::_Bvector_base >::_Bvector_impl.6" } -%"struct.std::_Bvector_base >::_Bvector_impl.6" = type { %"struct.std::_Bit_iterator.5", %"struct.std::_Bit_iterator.5", i64* } +%"struct.std::_Bvector_base >::_Bvector_impl.6" = type { %"struct.std::_Bit_iterator.5", %"struct.std::_Bit_iterator.5", ptr } %"struct.std::_Bit_iterator.5" = type { %"struct.std::_Bit_iterator_base.base.4", [4 x i8] } -%"struct.std::_Bit_iterator_base.base.4" = type <{ i64*, i32 }> +%"struct.std::_Bit_iterator_base.base.4" = type <{ ptr, i32 }> %class.Boundary.50 = type opaque %struct.TriaNumberCache.54 = type { %struct.TriaNumberCache.52.52, i32, %"class.std::vector.12.15", i32, %"class.std::vector.12.15" } %struct.TriaNumberCache.52.52 = type { %struct.TriaNumberCache.53.51, i32, %"class.std::vector.12.15", i32, %"class.std::vector.12.15" } %struct.TriaNumberCache.53.51 = type { i32, %"class.std::vector.12.15", i32, %"class.std::vector.12.15" } -define void @_ZNK18TriaObjectAccessorILi3ELi3EE10barycenterEv(%class.Point.1* noalias nocapture sret(%class.Point.1) %agg.result, %class.TriaObjectAccessor.57* %this) #0 align 2 { +define void @_ZNK18TriaObjectAccessorILi3ELi3EE10barycenterEv(ptr noalias nocapture sret(%class.Point.1) %agg.result, ptr %this) #0 align 2 { entry: - %0 = load double, double* null, align 8 - %1 = load double, double* undef, align 8 - %call18 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 6) - %2 = load double, double* undef, align 8 - %call21 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 7) - %3 = load double, double* undef, align 8 - %call33 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 3) - %4 = load double, double* null, align 8 - %5 = load double, double* undef, align 8 - %call45 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 7) - %6 = load double, double* undef, align 8 - %call48 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 0) - %7 = load double, double* undef, align 8 - %call66 = tail call dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57* %this, i32 zeroext 6) - %8 = load double, double* undef, align 8 + %0 = load double, ptr null, align 8 + %1 = load double, ptr undef, align 8 + %call18 = tail call dereferenceable(24) ptr @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(ptr %this, i32 zeroext 6) + %2 = load double, ptr undef, align 8 + %call21 = tail call dereferenceable(24) ptr @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(ptr %this, i32 zeroext 7) + %3 = load double, ptr undef, align 8 + %call33 = tail call dereferenceable(24) ptr @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(ptr %this, i32 zeroext 3) + %4 = load double, ptr null, align 8 + %5 = load double, ptr undef, align 8 + %call45 = tail call dereferenceable(24) ptr @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(ptr %this, i32 zeroext 7) + %6 = load double, ptr undef, align 8 + %call48 = tail call dereferenceable(24) ptr @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(ptr %this, i32 zeroext 0) + %7 = load double, ptr undef, align 8 + %call66 = tail call dereferenceable(24) ptr @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(ptr %this, i32 zeroext 6) + %8 = load double, ptr undef, align 8 %mul334 = fmul double undef, 2.000000e+00 %mul579 = fmul double %2, %5 %mul597 = fmul double undef, %mul579 @@ -289,10 +289,10 @@ %add8901 = fadd double %mul8900, %add8893 %mul9767 = fmul double 0.000000e+00, %add8901 %mul9768 = fmul double %mul9767, 0x3FC5555555555555 - store double %mul4917, double* undef, align 8 - store double %mul9768, double* undef, align 8 + store double %mul4917, ptr undef, align 8 + store double %mul9768, ptr undef, align 8 ret void } -declare dereferenceable(24) %class.Point.1* @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(%class.TriaObjectAccessor.57*, i32 zeroext) #0 +declare dereferenceable(24) ptr @_ZNK18TriaObjectAccessorILi3ELi3EE6vertexEj(ptr, i32 zeroext) #0 Index: llvm/test/CodeGen/PowerPC/pr20442.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr20442.ll +++ llvm/test/CodeGen/PowerPC/pr20442.ll @@ -14,21 +14,20 @@ %struct.anon = type { i32 } %struct.anon.0 = type { i32 } -@b = common global %struct.anon* null, align 4 -@a = common global %struct.anon.0* null, align 4 +@b = common global ptr null, align 4 +@a = common global ptr null, align 4 ; Function Attrs: nounwind readonly uwtable define i32 @fn1() #0 { entry: - %0 = load %struct.anon*, %struct.anon** @b, align 4 - %1 = ptrtoint %struct.anon* %0 to i32 - %cmp = icmp sgt %struct.anon* %0, null - %2 = load %struct.anon.0*, %struct.anon.0** @a, align 4 + %0 = load ptr, ptr @b, align 4 + %1 = ptrtoint ptr %0 to i32 + %cmp = icmp sgt ptr %0, null + %2 = load ptr, ptr @a, align 4 br i1 %cmp, label %for.bodythread-pre-split, label %if.end8 for.bodythread-pre-split: ; preds = %entry - %aclass = getelementptr inbounds %struct.anon.0, %struct.anon.0* %2, i32 0, i32 0 - %.pr = load i32, i32* %aclass, align 4 + %.pr = load i32, ptr %2, align 4 br label %for.body for.body: ; preds = %for.bodythread-pre-split, %for.body @@ -51,10 +50,10 @@ while.body: ; preds = %while.body.lr.ph, %while.cond %j.110 = phi i32 [ %j.1.ph13, %while.body.lr.ph ], [ %inc7, %while.cond ] - %aclass_index = getelementptr inbounds %struct.anon, %struct.anon* %0, i32 %j.110, i32 0 - %3 = load i32, i32* %aclass_index, align 4 - %aclass5 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %2, i32 %3, i32 0 - %4 = load i32, i32* %aclass5, align 4 + %aclass_index = getelementptr inbounds %struct.anon, ptr %0, i32 %j.110, i32 0 + %3 = load i32, ptr %aclass_index, align 4 + %aclass5 = getelementptr inbounds %struct.anon.0, ptr %2, i32 %3, i32 0 + %4 = load i32, ptr %aclass5, align 4 %tobool = icmp eq i32 %4, 0 %inc7 = add nsw i32 %j.110, 1 br i1 %tobool, label %while.cond, label %if.then6 Index: llvm/test/CodeGen/PowerPC/pr22711.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr22711.ll +++ llvm/test/CodeGen/PowerPC/pr22711.ll @@ -2,14 +2,14 @@ ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -filetype=obj -o - | llvm-readobj --sections - | FileCheck %s -define void @test(i32* %a) { +define void @test(ptr %a) { entry: - %a.addr = alloca i32*, align 8 - store i32* %a, i32** %a.addr, align 8 - %0 = load i32*, i32** %a.addr, align 8 - %incdec.ptr = getelementptr inbounds i32, i32* %0, i32 1 - store i32* %incdec.ptr, i32** %a.addr, align 8 - %1 = load i32, i32* %0, align 4 + %a.addr = alloca ptr, align 8 + store ptr %a, ptr %a.addr, align 8 + %0 = load ptr, ptr %a.addr, align 8 + %incdec.ptr = getelementptr inbounds i32, ptr %0, i32 1 + store ptr %incdec.ptr, ptr %a.addr, align 8 + %1 = load i32, ptr %0, align 4 switch i32 %1, label %sw.epilog [ i32 17, label %sw.bb i32 13, label %sw.bb1 @@ -21,38 +21,38 @@ ] sw.bb: ; preds = %entry - %2 = load i32*, i32** %a.addr, align 8 - store i32 2, i32* %2, align 4 + %2 = load ptr, ptr %a.addr, align 8 + store i32 2, ptr %2, align 4 br label %sw.epilog sw.bb1: ; preds = %entry - %3 = load i32*, i32** %a.addr, align 8 - store i32 3, i32* %3, align 4 + %3 = load ptr, ptr %a.addr, align 8 + store i32 3, ptr %3, align 4 br label %sw.epilog sw.bb2: ; preds = %entry - %4 = load i32*, i32** %a.addr, align 8 - store i32 5, i32* %4, align 4 + %4 = load ptr, ptr %a.addr, align 8 + store i32 5, ptr %4, align 4 br label %sw.epilog sw.bb3: ; preds = %entry - %5 = load i32*, i32** %a.addr, align 8 - store i32 7, i32* %5, align 4 + %5 = load ptr, ptr %a.addr, align 8 + store i32 7, ptr %5, align 4 br label %sw.epilog sw.bb4: ; preds = %entry - %6 = load i32*, i32** %a.addr, align 8 - store i32 11, i32* %6, align 4 + %6 = load ptr, ptr %a.addr, align 8 + store i32 11, ptr %6, align 4 br label %sw.epilog sw.bb5: ; preds = %entry - %7 = load i32*, i32** %a.addr, align 8 - store i32 13, i32* %7, align 4 + %7 = load ptr, ptr %a.addr, align 8 + store i32 13, ptr %7, align 4 br label %sw.epilog sw.bb6: ; preds = %entry - %8 = load i32*, i32** %a.addr, align 8 - store i32 17, i32* %8, align 4 + %8 = load ptr, ptr %a.addr, align 8 + store i32 17, ptr %8, align 4 br label %sw.epilog sw.epilog: ; preds = %entry, %sw.bb6, %sw.bb5, %sw.bb4, %sw.bb3, %sw.bb2, %sw.bb1, %sw.bb Index: llvm/test/CodeGen/PowerPC/pr24216.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr24216.ll +++ llvm/test/CodeGen/PowerPC/pr24216.ll @@ -2,11 +2,11 @@ ; Test case adapted from PR24216. -define void @foo(<16 x i8>* nocapture readonly %in, <16 x i8>* nocapture %out) { +define void @foo(ptr nocapture readonly %in, ptr nocapture %out) { entry: - %0 = load <16 x i8>, <16 x i8>* %in, align 16 + %0 = load <16 x i8>, ptr %in, align 16 %1 = shufflevector <16 x i8> %0, <16 x i8> undef, <16 x i32> - store <16 x i8> %1, <16 x i8>* %out, align 16 + store <16 x i8> %1, ptr %out, align 16 ret void } Index: llvm/test/CodeGen/PowerPC/pr24546.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr24546.ll +++ llvm/test/CodeGen/PowerPC/pr24546.ll @@ -19,7 +19,7 @@ br label %php_intpow10.exit, !dbg !41 if.end.i: ; preds = %if.then - %0 = load double, double* undef, align 8, !dbg !42, !tbaa !43 + %0 = load double, ptr undef, align 8, !dbg !42, !tbaa !43 br label %php_intpow10.exit, !dbg !47 php_intpow10.exit: ; preds = %if.end.i, %if.then.i Index: llvm/test/CodeGen/PowerPC/pr24636.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr24636.ll +++ llvm/test/CodeGen/PowerPC/pr24636.ll @@ -25,7 +25,7 @@ .lr.ph.split.split: ; preds = %.lr.ph.split.split, %.lr.ph.split %1 = phi i32 [ %2, %.lr.ph.split.split ], [ undef, %.lr.ph.split ] - %2 = and i32 %1, and (i32 and (i32 and (i32 and (i32 and (i32 and (i32 and (i32 zext (i1 select (i1 icmp eq ([1 x i32]* bitcast (i32* @c to [1 x i32]*), [1 x i32]* @b), i1 true, i1 false) to i32), i32 zext (i1 select (i1 icmp eq ([1 x i32]* bitcast (i32* @c to [1 x i32]*), [1 x i32]* @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq ([1 x i32]* bitcast (i32* @c to [1 x i32]*), [1 x i32]* @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq ([1 x i32]* bitcast (i32* @c to [1 x i32]*), [1 x i32]* @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq ([1 x i32]* bitcast (i32* @c to [1 x i32]*), [1 x i32]* @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq ([1 x i32]* bitcast (i32* @c to [1 x i32]*), [1 x i32]* @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq ([1 x i32]* bitcast (i32* @c to [1 x i32]*), [1 x i32]* @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq ([1 x i32]* bitcast (i32* @c to [1 x i32]*), [1 x i32]* @b), i1 true, i1 false) to i32)) + %2 = and i32 %1, and (i32 and (i32 and (i32 and (i32 and (i32 and (i32 and (i32 zext (i1 select (i1 icmp eq (ptr @c, ptr @b), i1 true, i1 false) to i32), i32 zext (i1 select (i1 icmp eq (ptr @c, ptr @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq (ptr @c, ptr @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq (ptr @c, ptr @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq (ptr @c, ptr @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq (ptr @c, ptr @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq (ptr @c, ptr @b), i1 true, i1 false) to i32)), i32 zext (i1 select (i1 icmp eq (ptr @c, ptr @b), i1 true, i1 false) to i32)) %3 = icmp slt i32 undef, 4 br i1 %3, label %.lr.ph.split.split, label %._crit_edge Index: llvm/test/CodeGen/PowerPC/pr25157-peephole.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr25157-peephole.ll +++ llvm/test/CodeGen/PowerPC/pr25157-peephole.ll @@ -49,10 +49,10 @@ unreachable L.LB38_2452: - %0 = load float, float* bitcast (i8* getelementptr inbounds (%struct.BSS38.51.4488.9911.14348.16813.20264.24701.28152.31603.35054.39491.44914.45407.46393.46886.47872.49351.49844.50830.51323.52309.53295.53788.54281.55267.55760.59211.61625, %struct.BSS38.51.4488.9911.14348.16813.20264.24701.28152.31603.35054.39491.44914.45407.46393.46886.47872.49351.49844.50830.51323.52309.53295.53788.54281.55267.55760.59211.61625* @.BSS38, i64 0, i32 0, i64 16) to float*), align 16 + %0 = load float, ptr getelementptr inbounds (%struct.BSS38.51.4488.9911.14348.16813.20264.24701.28152.31603.35054.39491.44914.45407.46393.46886.47872.49351.49844.50830.51323.52309.53295.53788.54281.55267.55760.59211.61625, ptr @.BSS38, i64 0, i32 0, i64 16), align 16 %1 = fpext float %0 to double %2 = insertelement <2 x double> undef, double %1, i32 1 - store <2 x double> %2, <2 x double>* bitcast (i8* getelementptr inbounds (%struct_main1_2_.491.4928.10351.14788.17253.20704.25141.28592.32043.35494.39931.45354.45847.46833.47326.48312.49791.50284.51270.51763.52749.53735.54228.54721.55707.56200.59651.61626, %struct_main1_2_.491.4928.10351.14788.17253.20704.25141.28592.32043.35494.39931.45354.45847.46833.47326.48312.49791.50284.51270.51763.52749.53735.54228.54721.55707.56200.59651.61626* @_main1_2_, i64 0, i32 0, i64 32) to <2 x double>*), align 16 + store <2 x double> %2, ptr getelementptr inbounds (%struct_main1_2_.491.4928.10351.14788.17253.20704.25141.28592.32043.35494.39931.45354.45847.46833.47326.48312.49791.50284.51270.51763.52749.53735.54228.54721.55707.56200.59651.61626, ptr @_main1_2_, i64 0, i32 0, i64 32), align 16 unreachable } Index: llvm/test/CodeGen/PowerPC/pr25157.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr25157.ll +++ llvm/test/CodeGen/PowerPC/pr25157.ll @@ -49,10 +49,10 @@ unreachable L.LB38_2452: - %0 = load float, float* bitcast (i8* getelementptr inbounds (%struct.BSS38.51.4488.9911.14348.16813.20264.24701.28152.31603.35054.39491.44914.45407.46393.46886.47872.49351.49844.50830.51323.52309.53295.53788.54281.55267.55760.59211.61625, %struct.BSS38.51.4488.9911.14348.16813.20264.24701.28152.31603.35054.39491.44914.45407.46393.46886.47872.49351.49844.50830.51323.52309.53295.53788.54281.55267.55760.59211.61625* @.BSS38, i64 0, i32 0, i64 16) to float*), align 16 + %0 = load float, ptr getelementptr inbounds (%struct.BSS38.51.4488.9911.14348.16813.20264.24701.28152.31603.35054.39491.44914.45407.46393.46886.47872.49351.49844.50830.51323.52309.53295.53788.54281.55267.55760.59211.61625, ptr @.BSS38, i64 0, i32 0, i64 16), align 16 %1 = fpext float %0 to double %2 = insertelement <2 x double> undef, double %1, i32 1 - store <2 x double> %2, <2 x double>* bitcast (i8* getelementptr inbounds (%struct_main1_2_.491.4928.10351.14788.17253.20704.25141.28592.32043.35494.39931.45354.45847.46833.47326.48312.49791.50284.51270.51763.52749.53735.54228.54721.55707.56200.59651.61626, %struct_main1_2_.491.4928.10351.14788.17253.20704.25141.28592.32043.35494.39931.45354.45847.46833.47326.48312.49791.50284.51270.51763.52749.53735.54228.54721.55707.56200.59651.61626* @_main1_2_, i64 0, i32 0, i64 32) to <2 x double>*), align 16 + store <2 x double> %2, ptr getelementptr inbounds (%struct_main1_2_.491.4928.10351.14788.17253.20704.25141.28592.32043.35494.39931.45354.45847.46833.47326.48312.49791.50284.51270.51763.52749.53735.54228.54721.55707.56200.59651.61626, ptr @_main1_2_, i64 0, i32 0, i64 32), align 16 unreachable } Index: llvm/test/CodeGen/PowerPC/pr26378.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr26378.ll +++ llvm/test/CodeGen/PowerPC/pr26378.ll @@ -1,6 +1,6 @@ ; RUN: llc -verify-machineinstrs -compile-twice -filetype obj \ ; RUN: -mtriple=powerpc64le-unknown-unknown -mcpu=pwr8 < %s @foo = common global i32 0, align 4 -define i8* @blah() #0 { - ret i8* bitcast (i32* @foo to i8*) +define ptr @blah() #0 { + ret ptr @foo } Index: llvm/test/CodeGen/PowerPC/pr26690.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr26690.ll +++ llvm/test/CodeGen/PowerPC/pr26690.ll @@ -5,7 +5,7 @@ %struct.anon.1 = type { i32 } @i = common global i32 0, align 4 -@b = common global i32* null, align 8 +@b = common global ptr null, align 8 @c = common global i32 0, align 4 @a = common global i32 0, align 4 @h = common global i32 0, align 4 @@ -16,20 +16,20 @@ @e = common global i32 0, align 4 ; Function Attrs: norecurse nounwind -define signext i32 @fn1(i32* nocapture %p1, i32 signext %p2, i32* nocapture %p3) { +define signext i32 @fn1(ptr nocapture %p1, i32 signext %p2, ptr nocapture %p3) { entry: - %0 = load i32, i32* @i, align 4, !tbaa !1 + %0 = load i32, ptr @i, align 4, !tbaa !1 %cond = icmp eq i32 %0, 8 br i1 %cond, label %if.end16, label %while.cond.preheader while.cond.preheader: ; preds = %entry - %1 = load i32*, i32** @b, align 8, !tbaa !5 - %2 = load i32, i32* %1, align 4, !tbaa !1 + %1 = load ptr, ptr @b, align 8, !tbaa !5 + %2 = load i32, ptr %1, align 4, !tbaa !1 %tobool18 = icmp eq i32 %2, 0 br i1 %tobool18, label %while.end, label %while.body.lr.ph while.body.lr.ph: ; preds = %while.cond.preheader - %.pre = load i32, i32* @c, align 4, !tbaa !1 + %.pre = load i32, ptr @c, align 4, !tbaa !1 br label %while.body while.body: ; preds = %while.body.backedge, %while.body.lr.ph @@ -44,12 +44,12 @@ br label %while.body sw.bb1: ; preds = %while.body, %while.body, %while.body - store i32 2, i32* @a, align 4, !tbaa !1 + store i32 2, ptr @a, align 4, !tbaa !1 br label %while.cond.backedge while.cond.backedge: ; preds = %while.body, %sw.bb1 - store i32 4, i32* @a, align 4, !tbaa !1 - %.pre19 = load i32, i32* %1, align 4, !tbaa !1 + store i32 4, ptr @a, align 4, !tbaa !1 + %.pre19 = load i32, ptr %1, align 4, !tbaa !1 %tobool = icmp eq i32 %.pre19, 0 br i1 %tobool, label %while.end.loopexit, label %while.body.backedge @@ -57,23 +57,23 @@ br label %while.end while.end: ; preds = %while.end.loopexit, %while.cond.preheader - %3 = load i32, i32* @h, align 4, !tbaa !1 + %3 = load i32, ptr @h, align 4, !tbaa !1 %mul = mul nsw i32 %0, %3 - %4 = load i32, i32* @g, align 4, !tbaa !1 + %4 = load i32, ptr @g, align 4, !tbaa !1 %mul4 = mul nsw i32 %mul, %4 - store i32 %mul4, i32* @j, align 4, !tbaa !1 - %5 = load i32, i32* getelementptr inbounds (%struct.anon, %struct.anon* @f, i64 0, i32 0, i32 0), align 4, !tbaa !7 + store i32 %mul4, ptr @j, align 4, !tbaa !1 + %5 = load i32, ptr @f, align 4, !tbaa !7 %tobool5 = icmp eq i32 %5, 0 br i1 %tobool5, label %if.end, label %if.then if.then: ; preds = %while.end %div = sdiv i32 %5, %mul - store i32 %div, i32* @g, align 4, !tbaa !1 + store i32 %div, ptr @g, align 4, !tbaa !1 br label %if.end if.end: ; preds = %while.end, %if.then %6 = phi i32 [ %4, %while.end ], [ %div, %if.then ] - %7 = load i32, i32* getelementptr inbounds (%struct.anon, %struct.anon* @f, i64 0, i32 1, i32 0), align 4, !tbaa !10 + %7 = load i32, ptr getelementptr inbounds (%struct.anon, ptr @f, i64 0, i32 1, i32 0), align 4, !tbaa !10 %tobool7 = icmp ne i32 %7, 0 %tobool8 = icmp ne i32 %mul4, 0 %or.cond = and i1 %tobool7, %tobool8 @@ -82,10 +82,10 @@ br i1 %or.cond17, label %if.then11, label %if.end13 if.then11: ; preds = %if.end - store i32 %3, i32* @d, align 4, !tbaa !1 - %8 = load i32, i32* @e, align 4, !tbaa !1 - store i32 %8, i32* %p3, align 4, !tbaa !1 - %.pre20 = load i32, i32* @g, align 4, !tbaa !1 + store i32 %3, ptr @d, align 4, !tbaa !1 + %8 = load i32, ptr @e, align 4, !tbaa !1 + store i32 %8, ptr %p3, align 4, !tbaa !1 + %.pre20 = load i32, ptr @g, align 4, !tbaa !1 br label %if.end13 if.end13: ; preds = %if.then11, %if.end @@ -94,7 +94,7 @@ br i1 %tobool14, label %if.end16, label %if.then15 if.then15: ; preds = %if.end13 - store i32 %p2, i32* %p1, align 4, !tbaa !1 + store i32 %p2, ptr %p1, align 4, !tbaa !1 br label %if.end16 if.end16: ; preds = %entry, %if.end13, %if.then15 Index: llvm/test/CodeGen/PowerPC/pr27078.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr27078.ll +++ llvm/test/CodeGen/PowerPC/pr27078.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-linux-gnu -mcpu=pwr8 -mattr=+vsx < %s | FileCheck %s -define <4 x float> @bar(float* %p, float* %q) { +define <4 x float> @bar(ptr %p, ptr %q) { ; CHECK-LABEL: bar: ; CHECK: # %bb.0: ; CHECK-NEXT: li 5, 16 @@ -24,11 +24,9 @@ ; CHECK-NEXT: lxvw4x 35, 0, 3 ; CHECK-NEXT: vperm 2, 2, 5, 3 ; CHECK-NEXT: blr - %1 = bitcast float* %p to <12 x float>* - %2 = bitcast float* %q to <12 x float>* - %3 = load <12 x float>, <12 x float>* %1, align 16 - %4 = load <12 x float>, <12 x float>* %2, align 16 - %5 = fsub <12 x float> %4, %3 - %6 = shufflevector <12 x float> %5, <12 x float> undef, <4 x i32> - ret <4 x float> %6 + %1 = load <12 x float>, ptr %p, align 16 + %2 = load <12 x float>, ptr %q, align 16 + %3 = fsub <12 x float> %2, %1 + %4 = shufflevector <12 x float> %3, <12 x float> undef, <4 x i32> + ret <4 x float> %4 } Index: llvm/test/CodeGen/PowerPC/pr27350.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr27350.ll +++ llvm/test/CodeGen/PowerPC/pr27350.ll @@ -1,13 +1,13 @@ ; RUN: llc -verify-machineinstrs -mcpu=ppc64le -mtriple=powerpc64le-unknown-linux-gnu < %s ; Function Attrs: argmemonly nounwind -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #0 +declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) #0 ; Function Attrs: nounwind define internal fastcc void @foo() unnamed_addr #1 align 2 { entry: - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 undef, i8* align 8 null, i64 16, i1 false) - %0 = load <2 x i64>, <2 x i64>* null, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 8 undef, ptr align 8 null, i64 16, i1 false) + %0 = load <2 x i64>, ptr null, align 8 %1 = extractelement <2 x i64> %0, i32 1 %.fca.1.insert159.i = insertvalue [2 x i64] undef, i64 %1, 1 tail call fastcc void @bar([2 x i64] undef, [2 x i64] %.fca.1.insert159.i) #2 Index: llvm/test/CodeGen/PowerPC/pr28130.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr28130.ll +++ llvm/test/CodeGen/PowerPC/pr28130.ll @@ -3,7 +3,7 @@ %StructA = type { double, double, double, double, double, double, double, double } -define void @Test(%StructA* %tmp) unnamed_addr #0 align 2 { +define void @Test(ptr %tmp) unnamed_addr #0 align 2 { ; CHECK-LABEL: Test: ; CHECK: lxvd2x ; CHECK-NEXT: xxswapd @@ -16,24 +16,22 @@ ; CHECK: xxswapd [[OUTPUT:[0-9]+]] ; CHECK-NEXT: stxvd2x [[OUTPUT]] bb: - %tmp2 = getelementptr inbounds %StructA, %StructA* %tmp, i64 0, i32 0 - %tmp4 = bitcast %StructA* %tmp to <2 x double>* - %tmp5 = getelementptr inbounds %StructA, %StructA* %tmp, i64 0, i32 2 - %tmp9 = getelementptr inbounds %StructA, %StructA* %tmp, i64 0, i32 4 - %tmp11 = getelementptr inbounds %StructA, %StructA* %tmp, i64 0, i32 5 - %tmp13 = getelementptr inbounds %StructA, %StructA* %tmp, i64 0, i32 6 - %tmp15 = getelementptr inbounds %StructA, %StructA* %tmp, i64 0, i32 7 - %tmp18 = load double, double* %tmp2, align 16 - %tmp19 = load double, double* %tmp11, align 8 - %tmp20 = load double, double* %tmp9, align 16 + %tmp5 = getelementptr inbounds %StructA, ptr %tmp, i64 0, i32 2 + %tmp9 = getelementptr inbounds %StructA, ptr %tmp, i64 0, i32 4 + %tmp11 = getelementptr inbounds %StructA, ptr %tmp, i64 0, i32 5 + %tmp13 = getelementptr inbounds %StructA, ptr %tmp, i64 0, i32 6 + %tmp15 = getelementptr inbounds %StructA, ptr %tmp, i64 0, i32 7 + %tmp18 = load double, ptr %tmp, align 16 + %tmp19 = load double, ptr %tmp11, align 8 + %tmp20 = load double, ptr %tmp9, align 16 %tmp21 = fsub double 1.210000e+04, %tmp20 %tmp22 = fmul double %tmp18, %tmp21 %tmp23 = fadd double %tmp20, %tmp22 - %tmp24 = load double, double* %tmp13, align 16 + %tmp24 = load double, ptr %tmp13, align 16 %tmp25 = fsub double 1.000000e+02, %tmp24 %tmp26 = fmul double %tmp18, %tmp25 %tmp27 = fadd double %tmp24, %tmp26 - %tmp28 = load double, double* %tmp15, align 8 + %tmp28 = load double, ptr %tmp15, align 8 %tmp29 = insertelement <2 x double> undef, double %tmp19, i32 0 %tmp30 = insertelement <2 x double> %tmp29, double %tmp28, i32 1 %tmp31 = fsub <2 x double> , %tmp30 @@ -41,8 +39,7 @@ %tmp33 = insertelement <2 x double> %tmp32, double %tmp18, i32 1 %tmp34 = fmul <2 x double> %tmp33, %tmp31 %tmp35 = fadd <2 x double> %tmp30, %tmp34 - %tmp36 = bitcast double* %tmp5 to <2 x double>* - %tmp37 = load <2 x double>, <2 x double>* %tmp36, align 16 + %tmp37 = load <2 x double>, ptr %tmp5, align 16 %tmp38 = fsub <2 x double> , %tmp37 %tmp39 = fmul <2 x double> %tmp33, %tmp38 %tmp40 = fadd <2 x double> %tmp37, %tmp39 @@ -55,15 +52,14 @@ %tmp48 = fsub double 1.440000e+04, %tmp23 %tmp49 = fmul double %tmp18, %tmp48 %tmp50 = fadd double %tmp23, %tmp49 - store double %tmp50, double* %tmp9, align 16 + store double %tmp50, ptr %tmp9, align 16 %tmp51 = fsub double 1.000000e+02, %tmp27 %tmp52 = fmul double %tmp18, %tmp51 %tmp53 = fadd double %tmp27, %tmp52 - store double %tmp53, double* %tmp13, align 16 + store double %tmp53, ptr %tmp13, align 16 %tmp54 = extractelement <2 x double> %tmp46, i32 1 - store double %tmp54, double* %tmp15, align 8 - %tmp55 = bitcast double* %tmp5 to <2 x double>* - store <2 x double> %tmp43, <2 x double>* %tmp55, align 16 + store double %tmp54, ptr %tmp15, align 8 + store <2 x double> %tmp43, ptr %tmp5, align 16 ret void } Index: llvm/test/CodeGen/PowerPC/pr28630.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr28630.ll +++ llvm/test/CodeGen/PowerPC/pr28630.ll @@ -7,7 +7,7 @@ @g = common global double 0.000000e+00, align 8 define double @testitd() { - %g = load double, double* @g, align 8 + %g = load double, ptr @g, align 8 ret double %g } Index: llvm/test/CodeGen/PowerPC/pr30451.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr30451.ll +++ llvm/test/CodeGen/PowerPC/pr30451.ll @@ -2,13 +2,12 @@ define i8 @atomic_min_i8() { top: %0 = alloca i8, align 2 - %1 = bitcast i8* %0 to i8* - call void @llvm.lifetime.start.p0i8(i64 2, i8* %1) - store i8 -1, i8* %0, align 2 - %2 = atomicrmw min i8* %0, i8 0 acq_rel - %3 = load atomic i8, i8* %0 acquire, align 8 - call void @llvm.lifetime.end.p0i8(i64 2, i8* %1) - ret i8 %3 + call void @llvm.lifetime.start.p0(i64 2, ptr %0) + store i8 -1, ptr %0, align 2 + %1 = atomicrmw min ptr %0, i8 0 acq_rel + %2 = load atomic i8, ptr %0 acquire, align 8 + call void @llvm.lifetime.end.p0(i64 2, ptr %0) + ret i8 %2 ; CHECK-LABEL: atomic_min_i8 ; CHECK: lbarx [[DST:[0-9]+]], ; CHECK-NEXT: extsb [[EXT:[0-9]+]], [[DST]] @@ -18,13 +17,12 @@ define i16 @atomic_min_i16() { top: %0 = alloca i16, align 2 - %1 = bitcast i16* %0 to i8* - call void @llvm.lifetime.start.p0i8(i64 2, i8* %1) - store i16 -1, i16* %0, align 2 - %2 = atomicrmw min i16* %0, i16 0 acq_rel - %3 = load atomic i16, i16* %0 acquire, align 8 - call void @llvm.lifetime.end.p0i8(i64 2, i8* %1) - ret i16 %3 + call void @llvm.lifetime.start.p0(i64 2, ptr %0) + store i16 -1, ptr %0, align 2 + %1 = atomicrmw min ptr %0, i16 0 acq_rel + %2 = load atomic i16, ptr %0 acquire, align 8 + call void @llvm.lifetime.end.p0(i64 2, ptr %0) + ret i16 %2 ; CHECK-LABEL: atomic_min_i16 ; CHECK: lharx [[DST:[0-9]+]], ; CHECK-NEXT: extsh [[EXT:[0-9]+]], [[DST]] @@ -35,13 +33,12 @@ define i8 @atomic_max_i8() { top: %0 = alloca i8, align 2 - %1 = bitcast i8* %0 to i8* - call void @llvm.lifetime.start.p0i8(i64 2, i8* %1) - store i8 -1, i8* %0, align 2 - %2 = atomicrmw max i8* %0, i8 0 acq_rel - %3 = load atomic i8, i8* %0 acquire, align 8 - call void @llvm.lifetime.end.p0i8(i64 2, i8* %1) - ret i8 %3 + call void @llvm.lifetime.start.p0(i64 2, ptr %0) + store i8 -1, ptr %0, align 2 + %1 = atomicrmw max ptr %0, i8 0 acq_rel + %2 = load atomic i8, ptr %0 acquire, align 8 + call void @llvm.lifetime.end.p0(i64 2, ptr %0) + ret i8 %2 ; CHECK-LABEL: atomic_max_i8 ; CHECK: lbarx [[DST:[0-9]+]], ; CHECK-NEXT: extsb [[EXT:[0-9]+]], [[DST]] @@ -51,13 +48,12 @@ define i16 @atomic_max_i16() { top: %0 = alloca i16, align 2 - %1 = bitcast i16* %0 to i8* - call void @llvm.lifetime.start.p0i8(i64 2, i8* %1) - store i16 -1, i16* %0, align 2 - %2 = atomicrmw max i16* %0, i16 0 acq_rel - %3 = load atomic i16, i16* %0 acquire, align 8 - call void @llvm.lifetime.end.p0i8(i64 2, i8* %1) - ret i16 %3 + call void @llvm.lifetime.start.p0(i64 2, ptr %0) + store i16 -1, ptr %0, align 2 + %1 = atomicrmw max ptr %0, i16 0 acq_rel + %2 = load atomic i16, ptr %0 acquire, align 8 + call void @llvm.lifetime.end.p0(i64 2, ptr %0) + ret i16 %2 ; CHECK-LABEL: atomic_max_i16 ; CHECK: lharx [[DST:[0-9]+]], ; CHECK-NEXT: extsh [[EXT:[0-9]+]], [[DST]] @@ -65,5 +61,5 @@ ; CHECK-NEXT: bgt 0 } -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) Index: llvm/test/CodeGen/PowerPC/pr30663.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr30663.ll +++ llvm/test/CodeGen/PowerPC/pr30663.ll @@ -6,19 +6,19 @@ ; CHECK-NOT: xxspltw define void @Test() { bb4: - %tmp = load <4 x i8>, <4 x i8>* undef + %tmp = load <4 x i8>, ptr undef %tmp8 = bitcast <4 x i8> %tmp to float %tmp18 = fmul float %tmp8, undef %tmp19 = fsub float 0.000000e+00, %tmp18 - store float %tmp19, float* undef + store float %tmp19, ptr undef %tmp22 = shufflevector <4 x i8> %tmp, <4 x i8> undef, <16 x i32> %tmp23 = bitcast <16 x i8> %tmp22 to <4 x float> %tmp25 = tail call <4 x float> @llvm.fma.v4f32(<4 x float> undef, <4 x float> %tmp23, <4 x float> undef) %tmp26 = fsub <4 x float> zeroinitializer, %tmp25 %tmp27 = bitcast <4 x float> %tmp26 to <4 x i32> - tail call void @llvm.ppc.altivec.stvx(<4 x i32> %tmp27, i8* undef) + tail call void @llvm.ppc.altivec.stvx(<4 x i32> %tmp27, ptr undef) ret void } -declare void @llvm.ppc.altivec.stvx(<4 x i32>, i8*) +declare void @llvm.ppc.altivec.stvx(<4 x i32>, ptr) declare <4 x float> @llvm.fma.v4f32(<4 x float>, <4 x float>, <4 x float>) Index: llvm/test/CodeGen/PowerPC/pr30715.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr30715.ll +++ llvm/test/CodeGen/PowerPC/pr30715.ll @@ -1,19 +1,18 @@ ; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s %class.FullMatrix = type { i8 } -%class.Vector = type { float* } +%class.Vector = type { ptr } $test = comdat any -define weak_odr void @test(%class.FullMatrix* %this, %class.Vector* dereferenceable(8) %p1, %class.Vector* dereferenceable(8), i1 zeroext) { +define weak_odr void @test(ptr %this, ptr dereferenceable(8) %p1, ptr dereferenceable(8), i1 zeroext) { entry: - %call = tail call signext i32 @fn1(%class.FullMatrix* %this) + %call = tail call signext i32 @fn1(ptr %this) %cmp10 = icmp sgt i32 %call, 0 br i1 %cmp10, label %for.body.lr.ph, label %for.cond.cleanup for.body.lr.ph: ; preds = %entry - %val.i = getelementptr inbounds %class.Vector, %class.Vector* %p1, i64 0, i32 0 - %2 = load float*, float** %val.i, align 8 + %2 = load ptr, ptr %p1, align 8 %wide.trip.count = zext i32 %call to i64 %min.iters.check = icmp ult i32 %call, 4 br i1 %min.iters.check, label %for.body.preheader, label %min.iters.checked @@ -34,17 +33,15 @@ vector.body: ; preds = %vector.body.preheader, %vector.body %index = phi i64 [ %index.next, %vector.body ], [ 0, %vector.body.preheader ] - %4 = getelementptr inbounds float, float* %2, i64 %index - %5 = bitcast float* %4 to <4 x float>* - %wide.load = load <4 x float>, <4 x float>* %5, align 4 - %6 = fpext <4 x float> %wide.load to <4 x ppc_fp128> - %7 = fadd <4 x ppc_fp128> %6, %6 - %8 = fptrunc <4 x ppc_fp128> %7 to <4 x float> - %9 = bitcast float* %4 to <4 x float>* - store <4 x float> %8, <4 x float>* %9, align 4 + %4 = getelementptr inbounds float, ptr %2, i64 %index + %wide.load = load <4 x float>, ptr %4, align 4 + %5 = fpext <4 x float> %wide.load to <4 x ppc_fp128> + %6 = fadd <4 x ppc_fp128> %5, %5 + %7 = fptrunc <4 x ppc_fp128> %6 to <4 x float> + store <4 x float> %7, ptr %4, align 4 %index.next = add i64 %index, 4 - %10 = icmp eq i64 %index.next, %n.vec - br i1 %10, label %middle.block, label %vector.body + %8 = icmp eq i64 %index.next, %n.vec + br i1 %8, label %middle.block, label %vector.body middle.block: ; preds = %vector.body %cmp.n = icmp eq i32 %3, 0 @@ -58,12 +55,12 @@ for.body: ; preds = %for.body.preheader, %for.body %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ %indvars.iv.ph, %for.body.preheader ] - %arrayidx.i = getelementptr inbounds float, float* %2, i64 %indvars.iv - %11 = load float, float* %arrayidx.i, align 4 - %conv = fpext float %11 to ppc_fp128 + %arrayidx.i = getelementptr inbounds float, ptr %2, i64 %indvars.iv + %9 = load float, ptr %arrayidx.i, align 4 + %conv = fpext float %9 to ppc_fp128 %add = fadd ppc_fp128 %conv, %conv %conv4 = fptrunc ppc_fp128 %add to float - store float %conv4, float* %arrayidx.i, align 4 + store float %conv4, ptr %arrayidx.i, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond, label %for.cond.cleanup.loopexit, label %for.body @@ -71,4 +68,4 @@ ; CHECK: lxvd2x } -declare signext i32 @fn1(%class.FullMatrix*) local_unnamed_addr #1 +declare signext i32 @fn1(ptr) local_unnamed_addr #1 Index: llvm/test/CodeGen/PowerPC/pr31144.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr31144.ll +++ llvm/test/CodeGen/PowerPC/pr31144.ll @@ -2,9 +2,9 @@ declare void @bar(double) -define void @foo1(i8* %p) { +define void @foo1(ptr %p) { entry: - %0 = load i8, i8* %p, align 1 + %0 = load i8, ptr %p, align 1 %conv = uitofp i8 %0 to double call void @bar(double %conv) ret void @@ -13,9 +13,9 @@ ; CHECK: mtfprwz } -define void @foo2(i16* %p) { +define void @foo2(ptr %p) { entry: - %0 = load i16, i16* %p, align 2 + %0 = load i16, ptr %p, align 2 %conv = uitofp i16 %0 to double call void @bar(double %conv) ret void Index: llvm/test/CodeGen/PowerPC/pr32063.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr32063.ll +++ llvm/test/CodeGen/PowerPC/pr32063.ll @@ -1,11 +1,11 @@ ; RUN: llc -O2 < %s | FileCheck %s target triple = "powerpc64le-linux-gnu" -define void @foo(i32 %v, i16* %p) { +define void @foo(i32 %v, ptr %p) { %1 = and i32 %v, -65536 %2 = tail call i32 @llvm.bswap.i32(i32 %1) %conv = trunc i32 %2 to i16 - store i16 %conv, i16* %p + store i16 %conv, ptr %p ret void ; CHECK: srwi Index: llvm/test/CodeGen/PowerPC/pr32140.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr32140.ll +++ llvm/test/CodeGen/PowerPC/pr32140.ll @@ -37,11 +37,11 @@ ; CHECK-BE-NEXT: stwbrx 3, 0, 4 ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* @ai, align 4 + %0 = load i32, ptr @ai, align 4 %conv.i = sext i32 %0 to i64 %or26.i = tail call i64 @llvm.bswap.i64(i64 %conv.i) %conv = trunc i64 %or26.i to i32 - store i32 %conv, i32* @bi, align 4 + store i32 %conv, ptr @bi, align 4 ret void } @@ -75,11 +75,11 @@ ; CHECK-BE-NEXT: sthbrx 3, 0, 4 ; CHECK-BE-NEXT: blr entry: - %0 = load i16, i16* @as, align 2 + %0 = load i16, ptr @as, align 2 %conv.i = sext i16 %0 to i32 %or26.i = tail call i32 @llvm.bswap.i32(i32 %conv.i) %conv = trunc i32 %or26.i to i16 - store i16 %conv, i16* @bs, align 2 + store i16 %conv, ptr @bs, align 2 ret void } @@ -113,11 +113,11 @@ ; CHECK-BE-NEXT: sthbrx 3, 0, 4 ; CHECK-BE-NEXT: blr entry: - %0 = load i16, i16* @as, align 2 + %0 = load i16, ptr @as, align 2 %conv.i = sext i16 %0 to i64 %or26.i = tail call i64 @llvm.bswap.i64(i64 %conv.i) %conv = trunc i64 %or26.i to i16 - store i16 %conv, i16* @bs, align 2 + store i16 %conv, ptr @bs, align 2 ret void } Index: llvm/test/CodeGen/PowerPC/pr33547.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr33547.ll +++ llvm/test/CodeGen/PowerPC/pr33547.ll @@ -27,24 +27,23 @@ ; CHECK-NEXT: mtlr 0 ; CHECK-NEXT: blr L.entry: - tail call void @testFunc(i64* bitcast (i8* getelementptr inbounds (%struct.STATICS1, %struct.STATICS1* @.STATICS1, i64 0, i32 0, i64 124) to i64*), i64* bitcast (i32* @.C302_MAIN_ to i64*)) + tail call void @testFunc(ptr getelementptr inbounds (%struct.STATICS1, ptr @.STATICS1, i64 0, i32 0, i64 124), ptr @.C302_MAIN_) ret void } ; Function Attrs: noinline norecurse nounwind readonly -define signext i32 @ifunc_(i64* nocapture readonly %i) { +define signext i32 @ifunc_(ptr nocapture readonly %i) { ; CHECK-LABEL: ifunc_: ; CHECK: # %bb.0: # %L.entry ; CHECK-NEXT: lwa 3, 0(3) ; CHECK-NEXT: blr L.entry: - %0 = bitcast i64* %i to i32* - %1 = load i32, i32* %0, align 4 - ret i32 %1 + %0 = load i32, ptr %i, align 4 + ret i32 %0 } ; Function Attrs: noinline norecurse nounwind -define void @testFunc(i64* nocapture %r, i64* nocapture readonly %k) { +define void @testFunc(ptr nocapture %r, ptr nocapture readonly %k) { ; CHECK-LABEL: testFunc: ; CHECK: # %bb.0: # %L.entry ; CHECK-NEXT: mflr 0 @@ -86,9 +85,8 @@ ; CHECK-NEXT: mtlr 0 ; CHECK-NEXT: blr L.entry: - %0 = bitcast i64* %k to i32* - %1 = load i32, i32* %0, align 4 - switch i32 %1, label %L.LB3_307 [ + %0 = load i32, ptr %k, align 4 + switch i32 %0, label %L.LB3_307 [ i32 1, label %L.LB3_307.sink.split i32 3, label %L.LB3_307.sink.split i32 4, label %L.LB3_321.split @@ -108,8 +106,7 @@ L.LB3_307.sink.split: ; preds = %L.LB3_321.split, %L.entry, %L.entry, %L.entry %.sink = phi i32 [ 5, %L.LB3_321.split ], [ -3, %L.entry ], [ -3, %L.entry ], [ -3, %L.entry ] - %2 = bitcast i64* %r to i32* - store i32 %.sink, i32* %2, align 4 + store i32 %.sink, ptr %r, align 4 br label %L.LB3_307 L.LB3_307: ; preds = %L.LB3_307.sink.split, %L.entry Index: llvm/test/CodeGen/PowerPC/pr35402.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr35402.ll +++ llvm/test/CodeGen/PowerPC/pr35402.ll @@ -2,7 +2,7 @@ ; RUN: llc -O2 < %s | FileCheck %s target triple = "powerpc64le-linux-gnu" -define void @test(i8* %p, i64 %data) { +define void @test(ptr %p, i64 %data) { ; CHECK-LABEL: test: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: rotldi 5, 4, 16 @@ -19,9 +19,8 @@ ; CHECK-NEXT: blr entry: %0 = tail call i64 @llvm.bswap.i64(i64 %data) - %ptr = bitcast i8* %p to i48* %val = trunc i64 %0 to i48 - store i48 %val, i48* %ptr, align 1 + store i48 %val, ptr %p, align 1 ret void } Index: llvm/test/CodeGen/PowerPC/pr35688.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr35688.ll +++ llvm/test/CodeGen/PowerPC/pr35688.ll @@ -25,8 +25,8 @@ br label %fe_cmovznz.exit.i534.i.15 fe_cmovznz.exit.i534.i.15: ; preds = %fe_cmovznz.exit.i534.i.15, %entry - %0 = load i64, i64* undef, align 8 - %1 = load i64, i64* undef, align 8 + %0 = load i64, ptr undef, align 8 + %1 = load i64, ptr undef, align 8 %conv.i69.i.i = zext i64 %0 to i128 %sub.i72.i.i = sub nsw i128 0, %conv.i69.i.i %conv.i63.i.i = zext i64 %1 to i128 @@ -36,7 +36,7 @@ %conv1.i58.i.i = and i128 %sub.i65.lobit.i.i, 18446744073709551615 %add3.i59.i.i = add nuw nsw i128 %conv1.i58.i.i, 0 %conv4.i60.i.i = trunc i128 %add3.i59.i.i to i64 - store i64 %conv4.i60.i.i, i64* undef, align 16 + store i64 %conv4.i60.i.i, ptr undef, align 16 br label %fe_cmovznz.exit.i534.i.15 } Index: llvm/test/CodeGen/PowerPC/pr36068.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr36068.ll +++ llvm/test/CodeGen/PowerPC/pr36068.ll @@ -4,15 +4,15 @@ @glob = local_unnamed_addr global <4 x float> zeroinitializer, align 4 ; Function Attrs: norecurse nounwind -define void @test(float %a, <4 x float>* nocapture readonly %b) { +define void @test(float %a, ptr nocapture readonly %b) { ; CHECK-LABEL: test ; CHECK: xscvdpspn [[REG:[0-9]+]], 1 ; CHECK: xxspltw {{[0-9]+}}, [[REG]], 0 entry: %splat.splatinsert = insertelement <4 x float> undef, float %a, i32 0 %splat.splat = shufflevector <4 x float> %splat.splatinsert, <4 x float> undef, <4 x i32> zeroinitializer - %0 = load <4 x float>, <4 x float>* %b, align 4 + %0 = load <4 x float>, ptr %b, align 4 %mul = fmul <4 x float> %splat.splat, %0 - store <4 x float> %mul, <4 x float>* @glob, align 4 + store <4 x float> %mul, ptr @glob, align 4 ret void } Index: llvm/test/CodeGen/PowerPC/pr36292.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr36292.ll +++ llvm/test/CodeGen/PowerPC/pr36292.ll @@ -33,18 +33,18 @@ br label %forcond forcond: ; preds = %bounds.ok, %0 - %1 = load i64, i64* %pos - %.len1 = load i64, i64* undef + %1 = load i64, ptr %pos + %.len1 = load i64, ptr undef %bounds.cmp = icmp ult i64 %1, %.len1 br i1 %bounds.cmp, label %bounds.ok, label %bounds.fail bounds.ok: ; preds = %forcond - %2 = load float, float* undef + %2 = load float, ptr undef %3 = frem float 0.000000e+00, %2 - store float %3, float* undef - %4 = load i64, i64* %pos + store float %3, ptr undef + %4 = load i64, ptr %pos %5 = add i64 %4, 1 - store i64 %5, i64* %pos + store i64 %5, ptr %pos br label %forcond bounds.fail: ; preds = %forcond Index: llvm/test/CodeGen/PowerPC/pr38087.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr38087.ll +++ llvm/test/CodeGen/PowerPC/pr38087.ll @@ -20,7 +20,7 @@ ; CHECK-NEXT: stxv vs0, 0(r3) ; CHECK-NEXT: blr entry: - %.size = load i32, i32* undef + %.size = load i32, ptr undef %0 = call { i32, i1 } @llvm.usub.with.overflow.i32(i32 %.size, i32 7) %1 = extractvalue { i32, i1 } %0, 0 %2 = call { i32, i1 } @llvm.usub.with.overflow.i32(i32 %1, i32 0) @@ -28,7 +28,7 @@ %4 = select i1 false, i32 0, i32 %3 %5 = xor i1 false, true %6 = sext i1 %5 to i32 - %7 = load <4 x i16>, <4 x i16>* undef, align 2 + %7 = load <4 x i16>, ptr undef, align 2 %8 = extractelement <4 x i16> %7, i32 0 %9 = sext i16 %8 to i32 %10 = insertelement <4 x i32> undef, i32 %9, i32 0 @@ -49,6 +49,6 @@ %25 = bitcast <4 x i32> %24 to <4 x float> %26 = shufflevector <4 x float> %25, <4 x float> undef, <4 x i32> %27 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %x, <4 x float> %x, <4 x float> %26) - store <4 x float> %27, <4 x float>* undef + store <4 x float> %27, ptr undef ret void } Index: llvm/test/CodeGen/PowerPC/pr39478.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr39478.ll +++ llvm/test/CodeGen/PowerPC/pr39478.ll @@ -3,7 +3,7 @@ ; RUN: llc < %s -mtriple=powerpc64-unknown-unknown -verify-machineinstrs | FileCheck %s --check-prefix=CHECKBE ; RUN: llc < %s -mtriple=powerpc64-ibm-aix-xcoff -verify-machineinstrs | FileCheck %s --check-prefix=CHECKBE -define void @pr39478(i64* %p64, i32* %p32) { +define void @pr39478(ptr %p64, ptr %p32) { ; CHECKLE-LABEL: pr39478: ; CHECKLE: # %bb.0: # %entry ; CHECKLE-NEXT: lbz 3, 4(3) @@ -16,15 +16,15 @@ ; CHECKBE-NEXT: stb 3, 3(4) ; CHECKBE-NEXT: blr entry: - %tmp32 = load i64, i64* %p64, align 8 - %tmp33 = load i32, i32* %p32, align 4 + %tmp32 = load i64, ptr %p64, align 8 + %tmp33 = load i32, ptr %p32, align 4 %tmp34 = and i32 %tmp33, -256 %tmp35 = lshr i64 %tmp32, 32 %tmp36 = shl nuw nsw i64 %tmp35, 24 %tmp37 = trunc i64 %tmp36 to i32 %tmp38 = call i32 @llvm.bswap.i32(i32 %tmp37) %tmp39 = or i32 %tmp38, %tmp34 - store i32 %tmp39, i32* %p32, align 4 + store i32 %tmp39, ptr %p32, align 4 ret void } Index: llvm/test/CodeGen/PowerPC/pr39815.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr39815.ll +++ llvm/test/CodeGen/PowerPC/pr39815.ll @@ -1,19 +1,19 @@ ; RUN: llc -mcpu=pwr9 -mtriple=powerpc64le-unknown-linux-gnu < %s \ ; RUN: -verify-machineinstrs | FileCheck %s -@b = dso_local local_unnamed_addr global i64* null, align 8 +@b = dso_local local_unnamed_addr global ptr null, align 8 @a = dso_local local_unnamed_addr global i8 0, align 1 define void @testADDEPromoteResult() { entry: - %0 = load i64*, i64** @b, align 8 - %1 = load i64, i64* %0, align 8 - %cmp = icmp ne i64* %0, null + %0 = load ptr, ptr @b, align 8 + %1 = load i64, ptr %0, align 8 + %cmp = icmp ne ptr %0, null %conv1 = zext i1 %cmp to i64 %add = add nsw i64 %1, %conv1 %2 = trunc i64 %add to i8 %conv2 = and i8 %2, 5 - store i8 %conv2, i8* @a, align 1 + store i8 %conv2, ptr @a, align 1 ret void ; CHECK-LABEL: @testADDEPromoteResult Index: llvm/test/CodeGen/PowerPC/pr40922.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr40922.ll +++ llvm/test/CodeGen/PowerPC/pr40922.ll @@ -6,8 +6,8 @@ define i32 @a() { entry: - %call = tail call i32 bitcast (i32 (...)* @d to i32 ()*)() - %0 = load i32, i32* @a.b, align 4 + %call = tail call i32 @d() + %0 = load i32, ptr @a.b, align 4 %conv = zext i32 %0 to i64 %add = add nuw nsw i64 %conv, 6 %and = and i64 %add, 8589934575 @@ -15,11 +15,11 @@ br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - %call3 = tail call i32 bitcast (i32 (...)* @e to i32 ()*)() + %call3 = tail call i32 @e() br label %if.end if.end: ; preds = %if.then, %entry - store i32 %call, i32* @a.b, align 4 + store i32 %call, ptr @a.b, align 4 ret i32 undef } Index: llvm/test/CodeGen/PowerPC/pr41088.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr41088.ll +++ llvm/test/CodeGen/PowerPC/pr41088.ll @@ -3,35 +3,35 @@ ; RUN: -mtriple=powerpc64le-unknown-unknown -verify-machineinstrs < %s | \ ; RUN: FileCheck %s -%0 = type { [0 x i64], %1, [0 x i64], { i64, i8* }, [0 x i64] } -%1 = type { [0 x i64], %2, [0 x i64], i64*, [0 x i64] } +%0 = type { [0 x i64], %1, [0 x i64], { i64, ptr }, [0 x i64] } +%1 = type { [0 x i64], %2, [0 x i64], ptr, [0 x i64] } %2 = type { [0 x i64], %3, [0 x i64], %4, [0 x i8], i8, [7 x i8] } -%3 = type { [0 x i64], { i64*, i64* }, [0 x i64], i64*, [0 x i8], i8, [7 x i8] } -%4 = type { [0 x i64], { i64*, i64* }, [0 x i64], %5, [0 x i64] } -%5 = type { [0 x i64], { i64*, i64* }, [0 x i64], i64*, [0 x i64] } +%3 = type { [0 x i64], { ptr, ptr }, [0 x i64], ptr, [0 x i8], i8, [7 x i8] } +%4 = type { [0 x i64], { ptr, ptr }, [0 x i64], %5, [0 x i64] } +%5 = type { [0 x i64], { ptr, ptr }, [0 x i64], ptr, [0 x i64] } %6 = type { [0 x i64], i64, [2 x i64] } -%7 = type { [0 x i64], { i64*, i64* }, [0 x i64], %8, [0 x i64] } -%8 = type { [0 x i64], %9*, [0 x i32], { i32, i32 }, [0 x i8], i8, [7 x i8] } +%7 = type { [0 x i64], { ptr, ptr }, [0 x i64], %8, [0 x i64] } +%8 = type { [0 x i64], ptr, [0 x i32], { i32, i32 }, [0 x i8], i8, [7 x i8] } %9 = type { [0 x i64], i64, [0 x i64], [0 x %10], [0 x i8], %11 } %10 = type { [0 x i8], i8, [31 x i8] } %11 = type {} %12 = type { [0 x i64], %13, [0 x i32], i32, [0 x i32], i32, [0 x i32] } %13 = type { [0 x i8], i8, [23 x i8] } %14 = type { [0 x i64], i64, [0 x i64], %15, [0 x i32], i32, [0 x i8], i8, [0 x i8], { i8, i8 }, [0 x i8], { i8, i8 }, [0 x i8], { i8, i8 }, [0 x i8], { i8, i8 }, [0 x i8], { i8, i8 }, [0 x i8], { i8, i8 }, [0 x i8], { i8, i8 }, [0 x i8], { i8, i8 }, [0 x i8], { i8, i8 }, [0 x i8], { i8, i8 }, [7 x i8] } -%15 = type { [0 x i64], { i64*, i64 }, [0 x i64], i64, [0 x i64] } +%15 = type { [0 x i64], { ptr, i64 }, [0 x i64], i64, [0 x i64] } %16 = type { [0 x i64], %17, [0 x i64], %18, [0 x i64], %19, [0 x i64], i64, [0 x i8], { i8, i8 }, [6 x i8] } %17 = type { [0 x i32], i32, [27 x i32] } %18 = type { [0 x i64], i64, [6 x i64] } %19 = type { [0 x i8], i8, [103 x i8] } -%20 = type { [0 x i64], { i64*, i64* }*, [0 x i64], %7**, [0 x i64], i64**, [0 x i64] } -%21 = type { [0 x i64], i64, [0 x i64], void (i32, %21*)*, [0 x i64], [2 x i64], [0 x i64] } +%20 = type { [0 x i64], ptr, [0 x i64], ptr, [0 x i64], ptr, [0 x i64] } +%21 = type { [0 x i64], i64, [0 x i64], ptr, [0 x i64], [2 x i64], [0 x i64] } %22 = type { [0 x i8] } -@var = external dso_local unnamed_addr constant <{ i8*, [8 x i8], i8*, [16 x i8] }>, align 8 +@var = external dso_local unnamed_addr constant <{ ptr, [8 x i8], ptr, [16 x i8] }>, align 8 -declare dso_local fastcc { i64*, i8* } @test2(%0**) unnamed_addr +declare dso_local fastcc { ptr, ptr } @test2(ptr) unnamed_addr -define void @test(%6* %arg, %7* %arg1, %12* %arg2) unnamed_addr personality i32 (i32, i32, i64, %21*, %22*)* @personality { +define void @test(ptr %arg, ptr %arg1, ptr %arg2) unnamed_addr personality ptr @personality { ; CHECK-LABEL: test: ; CHECK: .cfi_personality 148, DW.ref.personality ; CHECK-NEXT: .cfi_lsda 20, .Lexception0 @@ -85,31 +85,31 @@ br label %bb12 bb9: ; preds = %bb3 - %tmp = call i8 @test5(%14* noalias nonnull readonly align 8 dereferenceable(64) undef), !range !0 + %tmp = call i8 @test5(ptr noalias nonnull readonly align 8 dereferenceable(64) undef), !range !0 %tmp10 = zext i8 %tmp to i24 %tmp11 = shl nuw nsw i24 %tmp10, 8 br label %bb12 bb12: ; preds = %bb9, %bb8, %bb7, %bb6, %bb5, %bb3 %tmp13 = phi i24 [ 1024, %bb8 ], [ 768, %bb7 ], [ 512, %bb6 ], [ 256, %bb5 ], [ %tmp11, %bb9 ], [ 0, %bb3 ] - %tmp14 = call fastcc align 8 dereferenceable(288) %16* @test3(%20* noalias nonnull readonly align 8 dereferenceable(24) undef, i24 %tmp13) + %tmp14 = call fastcc align 8 dereferenceable(288) ptr @test3(ptr noalias nonnull readonly align 8 dereferenceable(24) undef, i24 %tmp13) br label %bb22 bb15: ; No predecessors! - %tmp16 = invoke fastcc { i64*, i8* } @test2(%0** nonnull align 8 dereferenceable(8) undef) + %tmp16 = invoke fastcc { ptr, ptr } @test2(ptr nonnull align 8 dereferenceable(8) undef) to label %bb17 unwind label %bb18 bb17: ; preds = %bb15 - invoke void @test4({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast (<{ i8*, [8 x i8], i8*, [16 x i8] }>* @var to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)) + invoke void @test4(ptr noalias readonly align 8 dereferenceable(40) @var) to label %bb23 unwind label %bb25 bb18: ; preds = %bb15 - %tmp19 = landingpad { i8*, i32 } + %tmp19 = landingpad { ptr, i32 } cleanup - resume { i8*, i32 } undef + resume { ptr, i32 } undef bb20: ; No predecessors! - invoke void @test4({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast (<{ i8*, [8 x i8], i8*, [16 x i8] }>* @var to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)) + invoke void @test4(ptr noalias readonly align 8 dereferenceable(40) @var) to label %bb24 unwind label %bb25 bb21: ; preds = %bb @@ -125,17 +125,17 @@ unreachable bb25: ; preds = %bb20, %bb17 - %tmp26 = landingpad { i8*, i32 } + %tmp26 = landingpad { ptr, i32 } cleanup - resume { i8*, i32 } undef + resume { ptr, i32 } undef } -declare dso_local fastcc %16* @test3(%20*, i24) unnamed_addr +declare dso_local fastcc ptr @test3(ptr, i24) unnamed_addr -declare i32 @personality(i32, i32, i64, %21*, %22*) unnamed_addr +declare i32 @personality(i32, i32, i64, ptr, ptr) unnamed_addr -declare void @test4({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*) unnamed_addr +declare void @test4(ptr) unnamed_addr -declare i8 @test5(%14*) unnamed_addr +declare i8 @test5(ptr) unnamed_addr !0 = !{i8 0, i8 5} Index: llvm/test/CodeGen/PowerPC/pr41177.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr41177.ll +++ llvm/test/CodeGen/PowerPC/pr41177.ll @@ -2,11 +2,11 @@ ; REQUIRES: asserts define protected swiftcc void @"$s22LanguageServerProtocol13HoverResponseV8contents5rangeAcA13MarkupContentV_SnyAA8PositionVGSgtcfC"() { - %1 = load <2 x i64>, <2 x i64>* undef, align 16 - %2 = load i1, i1* undef, align 8 + %1 = load <2 x i64>, ptr undef, align 16 + %2 = load i1, ptr undef, align 8 %3 = insertelement <2 x i1> undef, i1 %2, i32 0 %4 = shufflevector <2 x i1> %3, <2 x i1> undef, <2 x i32> zeroinitializer %5 = select <2 x i1> %4, <2 x i64> zeroinitializer, <2 x i64> %1 - store <2 x i64> %5, <2 x i64>* undef, align 8 + store <2 x i64> %5, ptr undef, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/pr42492.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr42492.ll +++ llvm/test/CodeGen/PowerPC/pr42492.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr9 < %s | FileCheck %s -define void @f(i8*, i8*, i64*) { +define void @f(ptr, ptr, ptr) { ; Check we don't assert and this is not a Hardware Loop ; CHECK-LABEL: f: ; CHECK: # %bb.0: @@ -24,16 +24,16 @@ ; CHECK-NEXT: std 3, 8(5) ; CHECK-NEXT: blr - %4 = icmp eq i8* %0, %1 + %4 = icmp eq ptr %0, %1 br i1 %4, label %9, label %5 5: ; preds = %3 - %6 = getelementptr inbounds i64, i64* %2, i64 1 - %7 = load i64, i64* %6, align 8 + %6 = getelementptr inbounds i64, ptr %2, i64 1 + %7 = load i64, ptr %6, align 8 br label %10 8: ; preds = %10 - store i64 %14, i64* %6, align 8 + store i64 %14, ptr %6, align 8 br label %9 9: ; preds = %8, %3 @@ -42,12 +42,12 @@ 10: ; preds = %5, %10 %11 = phi i64 [ %7, %5 ], [ %14, %10 ] %12 = phi i32 [ 0, %5 ], [ %15, %10 ] - %13 = phi i8* [ %0, %5 ], [ %16, %10 ] + %13 = phi ptr [ %0, %5 ], [ %16, %10 ] %14 = shl nsw i64 %11, 4 %15 = add nuw nsw i32 %12, 1 - %16 = getelementptr inbounds i8, i8* %13, i64 1 + %16 = getelementptr inbounds i8, ptr %13, i64 1 %17 = icmp ugt i32 %12, 14 - %18 = icmp eq i8* %16, %1 + %18 = icmp eq ptr %16, %1 %19 = or i1 %18, %17 br i1 %19, label %8, label %10 } Index: llvm/test/CodeGen/PowerPC/pr43527.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr43527.ll +++ llvm/test/CodeGen/PowerPC/pr43527.ll @@ -54,12 +54,12 @@ bb5: ; preds = %bb5, %bb4 %tmp6 = phi i64 [ %tmp12, %bb5 ], [ 0, %bb4 ] - %tmp7 = getelementptr inbounds float, float* null, i64 %tmp6 - %tmp8 = load float, float* %tmp7, align 4 + %tmp7 = getelementptr inbounds float, ptr null, i64 %tmp6 + %tmp8 = load float, ptr %tmp7, align 4 %tmp9 = fpext float %tmp8 to double %tmp10 = tail call i64 @llvm.lrint.i64.f64(double %tmp9) #2 %tmp11 = trunc i64 %tmp10 to i8 - store i8 %tmp11, i8* undef, align 1 + store i8 %tmp11, ptr undef, align 1 %tmp12 = add nuw i64 %tmp6, 1 %tmp13 = icmp eq i64 %tmp12, %tmp br i1 %tmp13, label %bb15, label %bb5 Index: llvm/test/CodeGen/PowerPC/pr43976.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr43976.ll +++ llvm/test/CodeGen/PowerPC/pr43976.ll @@ -45,7 +45,7 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %0 = load double, double* @a, align 8 + %0 = load double, ptr @a, align 8 %conv = fptoui double %0 to i64 %conv1 = sitofp i64 %conv to double %mul = fmul double %conv1, 1.000000e+06 Index: llvm/test/CodeGen/PowerPC/pr44183.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr44183.ll +++ llvm/test/CodeGen/PowerPC/pr44183.ll @@ -6,7 +6,7 @@ %struct.l.0.3.6.9 = type { i8 } %struct.a.1.4.7.10 = type { [27 x i8], [0 x i32], [4 x i8] } -define void @_ZN1m1nEv(%struct.m.2.5.8.11* %this) local_unnamed_addr nounwind align 2 { +define void @_ZN1m1nEv(ptr %this) local_unnamed_addr nounwind align 2 { ; CHECK-LABEL: _ZN1m1nEv: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mflr r0 @@ -37,22 +37,21 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %bc = getelementptr inbounds %struct.m.2.5.8.11, %struct.m.2.5.8.11* %this, i64 0, i32 2 - %0 = bitcast %struct.a.1.4.7.10* %bc to i216* - %bf.load = load i216, i216* %0, align 8 + %bc = getelementptr inbounds %struct.m.2.5.8.11, ptr %this, i64 0, i32 2 + %bf.load = load i216, ptr %bc, align 8 %bf.lshr = lshr i216 %bf.load, 4 %shl.i23 = shl i216 %bf.lshr, 31 %shl.i = trunc i216 %shl.i23 to i32 - %arrayidx = getelementptr inbounds %struct.m.2.5.8.11, %struct.m.2.5.8.11* %this, i64 0, i32 2, i32 1, i64 0 - %1 = load i32, i32* %arrayidx, align 4 - %and.i = and i32 %1, 1 + %arrayidx = getelementptr inbounds %struct.m.2.5.8.11, ptr %this, i64 0, i32 2, i32 1, i64 0 + %0 = load i32, ptr %arrayidx, align 4 + %and.i = and i32 %0, 1 %or.i = or i32 %and.i, %shl.i - tail call void @_ZN1llsE1d(%struct.l.0.3.6.9* undef, i32 %or.i) #1 - %bf.load10 = load i216, i216* %0, align 8 + tail call void @_ZN1llsE1d(ptr undef, i32 %or.i) #1 + %bf.load10 = load i216, ptr %bc, align 8 %bf.lshr11 = lshr i216 %bf.load10, 4 %shl.i1524 = shl i216 %bf.lshr11, 31 %shl.i15 = trunc i216 %shl.i1524 to i32 - tail call void @_ZN1llsE1d(%struct.l.0.3.6.9* undef, i32 %shl.i15) #1 + tail call void @_ZN1llsE1d(ptr undef, i32 %shl.i15) #1 ret void } -declare void @_ZN1llsE1d(%struct.l.0.3.6.9*, i32) local_unnamed_addr #0 +declare void @_ZN1llsE1d(ptr, i32) local_unnamed_addr #0 Index: llvm/test/CodeGen/PowerPC/pr45186.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr45186.ll +++ llvm/test/CodeGen/PowerPC/pr45186.ll @@ -6,47 +6,47 @@ @d = local_unnamed_addr global %struct.anon zeroinitializer, align 8 ; Function Attrs: norecurse nounwind readonly -define i64 @e(i8* nocapture readonly %f) local_unnamed_addr #0 { +define i64 @e(ptr nocapture readonly %f) local_unnamed_addr #0 { ; CHECK-LABEL: e: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: ld r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* %f, align 1 + %0 = load i8, ptr %f, align 1 %conv = zext i8 %0 to i64 %shl = shl nuw i64 %conv, 56 - %arrayidx1 = getelementptr inbounds i8, i8* %f, i64 1 - %1 = load i8, i8* %arrayidx1, align 1 + %arrayidx1 = getelementptr inbounds i8, ptr %f, i64 1 + %1 = load i8, ptr %arrayidx1, align 1 %conv2 = zext i8 %1 to i64 %shl3 = shl nuw nsw i64 %conv2, 48 %or = or i64 %shl3, %shl - %arrayidx4 = getelementptr inbounds i8, i8* %f, i64 2 - %2 = load i8, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %f, i64 2 + %2 = load i8, ptr %arrayidx4, align 1 %conv5 = zext i8 %2 to i64 %shl6 = shl nuw nsw i64 %conv5, 40 %or7 = or i64 %or, %shl6 - %arrayidx8 = getelementptr inbounds i8, i8* %f, i64 3 - %3 = load i8, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %f, i64 3 + %3 = load i8, ptr %arrayidx8, align 1 %conv9 = zext i8 %3 to i64 %shl10 = shl nuw nsw i64 %conv9, 32 %or11 = or i64 %or7, %shl10 - %arrayidx12 = getelementptr inbounds i8, i8* %f, i64 4 - %4 = load i8, i8* %arrayidx12, align 1 + %arrayidx12 = getelementptr inbounds i8, ptr %f, i64 4 + %4 = load i8, ptr %arrayidx12, align 1 %conv13 = zext i8 %4 to i64 %shl14 = shl nuw nsw i64 %conv13, 24 %or15 = or i64 %or11, %shl14 - %arrayidx16 = getelementptr inbounds i8, i8* %f, i64 5 - %5 = load i8, i8* %arrayidx16, align 1 + %arrayidx16 = getelementptr inbounds i8, ptr %f, i64 5 + %5 = load i8, ptr %arrayidx16, align 1 %conv17 = zext i8 %5 to i64 %shl18 = shl nuw nsw i64 %conv17, 16 %or20 = or i64 %or15, %shl18 - %arrayidx21 = getelementptr inbounds i8, i8* %f, i64 6 - %6 = load i8, i8* %arrayidx21, align 1 + %arrayidx21 = getelementptr inbounds i8, ptr %f, i64 6 + %6 = load i8, ptr %arrayidx21, align 1 %conv22 = zext i8 %6 to i64 %shl23 = shl nuw nsw i64 %conv22, 8 %or25 = or i64 %or20, %shl23 - %arrayidx26 = getelementptr inbounds i8, i8* %f, i64 7 - %7 = load i8, i8* %arrayidx26, align 1 + %arrayidx26 = getelementptr inbounds i8, ptr %f, i64 7 + %7 = load i8, ptr %arrayidx26, align 1 %conv27 = zext i8 %7 to i64 %or28 = or i64 %or25, %conv27 ret i64 %or28 @@ -64,68 +64,68 @@ ; CHECK-NEXT: stxvd2x vs0, 0, r4 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* getelementptr inbounds (i8, i8* bitcast (void ()* @g to i8*), i64 8), align 1 + %0 = load i8, ptr getelementptr inbounds (i8, ptr @g, i64 8), align 1 %conv.i = zext i8 %0 to i64 %shl.i = shl nuw i64 %conv.i, 56 - %1 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 9), align 1 + %1 = load i8, ptr getelementptr (i8, ptr @g, i64 9), align 1 %conv2.i = zext i8 %1 to i64 %shl3.i = shl nuw nsw i64 %conv2.i, 48 %or.i = or i64 %shl3.i, %shl.i - %2 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 10), align 1 + %2 = load i8, ptr getelementptr (i8, ptr @g, i64 10), align 1 %conv5.i = zext i8 %2 to i64 %shl6.i = shl nuw nsw i64 %conv5.i, 40 %or7.i = or i64 %or.i, %shl6.i - %3 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 11), align 1 + %3 = load i8, ptr getelementptr (i8, ptr @g, i64 11), align 1 %conv9.i = zext i8 %3 to i64 %shl10.i = shl nuw nsw i64 %conv9.i, 32 %or11.i = or i64 %or7.i, %shl10.i - %4 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 12), align 1 + %4 = load i8, ptr getelementptr (i8, ptr @g, i64 12), align 1 %conv13.i = zext i8 %4 to i64 %shl14.i = shl nuw nsw i64 %conv13.i, 24 %or15.i = or i64 %or11.i, %shl14.i - %5 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 13), align 1 + %5 = load i8, ptr getelementptr (i8, ptr @g, i64 13), align 1 %conv17.i = zext i8 %5 to i64 %shl18.i = shl nuw nsw i64 %conv17.i, 16 %or20.i = or i64 %or15.i, %shl18.i - %6 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 14), align 1 + %6 = load i8, ptr getelementptr (i8, ptr @g, i64 14), align 1 %conv22.i = zext i8 %6 to i64 %shl23.i = shl nuw nsw i64 %conv22.i, 8 %or25.i = or i64 %or20.i, %shl23.i - %7 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 15), align 1 + %7 = load i8, ptr getelementptr (i8, ptr @g, i64 15), align 1 %conv27.i = zext i8 %7 to i64 %or28.i = or i64 %or25.i, %conv27.i - store i64 %or28.i, i64* getelementptr inbounds (%struct.anon, %struct.anon* @d, i64 0, i32 1), align 8 - %8 = load i8, i8* bitcast (void ()* @g to i8*), align 1 + store i64 %or28.i, ptr getelementptr inbounds (%struct.anon, ptr @d, i64 0, i32 1), align 8 + %8 = load i8, ptr @g, align 1 %conv.i2 = zext i8 %8 to i64 %shl.i3 = shl nuw i64 %conv.i2, 56 - %9 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 1), align 1 + %9 = load i8, ptr getelementptr (i8, ptr @g, i64 1), align 1 %conv2.i4 = zext i8 %9 to i64 %shl3.i5 = shl nuw nsw i64 %conv2.i4, 48 %or.i6 = or i64 %shl3.i5, %shl.i3 - %10 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 2), align 1 + %10 = load i8, ptr getelementptr (i8, ptr @g, i64 2), align 1 %conv5.i7 = zext i8 %10 to i64 %shl6.i8 = shl nuw nsw i64 %conv5.i7, 40 %or7.i9 = or i64 %or.i6, %shl6.i8 - %11 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 3), align 1 + %11 = load i8, ptr getelementptr (i8, ptr @g, i64 3), align 1 %conv9.i10 = zext i8 %11 to i64 %shl10.i11 = shl nuw nsw i64 %conv9.i10, 32 %or11.i12 = or i64 %or7.i9, %shl10.i11 - %12 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 4), align 1 + %12 = load i8, ptr getelementptr (i8, ptr @g, i64 4), align 1 %conv13.i13 = zext i8 %12 to i64 %shl14.i14 = shl nuw nsw i64 %conv13.i13, 24 %or15.i15 = or i64 %or11.i12, %shl14.i14 - %13 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 5), align 1 + %13 = load i8, ptr getelementptr (i8, ptr @g, i64 5), align 1 %conv17.i16 = zext i8 %13 to i64 %shl18.i17 = shl nuw nsw i64 %conv17.i16, 16 %or20.i18 = or i64 %or15.i15, %shl18.i17 - %14 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 6), align 1 + %14 = load i8, ptr getelementptr (i8, ptr @g, i64 6), align 1 %conv22.i19 = zext i8 %14 to i64 %shl23.i20 = shl nuw nsw i64 %conv22.i19, 8 %or25.i21 = or i64 %or20.i18, %shl23.i20 - %15 = load i8, i8* getelementptr (i8, i8* bitcast (void ()* @g to i8*), i64 7), align 1 + %15 = load i8, ptr getelementptr (i8, ptr @g, i64 7), align 1 %conv27.i22 = zext i8 %15 to i64 %or28.i23 = or i64 %or25.i21, %conv27.i22 - store i64 %or28.i23, i64* getelementptr inbounds (%struct.anon, %struct.anon* @d, i64 0, i32 0), align 8 + store i64 %or28.i23, ptr @d, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/pr45297.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr45297.ll +++ llvm/test/CodeGen/PowerPC/pr45297.ll @@ -17,6 +17,6 @@ ; CHECK-NEXT: blr entry: %1 = fptosi float %0 to i32 - store i32 %1, i32* @Global, align 4 + store i32 %1, ptr @Global, align 4 ret void } Index: llvm/test/CodeGen/PowerPC/pr45301.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr45301.ll +++ llvm/test/CodeGen/PowerPC/pr45301.ll @@ -3,7 +3,7 @@ ; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s %struct.e.0.1.2.3.12.29 = type { [10 x i32] } -define dso_local void @g(%struct.e.0.1.2.3.12.29* %agg.result) local_unnamed_addr #0 { +define dso_local void @g(ptr %agg.result) local_unnamed_addr #0 { ; CHECK-LABEL: g: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mflr r0 @@ -32,25 +32,25 @@ ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr entry: - %call = tail call signext i32 bitcast (i32 (...)* @i to i32 ()*)() + %call = tail call signext i32 @i() %conv = sext i32 %call to i64 - %0 = inttoptr i64 %conv to i8* - tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 4 dereferenceable(40) %0, i8* nonnull align 4 dereferenceable(40) bitcast (void (%struct.e.0.1.2.3.12.29*)* @g to i8*), i64 40, i1 false) - %1 = inttoptr i64 %conv to i32* - %2 = load i32, i32* %1, align 4 + %0 = inttoptr i64 %conv to ptr + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 dereferenceable(40) %0, ptr nonnull align 4 dereferenceable(40) @g, i64 40, i1 false) + %1 = inttoptr i64 %conv to ptr + %2 = load i32, ptr %1, align 4 %rev.i = tail call i32 @llvm.bswap.i32(i32 %2) - store i32 %rev.i, i32* %1, align 4 - %incdec.ptr.i.4 = getelementptr inbounds i32, i32* %1, i64 5 - %3 = load i32, i32* %incdec.ptr.i.4, align 4 + store i32 %rev.i, ptr %1, align 4 + %incdec.ptr.i.4 = getelementptr inbounds i32, ptr %1, i64 5 + %3 = load i32, ptr %incdec.ptr.i.4, align 4 %rev.i.5 = tail call i32 @llvm.bswap.i32(i32 %3) - store i32 %rev.i.5, i32* %incdec.ptr.i.4, align 4 + store i32 %rev.i.5, ptr %incdec.ptr.i.4, align 4 ret void } declare i32 @i(...) local_unnamed_addr ; Function Attrs: argmemonly nounwind willreturn -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1 ; Function Attrs: nounwind readnone speculatable willreturn declare i32 @llvm.bswap.i32(i32) Index: llvm/test/CodeGen/PowerPC/pr45432.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr45432.ll +++ llvm/test/CodeGen/PowerPC/pr45432.ll @@ -35,10 +35,10 @@ ; CHECK-NEXT: blr ; CHECK-NEXT: .LBB0_2: # %bb5 bb: - %i = load i32, i32* @g, align 4 + %i = load i32, ptr @g, align 4 %i1 = sext i32 %i to i64 - %i2 = getelementptr inbounds [0 x %1], [0 x %1]* bitcast (double* getelementptr inbounds (%0, %0* @f, i64 1, i32 0) to [0 x %1]*), i64 0, i64 %i1, i32 0 - %i3 = load i32, i32* %i2, align 4 + %i2 = getelementptr inbounds [0 x %1], ptr getelementptr inbounds (%0, ptr @f, i64 1, i32 0), i64 0, i64 %i1, i32 0 + %i3 = load i32, ptr %i2, align 4 %i4 = icmp eq i32 %i3, 0 br i1 %i4, label %bb6, label %bb5 Index: llvm/test/CodeGen/PowerPC/pr45448.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr45448.ll +++ llvm/test/CodeGen/PowerPC/pr45448.ll @@ -35,7 +35,7 @@ ; CHECK-NEXT: # %bb.9: # %L917 ; CHECK-NEXT: .LBB0_10: # %L994 top: - %0 = load i64, i64* undef, align 8 + %0 = load i64, ptr undef, align 8 %1 = icmp ne i64 %0, 0 %2 = sext i64 %0 to i128 switch i64 %0, label %pass195 [ Index: llvm/test/CodeGen/PowerPC/pr46759.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr46759.ll +++ llvm/test/CodeGen/PowerPC/pr46759.ll @@ -62,7 +62,7 @@ entry: %0 = zext i32 %vla_size to i64 %vla = alloca i8, i64 %0, align 2048 - %1 = load volatile i8, i8* %vla, align 2048 + %1 = load volatile i8, ptr %vla, align 2048 ret void } Index: llvm/test/CodeGen/PowerPC/pr46923.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr46923.ll +++ llvm/test/CodeGen/PowerPC/pr46923.ll @@ -22,7 +22,7 @@ br label %end end: - %a = phi i1 [ icmp ugt (i64 0, i64 ptrtoint (i64* @bar to i64)), %true ], + %a = phi i1 [ icmp ugt (i64 0, i64 ptrtoint (ptr @bar to i64)), %true ], [ icmp ugt (i64 0, i64 2), %false ] ret i1 %a } Index: llvm/test/CodeGen/PowerPC/pr47707.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr47707.ll +++ llvm/test/CodeGen/PowerPC/pr47707.ll @@ -4,7 +4,7 @@ target datalayout = "e-m:e-i64:64-n32:64" target triple = "powerpc64le-grtev4-linux-gnu" -define void @foo(i64* %p1, i64 %v1, i8 %v2, i64 %v3) { +define void @foo(ptr %p1, i64 %v1, i8 %v2, i64 %v3) { ; CHECK-LABEL: foo: ; CHECK: # %bb.0: ; CHECK-NEXT: mr 7, 5 @@ -22,7 +22,7 @@ ; CHECK-NEXT: # %bb.3: # %bb3 ; CHECK-NEXT: std 6, 0(3) ; CHECK-NEXT: blr - store i64 0, i64* %p1, align 8 + store i64 0, ptr %p1, align 8 %ext = zext i8 %v2 to i64 %shift = shl nuw i64 %v1, 8 %merge = or i64 %shift, %ext @@ -32,14 +32,14 @@ br i1 %cond1, label %bb2, label %bb1 ; be used by this conditional branch bb1: - store i64 %v1, i64* %p1, align 8 + store i64 %v1, ptr %p1, align 8 br label %bb2 bb2: br i1 %not0, label %exit, label %bb3 bb3: - store i64 %v3, i64* %p1, align 8 + store i64 %v3, ptr %p1, align 8 br label %exit exit: Index: llvm/test/CodeGen/PowerPC/pr47891.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr47891.ll +++ llvm/test/CodeGen/PowerPC/pr47891.ll @@ -4,7 +4,7 @@ %struct.poly2 = type { [11 x i64] } ; Function Attrs: nofree norecurse nounwind -define dso_local void @poly2_lshift1(%struct.poly2* nocapture %p) local_unnamed_addr #0 { +define dso_local void @poly2_lshift1(ptr nocapture %p) local_unnamed_addr #0 { ; CHECK-LABEL: poly2_lshift1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: li r4, 72 @@ -62,50 +62,47 @@ ; CHECK-NEXT: stxvd2x vs0, r3, r4 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 0 - %0 = load i64, i64* %arrayidx, align 8 + %0 = load i64, ptr %p, align 8 %shl = shl i64 %0, 1 - store i64 %shl, i64* %arrayidx, align 8 - %arrayidx.1 = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 1 - %1 = load i64, i64* %arrayidx.1, align 8 + store i64 %shl, ptr %p, align 8 + %arrayidx.1 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 1 + %1 = load i64, ptr %arrayidx.1, align 8 %or.1 = call i64 @llvm.fshl.i64(i64 %1, i64 %0, i64 1) - store i64 %or.1, i64* %arrayidx.1, align 8 - %arrayidx.2 = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 2 - %2 = load i64, i64* %arrayidx.2, align 8 + store i64 %or.1, ptr %arrayidx.1, align 8 + %arrayidx.2 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 2 + %2 = load i64, ptr %arrayidx.2, align 8 %or.2 = call i64 @llvm.fshl.i64(i64 %2, i64 %1, i64 1) - store i64 %or.2, i64* %arrayidx.2, align 8 - %arrayidx.3 = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 3 - %3 = load i64, i64* %arrayidx.3, align 8 + store i64 %or.2, ptr %arrayidx.2, align 8 + %arrayidx.3 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 3 + %3 = load i64, ptr %arrayidx.3, align 8 %or.3 = call i64 @llvm.fshl.i64(i64 %3, i64 %2, i64 1) - store i64 %or.3, i64* %arrayidx.3, align 8 - %arrayidx.4 = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 4 - %4 = load i64, i64* %arrayidx.4, align 8 + store i64 %or.3, ptr %arrayidx.3, align 8 + %arrayidx.4 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 4 + %4 = load i64, ptr %arrayidx.4, align 8 %or.4 = call i64 @llvm.fshl.i64(i64 %4, i64 %3, i64 1) - store i64 %or.4, i64* %arrayidx.4, align 8 - %arrayidx.5 = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 5 - %5 = load i64, i64* %arrayidx.5, align 8 + store i64 %or.4, ptr %arrayidx.4, align 8 + %arrayidx.5 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 5 + %5 = load i64, ptr %arrayidx.5, align 8 %or.5 = call i64 @llvm.fshl.i64(i64 %5, i64 %4, i64 1) - store i64 %or.5, i64* %arrayidx.5, align 8 - %arrayidx.6 = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 6 - %6 = load i64, i64* %arrayidx.6, align 8 + store i64 %or.5, ptr %arrayidx.5, align 8 + %arrayidx.6 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 6 + %6 = load i64, ptr %arrayidx.6, align 8 %or.6 = call i64 @llvm.fshl.i64(i64 %6, i64 %5, i64 1) - store i64 %or.6, i64* %arrayidx.6, align 8 - %arrayidx.7 = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 7 - %7 = load i64, i64* %arrayidx.7, align 8 + store i64 %or.6, ptr %arrayidx.6, align 8 + %arrayidx.7 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 7 + %7 = load i64, ptr %arrayidx.7, align 8 %or.7 = call i64 @llvm.fshl.i64(i64 %7, i64 %6, i64 1) - store i64 %or.7, i64* %arrayidx.7, align 8 - %arrayidx.8 = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 8 - %8 = load i64, i64* %arrayidx.8, align 8 + store i64 %or.7, ptr %arrayidx.7, align 8 + %arrayidx.8 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 8 + %8 = load i64, ptr %arrayidx.8, align 8 %or.8 = call i64 @llvm.fshl.i64(i64 %8, i64 %7, i64 1) - store i64 %or.8, i64* %arrayidx.8, align 8 - %arrayidx.9 = getelementptr inbounds %struct.poly2, %struct.poly2* %p, i64 0, i32 0, i64 9 - %9 = bitcast i64* %arrayidx.9 to <2 x i64>* - %10 = load <2 x i64>, <2 x i64>* %9, align 8 - %11 = insertelement <2 x i64> undef, i64 %8, i32 0 - %12 = shufflevector <2 x i64> %11, <2 x i64> %10, <2 x i32> - %13 = call <2 x i64> @llvm.fshl.v2i64(<2 x i64> %10, <2 x i64> %12, <2 x i64> ) - %14 = bitcast i64* %arrayidx.9 to <2 x i64>* - store <2 x i64> %13, <2 x i64>* %14, align 8 + store i64 %or.8, ptr %arrayidx.8, align 8 + %arrayidx.9 = getelementptr inbounds %struct.poly2, ptr %p, i64 0, i32 0, i64 9 + %9 = load <2 x i64>, ptr %arrayidx.9, align 8 + %10 = insertelement <2 x i64> undef, i64 %8, i32 0 + %11 = shufflevector <2 x i64> %10, <2 x i64> %9, <2 x i32> + %12 = call <2 x i64> @llvm.fshl.v2i64(<2 x i64> %9, <2 x i64> %11, <2 x i64> ) + store <2 x i64> %12, ptr %arrayidx.9, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/pr47916.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr47916.ll +++ llvm/test/CodeGen/PowerPC/pr47916.ll @@ -14,8 +14,8 @@ ; CHECK-NEXT: stxvd2x vs0, 0, r3 ; CHECK-NEXT: blr entry: - %wide.load42 = load <2 x i32>, <2 x i32>* undef, align 4 + %wide.load42 = load <2 x i32>, ptr undef, align 4 %interleaved.vec49 = shufflevector <2 x i32> %wide.load42, <2 x i32> undef, <4 x i32> - store <4 x i32> %interleaved.vec49, <4 x i32>* undef, align 4 + store <4 x i32> %interleaved.vec49, ptr undef, align 4 ret void } Index: llvm/test/CodeGen/PowerPC/pr48519.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr48519.ll +++ llvm/test/CodeGen/PowerPC/pr48519.ll @@ -56,7 +56,7 @@ ; CHECK-P9-NEXT: xscvdphp f0, f0 ; CHECK-P9-NEXT: stxsihx f0, 0, r3 bb: - %i = load i64, i64 addrspace(11)* null, align 8 + %i = load i64, ptr addrspace(11) null, align 8 %i1 = call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %i, i64 0) %i2 = extractvalue { i64, i1 } %i1, 0 br label %bb3 @@ -67,7 +67,7 @@ %i6 = add nsw i64 %i5, -1 %i7 = add i64 %i6, 0 %i8 = sitofp i64 %i7 to half - store half %i8, half addrspace(13)* undef, align 2 + store half %i8, ptr addrspace(13) undef, align 2 %i9 = icmp eq i64 %i4, 0 %i10 = add i64 %i4, 1 br i1 %i9, label %bb11, label %bb3 @@ -133,7 +133,7 @@ bb3: ; preds = %bb1 %i4 = add nuw nsw i64 %i, 1 - %i5 = load half, half* null, align 2 + %i5 = load half, ptr null, align 2 %i6 = fpext half %i5 to float %i7 = fcmp uno float %i6, 0.000000e+00 %i8 = or i1 %i7, false @@ -213,8 +213,8 @@ ; CHECK-P9-NEXT: b .LBB2_1 ; CHECK-P9-NEXT: .LBB2_5: # %bb15 bb: - %i = load i64, i64 addrspace(11)* undef, align 8 - %i1 = load i64, i64 addrspace(11)* undef, align 8 + %i = load i64, ptr addrspace(11) undef, align 8 + %i1 = load i64, ptr addrspace(11) undef, align 8 br label %bb2 bb2: ; preds = %bb12, %bb @@ -228,12 +228,12 @@ ] bb5: ; preds = %bb4, %bb4 - %i6 = load half, half addrspace(13)* undef, align 2 + %i6 = load half, ptr addrspace(13) undef, align 2 %i7 = icmp ult i64 0, %i1 br i1 %i7, label %bb8, label %bb15 bb8: ; preds = %bb5 - store half %i6, half addrspace(13)* null, align 2 + store half %i6, ptr addrspace(13) null, align 2 br label %bb10 bb9: ; preds = %bb4 @@ -298,8 +298,8 @@ bb1: ; preds = %bb1, %bb %i = phi i64 [ 0, %bb ], [ %i3, %bb1 ] - %i2 = getelementptr inbounds half, half addrspace(13)* null, i64 %i - store half %arg, half addrspace(13)* %i2, align 2 + %i2 = getelementptr inbounds half, ptr addrspace(13) null, i64 %i + store half %arg, ptr addrspace(13) %i2, align 2 %i3 = add i64 %i, 12 %i4 = icmp eq i64 %i3, 0 br i1 %i4, label %bb5, label %bb1 Index: llvm/test/CodeGen/PowerPC/pr48527.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr48527.ll +++ llvm/test/CodeGen/PowerPC/pr48527.ll @@ -46,7 +46,7 @@ ; CHECK-NEXT: mtlr 0 ; CHECK-NEXT: blr entry: - %0 = load i32, i32* undef, align 4 + %0 = load i32, ptr undef, align 4 br label %monotonic.i for.cond.i: ; preds = %monotonic.i @@ -55,15 +55,15 @@ monotonic.i: ; preds = %for.cond.i, %entry %i.018.i = phi i32 [ %inc.i, %for.cond.i ], [ 0, %entry ] - %1 = load atomic i32, i32* getelementptr inbounds (%struct.e.0.12.28.44.104.108.112.188, %struct.e.0.12.28.44.104.108.112.188* @g, i64 0, i32 0) monotonic, align 4 + %1 = load atomic i32, ptr @g monotonic, align 4 %conv.i = trunc i32 %1 to i8 %tobool.not.i = icmp eq i8 %conv.i, 0 %inc.i = add nuw nsw i32 %i.018.i, 1 br i1 %tobool.not.i, label %for.cond.i, label %if.end if.end: ; preds = %monotonic.i, %for.cond.i - %.sink = phi i64* [ getelementptr inbounds (%struct.t.1.13.29.45.105.109.113.189, %struct.t.1.13.29.45.105.109.113.189* @aj, i64 0, i32 1), %monotonic.i ], [ getelementptr inbounds (%struct.t.1.13.29.45.105.109.113.189, %struct.t.1.13.29.45.105.109.113.189* @aj, i64 0, i32 0), %for.cond.i ] - store i64 1, i64* %.sink, align 8 + %.sink = phi ptr [ getelementptr inbounds (%struct.t.1.13.29.45.105.109.113.189, ptr @aj, i64 0, i32 1), %monotonic.i ], [ @aj, %for.cond.i ] + store i64 1, ptr %.sink, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/pr49509.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr49509.ll +++ llvm/test/CodeGen/PowerPC/pr49509.ll @@ -56,12 +56,12 @@ bb2: ; preds = %bb %i = select i1 undef, i64 0, i64 72057594037927936 - store i64 %i, i64* undef, align 8 + store i64 %i, ptr undef, align 8 ret void bb1: ; preds = %bb - %i50 = load i8, i8* undef, align 8 - %i52 = load i128, i128* null, align 8 + %i50 = load i8, ptr undef, align 8 + %i52 = load i128, ptr null, align 8 %i62 = icmp eq i8 %i50, 0 br i1 undef, label %bb66, label %bb64 @@ -76,6 +76,6 @@ %i71 = icmp eq i128 %i70, 0 %i74 = select i1 %i62, i64 0, i64 72057594037927936 %i75 = select i1 %i71, i64 144115188075855872, i64 %i74 - store i64 %i75, i64* undef, align 8 + store i64 %i75, ptr undef, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/pr56469.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pr56469.ll +++ llvm/test/CodeGen/PowerPC/pr56469.ll @@ -26,9 +26,9 @@ %conv1 = fpext float %j to double %conv2 = fpext float %k to double %conv3 = fpext float %l to double - %call = tail call signext i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i64 0, i64 0), double %conv, double %conv1, double %conv2, double %conv3) + %call = tail call signext i32 (ptr, ...) @printf(ptr nonnull dereferenceable(1) @.str, double %conv, double %conv1, double %conv2, double %conv3) ret void } -declare signext i32 @printf(i8* nocapture readonly, ...) +declare signext i32 @printf(ptr nocapture readonly, ...) Index: llvm/test/CodeGen/PowerPC/pre-inc-disable.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pre-inc-disable.ll +++ llvm/test/CodeGen/PowerPC/pre-inc-disable.ll @@ -15,7 +15,7 @@ ; RUN: -mtriple=powerpc-ibm-aix-xcoff -vec-extabi \ ; RUN: < %s | FileCheck %s --check-prefixes=P9BE-AIX32 -define void @test64(i8* nocapture readonly %pix2, i32 signext %i_pix2) { +define void @test64(ptr nocapture readonly %pix2, i32 signext %i_pix2) { ; P9LE-LABEL: test64: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: add 5, 3, 4 @@ -113,29 +113,27 @@ ; P9BE-AIX32-NEXT: blr entry: %idx.ext63 = sext i32 %i_pix2 to i64 - %add.ptr64 = getelementptr inbounds i8, i8* %pix2, i64 %idx.ext63 - %arrayidx5.1 = getelementptr inbounds i8, i8* %add.ptr64, i64 4 - %0 = bitcast i8* %add.ptr64 to <4 x i16>* - %1 = load <4 x i16>, <4 x i16>* %0, align 1 - %reorder_shuffle117 = shufflevector <4 x i16> %1, <4 x i16> undef, <4 x i32> - %2 = zext <4 x i16> %reorder_shuffle117 to <4 x i32> - %3 = sub nsw <4 x i32> zeroinitializer, %2 - %4 = bitcast i8* %arrayidx5.1 to <4 x i16>* - %5 = load <4 x i16>, <4 x i16>* %4, align 1 - %reorder_shuffle115 = shufflevector <4 x i16> %5, <4 x i16> undef, <4 x i32> - %6 = zext <4 x i16> %reorder_shuffle115 to <4 x i32> - %7 = sub nsw <4 x i32> zeroinitializer, %6 - %8 = shl nsw <4 x i32> %7, - %9 = add nsw <4 x i32> %8, %3 - %10 = sub nsw <4 x i32> %9, zeroinitializer - %11 = shufflevector <4 x i32> undef, <4 x i32> %10, <4 x i32> - %12 = add nsw <4 x i32> zeroinitializer, %11 - %13 = shufflevector <4 x i32> %12, <4 x i32> undef, <4 x i32> - store <4 x i32> %13, <4 x i32>* undef, align 16 + %add.ptr64 = getelementptr inbounds i8, ptr %pix2, i64 %idx.ext63 + %arrayidx5.1 = getelementptr inbounds i8, ptr %add.ptr64, i64 4 + %0 = load <4 x i16>, ptr %add.ptr64, align 1 + %reorder_shuffle117 = shufflevector <4 x i16> %0, <4 x i16> undef, <4 x i32> + %1 = zext <4 x i16> %reorder_shuffle117 to <4 x i32> + %2 = sub nsw <4 x i32> zeroinitializer, %1 + %3 = load <4 x i16>, ptr %arrayidx5.1, align 1 + %reorder_shuffle115 = shufflevector <4 x i16> %3, <4 x i16> undef, <4 x i32> + %4 = zext <4 x i16> %reorder_shuffle115 to <4 x i32> + %5 = sub nsw <4 x i32> zeroinitializer, %4 + %6 = shl nsw <4 x i32> %5, + %7 = add nsw <4 x i32> %6, %2 + %8 = sub nsw <4 x i32> %7, zeroinitializer + %9 = shufflevector <4 x i32> undef, <4 x i32> %8, <4 x i32> + %10 = add nsw <4 x i32> zeroinitializer, %9 + %11 = shufflevector <4 x i32> %10, <4 x i32> undef, <4 x i32> + store <4 x i32> %11, ptr undef, align 16 ret void } -define void @test32(i8* nocapture readonly %pix2, i32 signext %i_pix2) { +define void @test32(ptr nocapture readonly %pix2, i32 signext %i_pix2) { ; P9LE-LABEL: test32: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: add 5, 3, 4 @@ -219,29 +217,27 @@ ; P9BE-AIX32-NEXT: blr entry: %idx.ext63 = sext i32 %i_pix2 to i64 - %add.ptr64 = getelementptr inbounds i8, i8* %pix2, i64 %idx.ext63 - %arrayidx5.1 = getelementptr inbounds i8, i8* %add.ptr64, i64 4 - %0 = bitcast i8* %add.ptr64 to <4 x i8>* - %1 = load <4 x i8>, <4 x i8>* %0, align 1 - %reorder_shuffle117 = shufflevector <4 x i8> %1, <4 x i8> undef, <4 x i32> - %2 = zext <4 x i8> %reorder_shuffle117 to <4 x i32> - %3 = sub nsw <4 x i32> zeroinitializer, %2 - %4 = bitcast i8* %arrayidx5.1 to <4 x i8>* - %5 = load <4 x i8>, <4 x i8>* %4, align 1 - %reorder_shuffle115 = shufflevector <4 x i8> %5, <4 x i8> undef, <4 x i32> - %6 = zext <4 x i8> %reorder_shuffle115 to <4 x i32> - %7 = sub nsw <4 x i32> zeroinitializer, %6 - %8 = shl nsw <4 x i32> %7, - %9 = add nsw <4 x i32> %8, %3 - %10 = sub nsw <4 x i32> %9, zeroinitializer - %11 = shufflevector <4 x i32> undef, <4 x i32> %10, <4 x i32> - %12 = add nsw <4 x i32> zeroinitializer, %11 - %13 = shufflevector <4 x i32> %12, <4 x i32> undef, <4 x i32> - store <4 x i32> %13, <4 x i32>* undef, align 16 + %add.ptr64 = getelementptr inbounds i8, ptr %pix2, i64 %idx.ext63 + %arrayidx5.1 = getelementptr inbounds i8, ptr %add.ptr64, i64 4 + %0 = load <4 x i8>, ptr %add.ptr64, align 1 + %reorder_shuffle117 = shufflevector <4 x i8> %0, <4 x i8> undef, <4 x i32> + %1 = zext <4 x i8> %reorder_shuffle117 to <4 x i32> + %2 = sub nsw <4 x i32> zeroinitializer, %1 + %3 = load <4 x i8>, ptr %arrayidx5.1, align 1 + %reorder_shuffle115 = shufflevector <4 x i8> %3, <4 x i8> undef, <4 x i32> + %4 = zext <4 x i8> %reorder_shuffle115 to <4 x i32> + %5 = sub nsw <4 x i32> zeroinitializer, %4 + %6 = shl nsw <4 x i32> %5, + %7 = add nsw <4 x i32> %6, %2 + %8 = sub nsw <4 x i32> %7, zeroinitializer + %9 = shufflevector <4 x i32> undef, <4 x i32> %8, <4 x i32> + %10 = add nsw <4 x i32> zeroinitializer, %9 + %11 = shufflevector <4 x i32> %10, <4 x i32> undef, <4 x i32> + store <4 x i32> %11, ptr undef, align 16 ret void } -define void @test16(i16* nocapture readonly %sums, i32 signext %delta, i32 signext %thresh) { +define void @test16(ptr nocapture readonly %sums, i32 signext %delta, i32 signext %thresh) { ; P9LE-LABEL: test16: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: sldi 4, 4, 1 @@ -354,10 +350,10 @@ br label %for.body for.body: ; preds = %entry - %arrayidx8 = getelementptr inbounds i16, i16* %sums, i64 %idxprom - %0 = load i16, i16* %arrayidx8, align 2 - %arrayidx16 = getelementptr inbounds i16, i16* %sums, i64 %idxprom15 - %1 = load i16, i16* %arrayidx16, align 2 + %arrayidx8 = getelementptr inbounds i16, ptr %sums, i64 %idxprom + %0 = load i16, ptr %arrayidx8, align 2 + %arrayidx16 = getelementptr inbounds i16, ptr %sums, i64 %idxprom15 + %1 = load i16, ptr %arrayidx16, align 2 %2 = insertelement <4 x i16> undef, i16 %0, i32 2 %3 = insertelement <4 x i16> %2, i16 %1, i32 3 %4 = zext <4 x i16> %3 to <4 x i32> @@ -379,7 +375,7 @@ ret void } -define void @test8(i8* nocapture readonly %sums, i32 signext %delta, i32 signext %thresh) { +define void @test8(ptr nocapture readonly %sums, i32 signext %delta, i32 signext %thresh) { ; P9LE-LABEL: test8: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: add 6, 3, 4 @@ -496,10 +492,10 @@ br label %for.body for.body: ; preds = %entry - %arrayidx8 = getelementptr inbounds i8, i8* %sums, i64 %idxprom - %0 = load i8, i8* %arrayidx8, align 2 - %arrayidx16 = getelementptr inbounds i8, i8* %sums, i64 %idxprom15 - %1 = load i8, i8* %arrayidx16, align 2 + %arrayidx8 = getelementptr inbounds i8, ptr %sums, i64 %idxprom + %0 = load i8, ptr %arrayidx8, align 2 + %arrayidx16 = getelementptr inbounds i8, ptr %sums, i64 %idxprom15 + %1 = load i8, ptr %arrayidx16, align 2 %2 = insertelement <4 x i8> undef, i8 %0, i32 2 %3 = insertelement <4 x i8> %2, i8 %1, i32 3 %4 = zext <4 x i8> %3 to <4 x i32> Index: llvm/test/CodeGen/PowerPC/preinc-ld-sel-crash.ll =================================================================== --- llvm/test/CodeGen/PowerPC/preinc-ld-sel-crash.ll +++ llvm/test/CodeGen/PowerPC/preinc-ld-sel-crash.ll @@ -2,9 +2,9 @@ target datalayout = "E-m:e-i64:64-n32:64" target triple = "powerpc64le-unknown-linux" -%t1 = type { %t2*, %t3* } -%t2 = type <{ %t3*, i32, [4 x i8] }> -%t3 = type { %t3* } +%t1 = type { ptr, ptr } +%t2 = type <{ ptr, i32, [4 x i8] }> +%t3 = type { ptr } @_ZN4Foam10SLListBase13endConstIter_E = external global %t1 @@ -36,12 +36,12 @@ if.then17.i: ; preds = %if.end75 %tobool.i.i.i = icmp eq i32 undef, 0 - %0 = load i64*, i64** undef, align 8 - %agg.tmp.sroa.3.0.copyload33.in.i = select i1 %tobool.i.i.i, i64* bitcast (%t3** getelementptr inbounds (%t1, %t1* @_ZN4Foam10SLListBase13endConstIter_E, i64 0, i32 1) to i64*), i64* %0 - %agg.tmp.sroa.3.0.copyload33.i = load i64, i64* %agg.tmp.sroa.3.0.copyload33.in.i, align 8 - %1 = inttoptr i64 %agg.tmp.sroa.3.0.copyload33.i to %t3* - %2 = load %t3*, %t3** getelementptr inbounds (%t1, %t1* @_ZN4Foam10SLListBase13endConstIter_E, i64 0, i32 1), align 8 - %cmp.i37.i = icmp eq %t3* %1, %2 + %0 = load ptr, ptr undef, align 8 + %agg.tmp.sroa.3.0.copyload33.in.i = select i1 %tobool.i.i.i, ptr getelementptr inbounds (%t1, ptr @_ZN4Foam10SLListBase13endConstIter_E, i64 0, i32 1), ptr %0 + %agg.tmp.sroa.3.0.copyload33.i = load i64, ptr %agg.tmp.sroa.3.0.copyload33.in.i, align 8 + %1 = inttoptr i64 %agg.tmp.sroa.3.0.copyload33.i to ptr + %2 = load ptr, ptr getelementptr inbounds (%t1, ptr @_ZN4Foam10SLListBase13endConstIter_E, i64 0, i32 1), align 8 + %cmp.i37.i = icmp eq ptr %1, %2 br i1 %cmp.i37.i, label %invoke.cont79, label %for.body.lr.ph.i ; CHECK-LABEL: @_ZN4FoamrsIbEERNS_7IstreamES2_RNS_4ListIT_EE Index: llvm/test/CodeGen/PowerPC/preincprep-invoke.ll =================================================================== --- llvm/test/CodeGen/PowerPC/preincprep-invoke.ll +++ llvm/test/CodeGen/PowerPC/preincprep-invoke.ll @@ -11,7 +11,7 @@ declare i32 @__gxx_personality_v0(...) -define void @_Z11GetPasswordP13CStdOutStreamb(i1 %cond, i8 %arg1, i8* %arg2) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { +define void @_Z11GetPasswordP13CStdOutStreamb(i1 %cond, i8 %arg1, ptr %arg2) personality ptr @__gxx_personality_v0 { entry: br label %for.cond.i.i @@ -27,7 +27,7 @@ to label %invoke.cont4 unwind label %lpad invoke.cont4: ; preds = %invoke.cont - %call7 = invoke i8* @getpass() + %call7 = invoke ptr @getpass() to label %for.cond.i.i30 unwind label %lpad ; CHECK-LABEL: @_Z11GetPasswordP13CStdOutStreamb @@ -35,18 +35,18 @@ for.cond.i.i30: ; preds = %for.cond.i.i30, %invoke.cont4 %indvars.iv.i.i26 = phi i64 [ %indvars.iv.next.i.i29, %for.cond.i.i30 ], [ 0, %invoke.cont4 ] - %arrayidx.i.i27 = getelementptr inbounds i8, i8* %call7, i64 %indvars.iv.i.i26 - %0 = load i8, i8* %arrayidx.i.i27, align 1 + %arrayidx.i.i27 = getelementptr inbounds i8, ptr %call7, i64 %indvars.iv.i.i26 + %0 = load i8, ptr %arrayidx.i.i27, align 1 %1 = add i8 %0, %arg1 - store i8 %1, i8* %arg2, align 1 + store i8 %1, ptr %arg2, align 1 %indvars.iv.next.i.i29 = add nuw nsw i64 %indvars.iv.i.i26, 1 br label %for.cond.i.i30 lpad: ; preds = %invoke.cont4, %invoke.cont, %_ZN11CStringBaseIcEC2EPKc.exit.critedge - %2 = landingpad { i8*, i32 } + %2 = landingpad { ptr, i32 } cleanup - resume { i8*, i32 } undef + resume { ptr, i32 } undef } -declare i8* @getpass() +declare ptr @getpass() Index: llvm/test/CodeGen/PowerPC/private.ll =================================================================== --- llvm/test/CodeGen/PowerPC/private.ll +++ llvm/test/CodeGen/PowerPC/private.ll @@ -12,7 +12,7 @@ call void @foo() ; CHECK: lis{{.*}}.Lbaz - %1 = load i32, i32* @baz, align 4 + %1 = load i32, ptr @baz, align 4 ret i32 %1 } Index: llvm/test/CodeGen/PowerPC/pwr7-gt-nop.ll =================================================================== --- llvm/test/CodeGen/PowerPC/pwr7-gt-nop.ll +++ llvm/test/CodeGen/PowerPC/pwr7-gt-nop.ll @@ -3,17 +3,17 @@ target triple = "powerpc64-unknown-linux-gnu" ; Function Attrs: nounwind -define void @foo(float* nocapture %a, float* nocapture %b, float* nocapture readonly %c, float* nocapture %d) #0 { +define void @foo(ptr nocapture %a, ptr nocapture %b, ptr nocapture readonly %c, ptr nocapture %d) #0 { ; CHECK-LABEL: @foo entry: - %0 = load float, float* %b, align 4 - store float %0, float* %a, align 4 - %1 = load float, float* %c, align 4 - store float %1, float* %b, align 4 - %2 = load float, float* %a, align 4 - store float %2, float* %d, align 4 + %0 = load float, ptr %b, align 4 + store float %0, ptr %a, align 4 + %1 = load float, ptr %c, align 4 + store float %1, ptr %b, align 4 + %2 = load float, ptr %a, align 4 + store float %2, ptr %d, align 4 ret void ; CHECK: lwz [[REG1:[0-9]+]], 0(4) Index: llvm/test/CodeGen/PowerPC/quadint-return.ll =================================================================== --- llvm/test/CodeGen/PowerPC/quadint-return.ll +++ llvm/test/CodeGen/PowerPC/quadint-return.ll @@ -7,8 +7,8 @@ define i128 @foo() nounwind { entry: %x = alloca i128, align 16 - store i128 27, i128* %x, align 16 - %0 = load i128, i128* %x, align 16 + store i128 27, ptr %x, align 16 + %0 = load i128, ptr %x, align 16 ret i128 %0 } Index: llvm/test/CodeGen/PowerPC/read-set-flm.ll =================================================================== --- llvm/test/CodeGen/PowerPC/read-set-flm.ll +++ llvm/test/CodeGen/PowerPC/read-set-flm.ll @@ -74,7 +74,7 @@ ret double %7 } -define void @cse_nomerge(double* %f1, double* %f2, double %f3) #0 { +define void @cse_nomerge(ptr %f1, ptr %f2, double %f3) #0 { ; CHECK-LABEL: cse_nomerge: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mflr 0 @@ -103,15 +103,15 @@ ; CHECK-NEXT: blr entry: %0 = call double @llvm.ppc.readflm() - store double %0, double* %f1, align 8 + store double %0, ptr %f1, align 8 call void @effect_func() %1 = call double @llvm.ppc.readflm() - store double %1, double* %f2, align 8 + store double %1, ptr %f2, align 8 %2 = call contract double @llvm.ppc.setflm(double %f3) ret void } -define void @cse_nomerge_readonly(double* %f1, double* %f2, double %f3) #0 { +define void @cse_nomerge_readonly(ptr %f1, ptr %f2, double %f3) #0 { ; CHECK-LABEL: cse_nomerge_readonly: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mflr 0 @@ -140,10 +140,10 @@ ; CHECK-NEXT: blr entry: %0 = call double @llvm.ppc.readflm() - store double %0, double* %f1, align 8 + store double %0, ptr %f1, align 8 call void @readonly_func() %1 = call double @llvm.ppc.readflm() - store double %1, double* %f2, align 8 + store double %1, ptr %f2, align 8 %2 = call contract double @llvm.ppc.setflm(double %f3) ret void } Index: llvm/test/CodeGen/PowerPC/reduce_cr.ll =================================================================== --- llvm/test/CodeGen/PowerPC/reduce_cr.ll +++ llvm/test/CodeGen/PowerPC/reduce_cr.ll @@ -22,14 +22,14 @@ ;CHECK-NEXT: - BB4[optional1]: float = 0.625, int = 8 -define void @loop_test(i32* %tags, i32 %count) { +define void @loop_test(ptr %tags, i32 %count) { entry: br label %for.check for.check: %count.loop = phi i32 [%count, %entry], [%count.sub, %for.latch] %done.count = icmp ugt i32 %count.loop, 0 - %tag_ptr = getelementptr inbounds i32, i32* %tags, i32 %count - %tag = load i32, i32* %tag_ptr + %tag_ptr = getelementptr inbounds i32, ptr %tags, i32 %count + %tag = load i32, ptr %tag_ptr %done.tag = icmp eq i32 %tag, 0 %done = and i1 %done.count, %done.tag br i1 %done, label %test1, label %exit, !prof !1 Index: llvm/test/CodeGen/PowerPC/reduce_scalarization.ll =================================================================== --- llvm/test/CodeGen/PowerPC/reduce_scalarization.ll +++ llvm/test/CodeGen/PowerPC/reduce_scalarization.ll @@ -19,7 +19,7 @@ ; RUN: FileCheck %s --check-prefix=AIX-32 ; Function Attrs: norecurse nounwind readonly -define dso_local <2 x double> @test1(<2 x float>* nocapture readonly %Ptr) { +define dso_local <2 x double> @test1(ptr nocapture readonly %Ptr) { ; CHECK-LABEL: test1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 0(r3) @@ -41,13 +41,13 @@ ; AIX-32-NEXT: xxmrghd v2, vs1, vs0 ; AIX-32-NEXT: blr entry: - %0 = load <2 x float>, <2 x float>* %Ptr, align 8 + %0 = load <2 x float>, ptr %Ptr, align 8 %1 = fpext <2 x float> %0 to <2 x double> ret <2 x double> %1 } ; Function Attrs: norecurse nounwind readonly -define dso_local <2 x double> @test2(<2 x float>* nocapture readonly %a, <2 x float>* nocapture readonly %b) { +define dso_local <2 x double> @test2(ptr nocapture readonly %a, ptr nocapture readonly %b) { ; CHECK-LABEL: test2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 0(r4) @@ -82,8 +82,8 @@ ; AIX-32-NEXT: xxmrghd v2, vs0, vs1 ; AIX-32-NEXT: blr entry: - %0 = load <2 x float>, <2 x float>* %a, align 8 - %1 = load <2 x float>, <2 x float>* %b, align 8 + %0 = load <2 x float>, ptr %a, align 8 + %1 = load <2 x float>, ptr %b, align 8 %sub = fsub <2 x float> %0, %1 %2 = fpext <2 x float> %sub to <2 x double> ret <2 x double> %2 @@ -91,7 +91,7 @@ ; Function Attrs: norecurse nounwind readonly ; Function Attrs: norecurse nounwind readonly -define dso_local <2 x double> @test3(<2 x float>* nocapture readonly %a, <2 x float>* nocapture readonly %b) { +define dso_local <2 x double> @test3(ptr nocapture readonly %a, ptr nocapture readonly %b) { ; CHECK-LABEL: test3: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 0(r4) @@ -126,8 +126,8 @@ ; AIX-32-NEXT: xxmrghd v2, vs0, vs1 ; AIX-32-NEXT: blr entry: - %0 = load <2 x float>, <2 x float>* %a, align 8 - %1 = load <2 x float>, <2 x float>* %b, align 8 + %0 = load <2 x float>, ptr %a, align 8 + %1 = load <2 x float>, ptr %b, align 8 %sub = fadd <2 x float> %0, %1 %2 = fpext <2 x float> %sub to <2 x double> ret <2 x double> %2 @@ -135,7 +135,7 @@ ; Function Attrs: norecurse nounwind readonly ; Function Attrs: norecurse nounwind readonly -define dso_local <2 x double> @test4(<2 x float>* nocapture readonly %a, <2 x float>* nocapture readonly %b) { +define dso_local <2 x double> @test4(ptr nocapture readonly %a, ptr nocapture readonly %b) { ; CHECK-LABEL: test4: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 0(r4) @@ -170,8 +170,8 @@ ; AIX-32-NEXT: xxmrghd v2, vs0, vs1 ; AIX-32-NEXT: blr entry: - %0 = load <2 x float>, <2 x float>* %a, align 8 - %1 = load <2 x float>, <2 x float>* %b, align 8 + %0 = load <2 x float>, ptr %a, align 8 + %1 = load <2 x float>, ptr %b, align 8 %sub = fmul <2 x float> %0, %1 %2 = fpext <2 x float> %sub to <2 x double> ret <2 x double> %2 @@ -216,7 +216,7 @@ ; AIX-32-NEXT: xvadddp v2, vs0, v2 ; AIX-32-NEXT: blr entry: - %0 = load <2 x float>, <2 x float>* @G, align 8 + %0 = load <2 x float>, ptr @G, align 8 %1 = fpext <2 x float> %0 to <2 x double> %add = fadd <2 x double> %1, %a ret <2 x double> %add @@ -299,7 +299,7 @@ br label %bb1 bb1: ; preds = %bb - %i = load <2 x float>, <2 x float>* bitcast (i8* getelementptr inbounds ([25 x %0], [25 x %0]* @Glob1, i64 0, i64 6, i32 20, i64 22392) to <2 x float>*), align 8 + %i = load <2 x float>, ptr getelementptr inbounds ([25 x %0], ptr @Glob1, i64 0, i64 6, i32 20, i64 22392), align 8 %i2 = fpext <2 x float> %i to <2 x double> %i3 = fcmp contract oeq <2 x double> zeroinitializer, %i2 %i4 = shufflevector <2 x i1> %i3, <2 x i1> poison, <2 x i32> Index: llvm/test/CodeGen/PowerPC/reduce_scalarization02.ll =================================================================== --- llvm/test/CodeGen/PowerPC/reduce_scalarization02.ll +++ llvm/test/CodeGen/PowerPC/reduce_scalarization02.ll @@ -8,7 +8,7 @@ ; Test reduce scalarization in fpext v2f32 to v2f64 from the extract_subvector v4f32 node. -define dso_local void @test(<4 x float>* nocapture readonly %a, <2 x double>* nocapture %b, <2 x double>* nocapture %c) { +define dso_local void @test(ptr nocapture readonly %a, ptr nocapture %b, ptr nocapture %c) { ; CHECK-LABEL: test: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxv vs0, 0(r3) @@ -31,19 +31,19 @@ ; CHECK-BE-NEXT: stxv vs0, 0(r5) ; CHECK-BE-NEXT: blr entry: - %0 = load <4 x float>, <4 x float>* %a, align 16 + %0 = load <4 x float>, ptr %a, align 16 %shuffle = shufflevector <4 x float> %0, <4 x float> undef, <2 x i32> %shuffle1 = shufflevector <4 x float> %0, <4 x float> undef, <2 x i32> %vecinit4 = fpext <2 x float> %shuffle to <2 x double> %vecinit11 = fpext <2 x float> %shuffle1 to <2 x double> - store <2 x double> %vecinit4, <2 x double>* %b, align 16 - store <2 x double> %vecinit11, <2 x double>* %c, align 16 + store <2 x double> %vecinit4, ptr %b, align 16 + store <2 x double> %vecinit11, ptr %c, align 16 ret void } ; Ensure we don't crash for wider types -define dso_local void @test2(<16 x float>* nocapture readonly %a, <2 x double>* nocapture %b, <2 x double>* nocapture %c) { +define dso_local void @test2(ptr nocapture readonly %a, ptr nocapture %b, ptr nocapture %c) { ; CHECK-LABEL: test2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxv vs0, 0(r3) @@ -66,12 +66,12 @@ ; CHECK-BE-NEXT: stxv vs0, 0(r5) ; CHECK-BE-NEXT: blr entry: - %0 = load <16 x float>, <16 x float>* %a, align 16 + %0 = load <16 x float>, ptr %a, align 16 %shuffle = shufflevector <16 x float> %0, <16 x float> undef, <2 x i32> %shuffle1 = shufflevector <16 x float> %0, <16 x float> undef, <2 x i32> %vecinit4 = fpext <2 x float> %shuffle to <2 x double> %vecinit11 = fpext <2 x float> %shuffle1 to <2 x double> - store <2 x double> %vecinit4, <2 x double>* %b, align 16 - store <2 x double> %vecinit11, <2 x double>* %c, align 16 + store <2 x double> %vecinit4, ptr %b, align 16 + store <2 x double> %vecinit11, ptr %c, align 16 ret void } Index: llvm/test/CodeGen/PowerPC/redundant-copy-after-tail-dup.ll =================================================================== --- llvm/test/CodeGen/PowerPC/redundant-copy-after-tail-dup.ll +++ llvm/test/CodeGen/PowerPC/redundant-copy-after-tail-dup.ll @@ -12,9 +12,9 @@ %"class.G" = type { [2 x i32] } %"class.H" = type { %"struct.A" } %"struct.A" = type { %"struct.B" } -%"struct.B" = type { i32*, i32*, i32* } +%"struct.B" = type { ptr, ptr, ptr } -define dso_local i1 @t(%class.A* %this, i32 %color, i32 %vertex) local_unnamed_addr { +define dso_local i1 @t(ptr %this, i32 %color, i32 %vertex) local_unnamed_addr { ; CHECK-P9-LABEL: t: ; CHECK-P9: # %bb.0: # %entry ; CHECK-P9-NEXT: li r5, 1 @@ -48,8 +48,8 @@ br i1 %or.cond, label %cleanup16, label %for.inc for.inc: ; preds = %lor.lhs.false, %land.lhs.true - %arrayidx.i31.1 = getelementptr inbounds %class.A, %class.A* %this, i64 0, i32 8, i32 0, i64 undef - %0 = load i16, i16* %arrayidx.i31.1, align 2 + %arrayidx.i31.1 = getelementptr inbounds %class.A, ptr %this, i64 0, i32 8, i32 0, i64 undef + %0 = load i16, ptr %arrayidx.i31.1, align 2 %cmp8.1 = icmp ult i16 %0, 2 br i1 %cmp8.1, label %land.lhs.true.1, label %lor.lhs.false.1 Index: llvm/test/CodeGen/PowerPC/reg-coalesce-simple.ll =================================================================== --- llvm/test/CodeGen/PowerPC/reg-coalesce-simple.ll +++ llvm/test/CodeGen/PowerPC/reg-coalesce-simple.ll @@ -2,9 +2,9 @@ %struct.foo = type { i32, i32, [0 x i8] } -define i32 @test(%struct.foo* %X) nounwind { - %tmp1 = getelementptr %struct.foo, %struct.foo* %X, i32 0, i32 2, i32 100 ; [#uses=1] - %tmp = load i8, i8* %tmp1 ; [#uses=1] +define i32 @test(ptr %X) nounwind { + %tmp1 = getelementptr %struct.foo, ptr %X, i32 0, i32 2, i32 100 ; [#uses=1] + %tmp = load i8, ptr %tmp1 ; [#uses=1] %tmp2 = zext i8 %tmp to i32 ; [#uses=1] ret i32 %tmp2 } Index: llvm/test/CodeGen/PowerPC/register-pressure-reduction.ll =================================================================== --- llvm/test/CodeGen/PowerPC/register-pressure-reduction.ll +++ llvm/test/CodeGen/PowerPC/register-pressure-reduction.ll @@ -130,6 +130,6 @@ %7 = fmul contract reassoc nsz float %6, 0x3DB2533FE0000000 %8 = fadd contract reassoc nsz float %7, %5 %9 = fmul contract reassoc nsz float %1, 0xBDB2533FE0000000 - store float %9, float* @global_val, align 4 + store float %9, ptr @global_val, align 4 ret float %8 } Index: llvm/test/CodeGen/PowerPC/reloc-align.ll =================================================================== --- llvm/test/CodeGen/PowerPC/reloc-align.ll +++ llvm/test/CodeGen/PowerPC/reloc-align.ll @@ -15,16 +15,15 @@ ; Function Attrs: nounwind readonly define signext i32 @main() #0 { entry: - %call = tail call fastcc signext i32 @func_90(%struct.S1* byval(%struct.S1) bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8 }* @main.l_1554 to %struct.S1*)) + %call = tail call fastcc signext i32 @func_90(ptr byval(%struct.S1) @main.l_1554) ; CHECK-NOT: ld {{[0-9]+}}, main.l_1554@toc@l ret i32 %call } ; Function Attrs: nounwind readonly -define internal fastcc signext i32 @func_90(%struct.S1* byval(%struct.S1) nocapture %p_91) #0 { +define internal fastcc signext i32 @func_90(ptr byval(%struct.S1) nocapture %p_91) #0 { entry: - %0 = bitcast %struct.S1* %p_91 to i64* - %bf.load = load i64, i64* %0, align 1 + %bf.load = load i64, ptr %p_91, align 1 %bf.shl = shl i64 %bf.load, 26 %bf.ashr = ashr i64 %bf.shl, 54 %bf.cast = trunc i64 %bf.ashr to i32 Index: llvm/test/CodeGen/PowerPC/remat-imm.ll =================================================================== --- llvm/test/CodeGen/PowerPC/remat-imm.ll +++ llvm/test/CodeGen/PowerPC/remat-imm.ll @@ -9,8 +9,8 @@ entry: ; CHECK: li 4, 128 ; CHECK-NOT: mr 4, {{.*}} - %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), i32 128, i32 128) nounwind + %call = tail call i32 (ptr, ...) @printf(ptr @.str, i32 128, i32 128) nounwind ret i32 0 } -declare i32 @printf(i8* nocapture, ...) nounwind +declare i32 @printf(ptr nocapture, ...) nounwind Index: llvm/test/CodeGen/PowerPC/rematerializable-instruction-machine-licm.ll =================================================================== --- llvm/test/CodeGen/PowerPC/rematerializable-instruction-machine-licm.ll +++ llvm/test/CodeGen/PowerPC/rematerializable-instruction-machine-licm.ll @@ -3,7 +3,7 @@ target datalayout = "e-m:e-i64:64-n32:64" target triple = "powerpc64le-unknown-linux-gnu" -define zeroext i32 @test1(i64 %0, i64* %1) { +define zeroext i32 @test1(i64 %0, ptr %1) { ; CHECK-LABEL: test1: ; CHECK: # %bb.0: ; CHECK-NEXT: stdu 1, -720(1) @@ -433,23 +433,23 @@ ; CHECK-NEXT: ld 14, 576(1) # 8-byte Folded Reload ; CHECK-NEXT: addi 1, 1, 720 ; CHECK-NEXT: blr - %3 = getelementptr inbounds i64, i64* %1, i64 144115188075855 - %4 = getelementptr i64, i64* %1, i64 144115586875855 - %5 = getelementptr i64, i64* %1, i64 144115587175855 - %6 = getelementptr i64, i64* %1, i64 144115587075855 - %7 = getelementptr i64, i64* %1, i64 144115586975855 - %8 = getelementptr i64, i64* %1, i64 144115587275855 - %9 = getelementptr i64, i64* %1, i64 144115587575855 - %10 = getelementptr i64, i64* %1, i64 144115587475855 - %11 = getelementptr i64, i64* %1, i64 144115587375855 - %12 = getelementptr i64, i64* %1, i64 144115587675855 - %13 = getelementptr i64, i64* %1, i64 144115587975855 - %14 = getelementptr i64, i64* %1, i64 144115587875855 - %15 = getelementptr i64, i64* %1, i64 144115587775855 - %16 = getelementptr i64, i64* %1, i64 144115588075855 - %17 = getelementptr i64, i64* %1, i64 144115588375855 - %18 = getelementptr i64, i64* %1, i64 144115588275855 - %19 = getelementptr i64, i64* %1, i64 144115588175855 + %3 = getelementptr inbounds i64, ptr %1, i64 144115188075855 + %4 = getelementptr i64, ptr %1, i64 144115586875855 + %5 = getelementptr i64, ptr %1, i64 144115587175855 + %6 = getelementptr i64, ptr %1, i64 144115587075855 + %7 = getelementptr i64, ptr %1, i64 144115586975855 + %8 = getelementptr i64, ptr %1, i64 144115587275855 + %9 = getelementptr i64, ptr %1, i64 144115587575855 + %10 = getelementptr i64, ptr %1, i64 144115587475855 + %11 = getelementptr i64, ptr %1, i64 144115587375855 + %12 = getelementptr i64, ptr %1, i64 144115587675855 + %13 = getelementptr i64, ptr %1, i64 144115587975855 + %14 = getelementptr i64, ptr %1, i64 144115587875855 + %15 = getelementptr i64, ptr %1, i64 144115587775855 + %16 = getelementptr i64, ptr %1, i64 144115588075855 + %17 = getelementptr i64, ptr %1, i64 144115588375855 + %18 = getelementptr i64, ptr %1, i64 144115588275855 + %19 = getelementptr i64, ptr %1, i64 144115588175855 br label %20 20: ; preds = %2, %109 @@ -459,157 +459,157 @@ 22: ; preds = %22, %20 %23 = phi i64 [ 0, %20 ], [ %107, %22 ] %24 = mul i64 %23, 400000 - %25 = getelementptr i64, i64* %3, i64 %24 + %25 = getelementptr i64, ptr %3, i64 %24 %26 = or i64 %23, 1 %27 = mul i64 %26, 400000 - %28 = getelementptr i64, i64* %3, i64 %27 + %28 = getelementptr i64, ptr %3, i64 %27 %29 = or i64 %23, 2 %30 = mul i64 %29, 400000 - %31 = getelementptr i64, i64* %3, i64 %30 + %31 = getelementptr i64, ptr %3, i64 %30 %32 = or i64 %23, 3 %33 = mul i64 %32, 400000 - %34 = getelementptr i64, i64* %3, i64 %33 + %34 = getelementptr i64, ptr %3, i64 %33 %35 = mul i64 %23, 400000 %36 = add i64 %35, 1600000 - %37 = getelementptr i64, i64* %3, i64 %36 + %37 = getelementptr i64, ptr %3, i64 %36 %38 = mul i64 %23, 400000 %39 = add i64 %38, 2000000 - %40 = getelementptr i64, i64* %3, i64 %39 + %40 = getelementptr i64, ptr %3, i64 %39 %41 = mul i64 %23, 400000 %42 = add i64 %41, 2400000 - %43 = getelementptr i64, i64* %3, i64 %42 + %43 = getelementptr i64, ptr %3, i64 %42 %44 = mul i64 %23, 400000 %45 = add i64 %44, 2800000 - %46 = getelementptr i64, i64* %3, i64 %45 + %46 = getelementptr i64, ptr %3, i64 %45 %47 = mul i64 %23, 400000 %48 = add i64 %47, 3200000 - %49 = getelementptr i64, i64* %3, i64 %48 + %49 = getelementptr i64, ptr %3, i64 %48 %50 = mul i64 %23, 400000 %51 = add i64 %50, 3600000 - %52 = getelementptr i64, i64* %3, i64 %51 + %52 = getelementptr i64, ptr %3, i64 %51 %53 = mul i64 %23, 400000 %54 = add i64 %53, 4000000 - %55 = getelementptr i64, i64* %3, i64 %54 + %55 = getelementptr i64, ptr %3, i64 %54 %56 = mul i64 %23, 400000 %57 = add i64 %56, 4400000 - %58 = getelementptr i64, i64* %3, i64 %57 - %59 = getelementptr inbounds i64, i64* %25, i64 400000 - %60 = getelementptr inbounds i64, i64* %28, i64 400000 - %61 = getelementptr inbounds i64, i64* %31, i64 400000 - %62 = getelementptr inbounds i64, i64* %34, i64 400000 - %63 = getelementptr inbounds i64, i64* %37, i64 400000 - %64 = getelementptr inbounds i64, i64* %40, i64 400000 - %65 = getelementptr inbounds i64, i64* %43, i64 400000 - %66 = getelementptr inbounds i64, i64* %46, i64 400000 - %67 = getelementptr inbounds i64, i64* %49, i64 400000 - %68 = getelementptr inbounds i64, i64* %52, i64 400000 - %69 = getelementptr inbounds i64, i64* %55, i64 400000 - %70 = getelementptr inbounds i64, i64* %58, i64 400000 - store i64 %0, i64* %59, align 8 - store i64 %0, i64* %60, align 8 - store i64 %0, i64* %61, align 8 - store i64 %0, i64* %62, align 8 - store i64 %0, i64* %63, align 8 - store i64 %0, i64* %64, align 8 - store i64 %0, i64* %65, align 8 - store i64 %0, i64* %66, align 8 - store i64 %0, i64* %67, align 8 - store i64 %0, i64* %68, align 8 - store i64 %0, i64* %69, align 8 - store i64 %0, i64* %70, align 8 - %71 = getelementptr inbounds i64, i64* %25, i64 700000 - %72 = getelementptr inbounds i64, i64* %28, i64 700000 - %73 = getelementptr inbounds i64, i64* %31, i64 700000 - %74 = getelementptr inbounds i64, i64* %34, i64 700000 - %75 = getelementptr inbounds i64, i64* %37, i64 700000 - %76 = getelementptr inbounds i64, i64* %40, i64 700000 - %77 = getelementptr inbounds i64, i64* %43, i64 700000 - %78 = getelementptr inbounds i64, i64* %46, i64 700000 - %79 = getelementptr inbounds i64, i64* %49, i64 700000 - %80 = getelementptr inbounds i64, i64* %52, i64 700000 - %81 = getelementptr inbounds i64, i64* %55, i64 700000 - %82 = getelementptr inbounds i64, i64* %58, i64 700000 - store i64 %0, i64* %71, align 8 - store i64 %0, i64* %72, align 8 - store i64 %0, i64* %73, align 8 - store i64 %0, i64* %74, align 8 - store i64 %0, i64* %75, align 8 - store i64 %0, i64* %76, align 8 - store i64 %0, i64* %77, align 8 - store i64 %0, i64* %78, align 8 - store i64 %0, i64* %79, align 8 - store i64 %0, i64* %80, align 8 - store i64 %0, i64* %81, align 8 - store i64 %0, i64* %82, align 8 - %83 = getelementptr inbounds i64, i64* %25, i64 600000 - %84 = getelementptr inbounds i64, i64* %28, i64 600000 - %85 = getelementptr inbounds i64, i64* %31, i64 600000 - %86 = getelementptr inbounds i64, i64* %34, i64 600000 - %87 = getelementptr inbounds i64, i64* %37, i64 600000 - %88 = getelementptr inbounds i64, i64* %40, i64 600000 - %89 = getelementptr inbounds i64, i64* %43, i64 600000 - %90 = getelementptr inbounds i64, i64* %46, i64 600000 - %91 = getelementptr inbounds i64, i64* %49, i64 600000 - %92 = getelementptr inbounds i64, i64* %52, i64 600000 - %93 = getelementptr inbounds i64, i64* %55, i64 600000 - %94 = getelementptr inbounds i64, i64* %58, i64 600000 - store i64 %0, i64* %83, align 8 - store i64 %0, i64* %84, align 8 - store i64 %0, i64* %85, align 8 - store i64 %0, i64* %86, align 8 - store i64 %0, i64* %87, align 8 - store i64 %0, i64* %88, align 8 - store i64 %0, i64* %89, align 8 - store i64 %0, i64* %90, align 8 - store i64 %0, i64* %91, align 8 - store i64 %0, i64* %92, align 8 - store i64 %0, i64* %93, align 8 - store i64 %0, i64* %94, align 8 - %95 = getelementptr inbounds i64, i64* %25, i64 500000 - %96 = getelementptr inbounds i64, i64* %28, i64 500000 - %97 = getelementptr inbounds i64, i64* %31, i64 500000 - %98 = getelementptr inbounds i64, i64* %34, i64 500000 - %99 = getelementptr inbounds i64, i64* %37, i64 500000 - %100 = getelementptr inbounds i64, i64* %40, i64 500000 - %101 = getelementptr inbounds i64, i64* %43, i64 500000 - %102 = getelementptr inbounds i64, i64* %46, i64 500000 - %103 = getelementptr inbounds i64, i64* %49, i64 500000 - %104 = getelementptr inbounds i64, i64* %52, i64 500000 - %105 = getelementptr inbounds i64, i64* %55, i64 500000 - %106 = getelementptr inbounds i64, i64* %58, i64 500000 - store i64 %0, i64* %95, align 8 - store i64 %0, i64* %96, align 8 - store i64 %0, i64* %97, align 8 - store i64 %0, i64* %98, align 8 - store i64 %0, i64* %99, align 8 - store i64 %0, i64* %100, align 8 - store i64 %0, i64* %101, align 8 - store i64 %0, i64* %102, align 8 - store i64 %0, i64* %103, align 8 - store i64 %0, i64* %104, align 8 - store i64 %0, i64* %105, align 8 - store i64 %0, i64* %106, align 8 + %58 = getelementptr i64, ptr %3, i64 %57 + %59 = getelementptr inbounds i64, ptr %25, i64 400000 + %60 = getelementptr inbounds i64, ptr %28, i64 400000 + %61 = getelementptr inbounds i64, ptr %31, i64 400000 + %62 = getelementptr inbounds i64, ptr %34, i64 400000 + %63 = getelementptr inbounds i64, ptr %37, i64 400000 + %64 = getelementptr inbounds i64, ptr %40, i64 400000 + %65 = getelementptr inbounds i64, ptr %43, i64 400000 + %66 = getelementptr inbounds i64, ptr %46, i64 400000 + %67 = getelementptr inbounds i64, ptr %49, i64 400000 + %68 = getelementptr inbounds i64, ptr %52, i64 400000 + %69 = getelementptr inbounds i64, ptr %55, i64 400000 + %70 = getelementptr inbounds i64, ptr %58, i64 400000 + store i64 %0, ptr %59, align 8 + store i64 %0, ptr %60, align 8 + store i64 %0, ptr %61, align 8 + store i64 %0, ptr %62, align 8 + store i64 %0, ptr %63, align 8 + store i64 %0, ptr %64, align 8 + store i64 %0, ptr %65, align 8 + store i64 %0, ptr %66, align 8 + store i64 %0, ptr %67, align 8 + store i64 %0, ptr %68, align 8 + store i64 %0, ptr %69, align 8 + store i64 %0, ptr %70, align 8 + %71 = getelementptr inbounds i64, ptr %25, i64 700000 + %72 = getelementptr inbounds i64, ptr %28, i64 700000 + %73 = getelementptr inbounds i64, ptr %31, i64 700000 + %74 = getelementptr inbounds i64, ptr %34, i64 700000 + %75 = getelementptr inbounds i64, ptr %37, i64 700000 + %76 = getelementptr inbounds i64, ptr %40, i64 700000 + %77 = getelementptr inbounds i64, ptr %43, i64 700000 + %78 = getelementptr inbounds i64, ptr %46, i64 700000 + %79 = getelementptr inbounds i64, ptr %49, i64 700000 + %80 = getelementptr inbounds i64, ptr %52, i64 700000 + %81 = getelementptr inbounds i64, ptr %55, i64 700000 + %82 = getelementptr inbounds i64, ptr %58, i64 700000 + store i64 %0, ptr %71, align 8 + store i64 %0, ptr %72, align 8 + store i64 %0, ptr %73, align 8 + store i64 %0, ptr %74, align 8 + store i64 %0, ptr %75, align 8 + store i64 %0, ptr %76, align 8 + store i64 %0, ptr %77, align 8 + store i64 %0, ptr %78, align 8 + store i64 %0, ptr %79, align 8 + store i64 %0, ptr %80, align 8 + store i64 %0, ptr %81, align 8 + store i64 %0, ptr %82, align 8 + %83 = getelementptr inbounds i64, ptr %25, i64 600000 + %84 = getelementptr inbounds i64, ptr %28, i64 600000 + %85 = getelementptr inbounds i64, ptr %31, i64 600000 + %86 = getelementptr inbounds i64, ptr %34, i64 600000 + %87 = getelementptr inbounds i64, ptr %37, i64 600000 + %88 = getelementptr inbounds i64, ptr %40, i64 600000 + %89 = getelementptr inbounds i64, ptr %43, i64 600000 + %90 = getelementptr inbounds i64, ptr %46, i64 600000 + %91 = getelementptr inbounds i64, ptr %49, i64 600000 + %92 = getelementptr inbounds i64, ptr %52, i64 600000 + %93 = getelementptr inbounds i64, ptr %55, i64 600000 + %94 = getelementptr inbounds i64, ptr %58, i64 600000 + store i64 %0, ptr %83, align 8 + store i64 %0, ptr %84, align 8 + store i64 %0, ptr %85, align 8 + store i64 %0, ptr %86, align 8 + store i64 %0, ptr %87, align 8 + store i64 %0, ptr %88, align 8 + store i64 %0, ptr %89, align 8 + store i64 %0, ptr %90, align 8 + store i64 %0, ptr %91, align 8 + store i64 %0, ptr %92, align 8 + store i64 %0, ptr %93, align 8 + store i64 %0, ptr %94, align 8 + %95 = getelementptr inbounds i64, ptr %25, i64 500000 + %96 = getelementptr inbounds i64, ptr %28, i64 500000 + %97 = getelementptr inbounds i64, ptr %31, i64 500000 + %98 = getelementptr inbounds i64, ptr %34, i64 500000 + %99 = getelementptr inbounds i64, ptr %37, i64 500000 + %100 = getelementptr inbounds i64, ptr %40, i64 500000 + %101 = getelementptr inbounds i64, ptr %43, i64 500000 + %102 = getelementptr inbounds i64, ptr %46, i64 500000 + %103 = getelementptr inbounds i64, ptr %49, i64 500000 + %104 = getelementptr inbounds i64, ptr %52, i64 500000 + %105 = getelementptr inbounds i64, ptr %55, i64 500000 + %106 = getelementptr inbounds i64, ptr %58, i64 500000 + store i64 %0, ptr %95, align 8 + store i64 %0, ptr %96, align 8 + store i64 %0, ptr %97, align 8 + store i64 %0, ptr %98, align 8 + store i64 %0, ptr %99, align 8 + store i64 %0, ptr %100, align 8 + store i64 %0, ptr %101, align 8 + store i64 %0, ptr %102, align 8 + store i64 %0, ptr %103, align 8 + store i64 %0, ptr %104, align 8 + store i64 %0, ptr %105, align 8 + store i64 %0, ptr %106, align 8 %107 = add i64 %23, 12 %108 = icmp eq i64 %107, 996 br i1 %108, label %109, label %22 109: ; preds = %22 - store i64 %0, i64* %4, align 8 - store i64 %0, i64* %5, align 8 - store i64 %0, i64* %6, align 8 - store i64 %0, i64* %7, align 8 - store i64 %0, i64* %8, align 8 - store i64 %0, i64* %9, align 8 - store i64 %0, i64* %10, align 8 - store i64 %0, i64* %11, align 8 - store i64 %0, i64* %12, align 8 - store i64 %0, i64* %13, align 8 - store i64 %0, i64* %14, align 8 - store i64 %0, i64* %15, align 8 - store i64 %0, i64* %16, align 8 - store i64 %0, i64* %17, align 8 - store i64 %0, i64* %18, align 8 - store i64 %0, i64* %19, align 8 + store i64 %0, ptr %4, align 8 + store i64 %0, ptr %5, align 8 + store i64 %0, ptr %6, align 8 + store i64 %0, ptr %7, align 8 + store i64 %0, ptr %8, align 8 + store i64 %0, ptr %9, align 8 + store i64 %0, ptr %10, align 8 + store i64 %0, ptr %11, align 8 + store i64 %0, ptr %12, align 8 + store i64 %0, ptr %13, align 8 + store i64 %0, ptr %14, align 8 + store i64 %0, ptr %15, align 8 + store i64 %0, ptr %16, align 8 + store i64 %0, ptr %17, align 8 + store i64 %0, ptr %18, align 8 + store i64 %0, ptr %19, align 8 %110 = add nuw nsw i32 %21, 1 %111 = icmp eq i32 %110, 400000 br i1 %111, label %112, label %20 Index: llvm/test/CodeGen/PowerPC/remove-redundant-load-imm.ll =================================================================== --- llvm/test/CodeGen/PowerPC/remove-redundant-load-imm.ll +++ llvm/test/CodeGen/PowerPC/remove-redundant-load-imm.ll @@ -4,10 +4,10 @@ target datalayout = "e-m:e-i64:64-n32:64" target triple = "powerpc64le-unknown-linux-gnu" -@global.6 = external global i32* +@global.6 = external global ptr -declare void @barney.88(i1, i32*) -declare void @barney.94(i8*, i32) +declare void @barney.88(i1, ptr) +declare void @barney.94(ptr, i32) define void @redundancy_on_ppc_only(i1 %arg7) nounwind { ; PPC64LE-LABEL: redundancy_on_ppc_only: @@ -29,7 +29,7 @@ br label %bb10 bb10: ; preds = %bb - call void @barney.88(i1 %arg7, i32* null) + call void @barney.88(i1 %arg7, ptr null) ret void } @@ -45,7 +45,7 @@ ; PPC64LE-NEXT: std 4, 0(3) ; PPC64LE-NEXT: bl barney.94 ; PPC64LE-NEXT: nop - store i32* null, i32** @global.6 - call void @barney.94(i8* undef, i32 0) + store ptr null, ptr @global.6 + call void @barney.94(ptr undef, i32 0) unreachable } Index: llvm/test/CodeGen/PowerPC/remove-redundant-toc-saves.ll =================================================================== --- llvm/test/CodeGen/PowerPC/remove-redundant-toc-saves.ll +++ llvm/test/CodeGen/PowerPC/remove-redundant-toc-saves.ll @@ -2,7 +2,7 @@ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-ibm-aix-xcoff < %s | FileCheck %s --check-prefix=AIX64 ; RUN: llc -verify-machineinstrs -mtriple=powerpc-ibm-aix-xcoff < %s | FileCheck %s --check-prefix=AIX32 -define signext i32 @test1(i32 signext %i, i32 (i32)* nocapture %Func, i32 (i32)* nocapture %Func2) { +define signext i32 @test1(i32 signext %i, ptr nocapture %Func, ptr nocapture %Func2) { entry: ; CHECK-LABEL: test1: ; CHECK: std 2, 24(1) @@ -21,7 +21,7 @@ ret i32 %add2 } -define signext i32 @test2(i32 signext %i, i32 signext %j, i32 (i32)* nocapture %Func, i32 (i32)* nocapture %Func2) { +define signext i32 @test2(i32 signext %i, i32 signext %j, ptr nocapture %Func, ptr nocapture %Func2) { entry: ; CHECK-LABEL: test2: ; CHECK: std 2, 24(1) @@ -53,7 +53,7 @@ } ; Check for multiple TOC saves with if then else where neither dominates the other. -define signext i32 @test3(i32 signext %i, i32 (i32)* nocapture %Func, i32 (i32)* nocapture %Func2) { +define signext i32 @test3(i32 signext %i, ptr nocapture %Func, ptr nocapture %Func2) { ; CHECK-LABEL: test3: ; CHECK: std 2, 24(1) ; CHECK-NOT: std 2, 24(1) @@ -82,7 +82,7 @@ ret i32 %add4 } -define signext i32 @test4(i32 signext %i, i32 (i32)* nocapture %Func, i32 (i32)* nocapture %Func2) { +define signext i32 @test4(i32 signext %i, ptr nocapture %Func, ptr nocapture %Func2) { ; CHECK-LABEL: test4: ; CHECK: std 2, 24(1) ; CHECK-NOT: std 2, 24(1) @@ -114,7 +114,7 @@ } ; Check for multiple TOC saves with if then where neither is redundant. -define signext i32 @test5(i32 signext %i, i32 (i32)* nocapture %Func, i32 (i32)* nocapture readnone %Func2) { +define signext i32 @test5(i32 signext %i, ptr nocapture %Func, ptr nocapture readnone %Func2) { entry: ; CHECK-LABEL: test5: ; CHECK: std 2, 24(1) @@ -139,7 +139,7 @@ } ; Check for multiple TOC saves if there are dynamic allocations on the stack. -define signext i32 @test6(i32 signext %i, i32 (i32)* nocapture %Func, i32 (i32)* nocapture %Func2) { +define signext i32 @test6(i32 signext %i, ptr nocapture %Func, ptr nocapture %Func2) { entry: ; CHECK-LABEL: test6: ; CHECK: std 2, 24(1) @@ -154,12 +154,11 @@ ; AIX32: stw 2, 20(1) %conv = sext i32 %i to i64 %0 = alloca i8, i64 %conv, align 16 - %1 = bitcast i8* %0 to i32* %call = tail call signext i32 %Func(i32 signext %i) - call void @useAlloca(i32* nonnull %1, i32 signext %call) + call void @useAlloca(ptr nonnull %0, i32 signext %call) %call1 = call signext i32 %Func2(i32 signext %i) %add2 = add nsw i32 %call1, %call ret i32 %add2 } -declare void @useAlloca(i32*, i32 signext) +declare void @useAlloca(ptr, i32 signext) Index: llvm/test/CodeGen/PowerPC/resolvefi-basereg.ll =================================================================== --- llvm/test/CodeGen/PowerPC/resolvefi-basereg.ll +++ llvm/test/CodeGen/PowerPC/resolvefi-basereg.ll @@ -7,8 +7,8 @@ target datalayout = "E-m:e-i64:64-n32:64" target triple = "powerpc64-unknown-linux-gnu" -%struct.Info = type { i32, i32, i8*, i8*, i8*, [32 x i8*], i64, [32 x i64], i64, i64, i64, [32 x i64] } -%struct.S1998 = type { [2 x i32*], i64, i64, double, i16, i32, [29 x %struct.anon], i16, i8, i32, [8 x i8] } +%struct.Info = type { i32, i32, ptr, ptr, ptr, [32 x ptr], i64, [32 x i64], i64, i64, i64, [32 x i64] } +%struct.S1998 = type { [2 x ptr], i64, i64, double, i16, i32, [29 x %struct.anon], i16, i8, i32, [8 x i8] } %struct.anon = type { [16 x double], i32, i16, i32, [3 x i8], [6 x i8], [4 x i32], i8 } @info = global %struct.Info zeroinitializer, align 8 @@ -32,331 +32,322 @@ %agg.tmp117 = alloca %struct.S1998, align 16 %agg.tmp118 = alloca %struct.S1998, align 16 %agg.tmp119 = alloca %struct.S1998, align 16 - call void @llvm.memset.p0i8.i64(i8* align 16 bitcast (%struct.S1998* @s1998 to i8*), i8 0, i64 5168, i1 false) - call void @llvm.memset.p0i8.i64(i8* align 16 bitcast ([5 x %struct.S1998]* @a1998 to i8*), i8 0, i64 25840, i1 false) - call void @llvm.memset.p0i8.i64(i8* align 8 bitcast (%struct.Info* @info to i8*), i8 0, i64 832, i1 false) - store i8* bitcast (%struct.S1998* @s1998 to i8*), i8** getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 2), align 8 - store i8* bitcast ([5 x %struct.S1998]* @a1998 to i8*), i8** getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 3), align 8 - store i8* bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 3) to i8*), i8** getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 4), align 8 - store i64 5168, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 6), align 8 - store i64 16, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 8), align 8 - store i64 16, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 9), align 8 - store i64 16, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 10), align 8 - %0 = load i64, i64* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 8), align 8 + call void @llvm.memset.p0.i64(ptr align 16 @s1998, i8 0, i64 5168, i1 false) + call void @llvm.memset.p0.i64(ptr align 16 @a1998, i8 0, i64 25840, i1 false) + call void @llvm.memset.p0.i64(ptr align 8 @info, i8 0, i64 832, i1 false) + store ptr @s1998, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 2), align 8 + store ptr @a1998, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 3), align 8 + store ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 3), ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 4), align 8 + store i64 5168, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 6), align 8 + store i64 16, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 8), align 8 + store i64 16, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 9), align 8 + store i64 16, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 10), align 8 + %0 = load i64, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 8), align 8 %sub = sub i64 %0, 1 - %and = and i64 ptrtoint (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 3) to i64), %sub + %and = and i64 ptrtoint (ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 3) to i64), %sub %tobool = icmp ne i64 %and, 0 br i1 %tobool, label %if.then, label %if.end if.then: ; preds = %entry - %1 = load i32, i32* @fails, align 4 + %1 = load i32, ptr @fails, align 4 %inc = add nsw i32 %1, 1 - store i32 %inc, i32* @fails, align 4 + store i32 %inc, ptr @fails, align 4 br label %if.end if.end: ; preds = %if.then, %entry - store i32 0, i32* %i, align 4 - store i32 0, i32* %j, align 4 - %2 = load i32, i32* %i, align 4 + store i32 0, ptr %i, align 4 + store i32 0, ptr %j, align 4 + %2 = load i32, ptr %i, align 4 %idxprom = sext i32 %2 to i64 - %arrayidx = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom - store i8* bitcast (i32** getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 0, i64 1) to i8*), i8** %arrayidx, align 8 - %3 = load i32, i32* %i, align 4 + %arrayidx = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 0, i64 1), ptr %arrayidx, align 8 + %3 = load i32, ptr %i, align 4 %idxprom1 = sext i32 %3 to i64 - %arrayidx2 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom1 - store i64 8, i64* %arrayidx2, align 8 - %4 = load i32, i32* %i, align 4 + %arrayidx2 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom1 + store i64 8, ptr %arrayidx2, align 8 + %4 = load i32, ptr %i, align 4 %idxprom3 = sext i32 %4 to i64 - %arrayidx4 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom3 - store i64 8, i64* %arrayidx4, align 8 - store i32* getelementptr inbounds ([256 x i32], [256 x i32]* @intarray, i32 0, i64 190), i32** getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 0, i64 1), align 8 - store i32* getelementptr inbounds ([256 x i32], [256 x i32]* @intarray, i32 0, i64 241), i32** getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 0, i64 1), align 8 - %5 = load i32, i32* %i, align 4 + %arrayidx4 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom3 + store i64 8, ptr %arrayidx4, align 8 + store ptr getelementptr inbounds ([256 x i32], ptr @intarray, i32 0, i64 190), ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 0, i64 1), align 8 + store ptr getelementptr inbounds ([256 x i32], ptr @intarray, i32 0, i64 241), ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 0, i64 1), align 8 + %5 = load i32, ptr %i, align 4 %inc5 = add nsw i32 %5, 1 - store i32 %inc5, i32* %i, align 4 - %6 = load i32, i32* %i, align 4 + store i32 %inc5, ptr %i, align 4 + %6 = load i32, ptr %i, align 4 %idxprom6 = sext i32 %6 to i64 - %arrayidx7 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom6 - store i8* bitcast (i64* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 1) to i8*), i8** %arrayidx7, align 8 - %7 = load i32, i32* %i, align 4 + %arrayidx7 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom6 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 1), ptr %arrayidx7, align 8 + %7 = load i32, ptr %i, align 4 %idxprom8 = sext i32 %7 to i64 - %arrayidx9 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom8 - store i64 8, i64* %arrayidx9, align 8 - %8 = load i32, i32* %i, align 4 + %arrayidx9 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom8 + store i64 8, ptr %arrayidx9, align 8 + %8 = load i32, ptr %i, align 4 %idxprom10 = sext i32 %8 to i64 - %arrayidx11 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom10 - store i64 8, i64* %arrayidx11, align 8 - store i64 -3866974208859106459, i64* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 1), align 8 - store i64 -185376695371304091, i64* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 1), align 8 - %9 = load i32, i32* %i, align 4 + %arrayidx11 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom10 + store i64 8, ptr %arrayidx11, align 8 + store i64 -3866974208859106459, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 1), align 8 + store i64 -185376695371304091, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 1), align 8 + %9 = load i32, ptr %i, align 4 %inc12 = add nsw i32 %9, 1 - store i32 %inc12, i32* %i, align 4 - %10 = load i32, i32* %i, align 4 + store i32 %inc12, ptr %i, align 4 + %10 = load i32, ptr %i, align 4 %idxprom13 = sext i32 %10 to i64 - %arrayidx14 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom13 - store i8* bitcast (i64* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 2) to i8*), i8** %arrayidx14, align 8 - %11 = load i32, i32* %i, align 4 + %arrayidx14 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom13 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 2), ptr %arrayidx14, align 8 + %11 = load i32, ptr %i, align 4 %idxprom15 = sext i32 %11 to i64 - %arrayidx16 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom15 - store i64 8, i64* %arrayidx16, align 8 - %12 = load i32, i32* %i, align 4 + %arrayidx16 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom15 + store i64 8, ptr %arrayidx16, align 8 + %12 = load i32, ptr %i, align 4 %idxprom17 = sext i32 %12 to i64 - %arrayidx18 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom17 - store i64 8, i64* %arrayidx18, align 8 - store i64 -963638028680427187, i64* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 2), align 8 - store i64 7510542175772455554, i64* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 2), align 8 - %13 = load i32, i32* %i, align 4 + %arrayidx18 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom17 + store i64 8, ptr %arrayidx18, align 8 + store i64 -963638028680427187, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 2), align 8 + store i64 7510542175772455554, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 2), align 8 + %13 = load i32, ptr %i, align 4 %inc19 = add nsw i32 %13, 1 - store i32 %inc19, i32* %i, align 4 - %14 = load i32, i32* %i, align 4 + store i32 %inc19, ptr %i, align 4 + %14 = load i32, ptr %i, align 4 %idxprom20 = sext i32 %14 to i64 - %arrayidx21 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom20 - store i8* bitcast (double* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 3) to i8*), i8** %arrayidx21, align 8 - %15 = load i32, i32* %i, align 4 + %arrayidx21 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom20 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 3), ptr %arrayidx21, align 8 + %15 = load i32, ptr %i, align 4 %idxprom22 = sext i32 %15 to i64 - %arrayidx23 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom22 - store i64 8, i64* %arrayidx23, align 8 - %16 = load i32, i32* %i, align 4 + %arrayidx23 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom22 + store i64 8, ptr %arrayidx23, align 8 + %16 = load i32, ptr %i, align 4 %idxprom24 = sext i32 %16 to i64 - %arrayidx25 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom24 - store i64 16, i64* %arrayidx25, align 8 - store double 0xC0F8783300000000, double* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 3), align 16 - store double 0xC10DF3CCC0000000, double* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 3), align 16 - %17 = load i32, i32* %i, align 4 + %arrayidx25 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom24 + store i64 16, ptr %arrayidx25, align 8 + store double 0xC0F8783300000000, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 3), align 16 + store double 0xC10DF3CCC0000000, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 3), align 16 + %17 = load i32, ptr %i, align 4 %inc26 = add nsw i32 %17, 1 - store i32 %inc26, i32* %i, align 4 - %18 = load i32, i32* %i, align 4 + store i32 %inc26, ptr %i, align 4 + %18 = load i32, ptr %i, align 4 %idxprom27 = sext i32 %18 to i64 - %arrayidx28 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom27 - store i8* bitcast (i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 4) to i8*), i8** %arrayidx28, align 8 - %19 = load i32, i32* %i, align 4 + %arrayidx28 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom27 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 4), ptr %arrayidx28, align 8 + %19 = load i32, ptr %i, align 4 %idxprom29 = sext i32 %19 to i64 - %arrayidx30 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom29 - store i64 2, i64* %arrayidx30, align 8 - %20 = load i32, i32* %i, align 4 + %arrayidx30 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom29 + store i64 2, ptr %arrayidx30, align 8 + %20 = load i32, ptr %i, align 4 %idxprom31 = sext i32 %20 to i64 - %arrayidx32 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom31 - store i64 2, i64* %arrayidx32, align 8 - store i16 -15897, i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 4), align 2 - store i16 30935, i16* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 4), align 2 - %21 = load i32, i32* %i, align 4 + %arrayidx32 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom31 + store i64 2, ptr %arrayidx32, align 8 + store i16 -15897, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 4), align 2 + store i16 30935, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 4), align 2 + %21 = load i32, ptr %i, align 4 %inc33 = add nsw i32 %21, 1 - store i32 %inc33, i32* %i, align 4 - store i32 -419541644, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 5), align 4 - store i32 2125926812, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 5), align 4 - %22 = load i32, i32* %j, align 4 + store i32 %inc33, ptr %i, align 4 + store i32 -419541644, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 5), align 4 + store i32 2125926812, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 5), align 4 + %22 = load i32, ptr %j, align 4 %inc34 = add nsw i32 %22, 1 - store i32 %inc34, i32* %j, align 4 - %23 = load i32, i32* %i, align 4 + store i32 %inc34, ptr %j, align 4 + %23 = load i32, ptr %i, align 4 %idxprom35 = sext i32 %23 to i64 - %arrayidx36 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom35 - store i8* bitcast (double* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 0, i64 0) to i8*), i8** %arrayidx36, align 8 - %24 = load i32, i32* %i, align 4 + %arrayidx36 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom35 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 0, i64 0), ptr %arrayidx36, align 8 + %24 = load i32, ptr %i, align 4 %idxprom37 = sext i32 %24 to i64 - %arrayidx38 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom37 - store i64 8, i64* %arrayidx38, align 8 - %25 = load i32, i32* %i, align 4 + %arrayidx38 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom37 + store i64 8, ptr %arrayidx38, align 8 + %25 = load i32, ptr %i, align 4 %idxprom39 = sext i32 %25 to i64 - %arrayidx40 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom39 - store i64 8, i64* %arrayidx40, align 8 - store double 0xC0FC765780000000, double* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 0, i64 0), align 8 - store double 0xC1025CD7A0000000, double* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 0, i64 0), align 8 - %26 = load i32, i32* %i, align 4 + %arrayidx40 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom39 + store i64 8, ptr %arrayidx40, align 8 + store double 0xC0FC765780000000, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 0, i64 0), align 8 + store double 0xC1025CD7A0000000, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 0, i64 0), align 8 + %26 = load i32, ptr %i, align 4 %inc41 = add nsw i32 %26, 1 - store i32 %inc41, i32* %i, align 4 - %bf.load = load i32, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 1), align 8 + store i32 %inc41, ptr %i, align 4 + %bf.load = load i32, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 1), align 8 %bf.clear = and i32 %bf.load, 7 %bf.set = or i32 %bf.clear, 16 - store i32 %bf.set, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 1), align 8 - %bf.load42 = load i32, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 1), align 8 + store i32 %bf.set, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 1), align 8 + %bf.load42 = load i32, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 1), align 8 %bf.clear43 = and i32 %bf.load42, 7 %bf.set44 = or i32 %bf.clear43, 24 - store i32 %bf.set44, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 1), align 8 - %27 = load i32, i32* %j, align 4 + store i32 %bf.set44, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 1), align 8 + %27 = load i32, ptr %j, align 4 %inc45 = add nsw i32 %27, 1 - store i32 %inc45, i32* %j, align 4 - %bf.load46 = load i16, i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 2), align 4 + store i32 %inc45, ptr %j, align 4 + %bf.load46 = load i16, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 2), align 4 %bf.clear47 = and i16 %bf.load46, 127 - store i16 %bf.clear47, i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 2), align 4 - %bf.load48 = load i16, i16* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 2), align 4 + store i16 %bf.clear47, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 2), align 4 + %bf.load48 = load i16, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 2), align 4 %bf.clear49 = and i16 %bf.load48, 127 - store i16 %bf.clear49, i16* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 2), align 4 - %28 = load i32, i32* %j, align 4 + store i16 %bf.clear49, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 2), align 4 + %28 = load i32, ptr %j, align 4 %inc50 = add nsw i32 %28, 1 - store i32 %inc50, i32* %j, align 4 - %bf.load51 = load i32, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 3), align 8 + store i32 %inc50, ptr %j, align 4 + %bf.load51 = load i32, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 3), align 8 %bf.clear52 = and i32 %bf.load51, 63 - store i32 %bf.clear52, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 3), align 8 - %bf.load53 = load i32, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 3), align 8 + store i32 %bf.clear52, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 3), align 8 + %bf.load53 = load i32, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 3), align 8 %bf.clear54 = and i32 %bf.load53, 63 %bf.set55 = or i32 %bf.clear54, 64 - store i32 %bf.set55, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 3), align 8 - %29 = load i32, i32* %j, align 4 + store i32 %bf.set55, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 3), align 8 + %29 = load i32, ptr %j, align 4 %inc56 = add nsw i32 %29, 1 - store i32 %inc56, i32* %j, align 4 - %bf.load57 = load i24, i24* bitcast ([3 x i8]* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 4) to i24*), align 4 + store i32 %inc56, ptr %j, align 4 + %bf.load57 = load i24, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 4), align 4 %bf.clear58 = and i24 %bf.load57, 63 - store i24 %bf.clear58, i24* bitcast ([3 x i8]* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 4) to i24*), align 4 - %bf.load59 = load i24, i24* bitcast ([3 x i8]* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 4) to i24*), align 4 + store i24 %bf.clear58, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 4), align 4 + %bf.load59 = load i24, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 4), align 4 %bf.clear60 = and i24 %bf.load59, 63 - store i24 %bf.clear60, i24* bitcast ([3 x i8]* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 4) to i24*), align 4 - %30 = load i32, i32* %j, align 4 + store i24 %bf.clear60, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 4), align 4 + %30 = load i32, ptr %j, align 4 %inc61 = add nsw i32 %30, 1 - store i32 %inc61, i32* %j, align 4 - %31 = load i32, i32* %i, align 4 + store i32 %inc61, ptr %j, align 4 + %31 = load i32, ptr %i, align 4 %idxprom62 = sext i32 %31 to i64 - %arrayidx63 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom62 - store i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 5, i64 5), i8** %arrayidx63, align 8 - %32 = load i32, i32* %i, align 4 + %arrayidx63 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom62 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 5, i64 5), ptr %arrayidx63, align 8 + %32 = load i32, ptr %i, align 4 %idxprom64 = sext i32 %32 to i64 - %arrayidx65 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom64 - store i64 1, i64* %arrayidx65, align 8 - %33 = load i32, i32* %i, align 4 + %arrayidx65 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom64 + store i64 1, ptr %arrayidx65, align 8 + %33 = load i32, ptr %i, align 4 %idxprom66 = sext i32 %33 to i64 - %arrayidx67 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom66 - store i64 1, i64* %arrayidx67, align 8 - store i8 -83, i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 5, i64 5), align 1 - store i8 -67, i8* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 5, i64 5), align 1 - %34 = load i32, i32* %i, align 4 + %arrayidx67 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom66 + store i64 1, ptr %arrayidx67, align 8 + store i8 -83, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 5, i64 5), align 1 + store i8 -67, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 5, i64 5), align 1 + %34 = load i32, ptr %i, align 4 %inc68 = add nsw i32 %34, 1 - store i32 %inc68, i32* %i, align 4 - %35 = load i32, i32* %i, align 4 + store i32 %inc68, ptr %i, align 4 + %35 = load i32, ptr %i, align 4 %idxprom69 = sext i32 %35 to i64 - %arrayidx70 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom69 - store i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 5, i64 1), i8** %arrayidx70, align 8 - %36 = load i32, i32* %i, align 4 + %arrayidx70 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom69 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 5, i64 1), ptr %arrayidx70, align 8 + %36 = load i32, ptr %i, align 4 %idxprom71 = sext i32 %36 to i64 - %arrayidx72 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom71 - store i64 1, i64* %arrayidx72, align 8 - %37 = load i32, i32* %i, align 4 + %arrayidx72 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom71 + store i64 1, ptr %arrayidx72, align 8 + %37 = load i32, ptr %i, align 4 %idxprom73 = sext i32 %37 to i64 - %arrayidx74 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom73 - store i64 1, i64* %arrayidx74, align 8 - store i8 34, i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 5, i64 1), align 1 - store i8 64, i8* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 5, i64 1), align 1 - %38 = load i32, i32* %i, align 4 + %arrayidx74 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom73 + store i64 1, ptr %arrayidx74, align 8 + store i8 34, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 5, i64 1), align 1 + store i8 64, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 5, i64 1), align 1 + %38 = load i32, ptr %i, align 4 %inc75 = add nsw i32 %38, 1 - store i32 %inc75, i32* %i, align 4 - %39 = load i32, i32* %i, align 4 + store i32 %inc75, ptr %i, align 4 + %39 = load i32, ptr %i, align 4 %idxprom76 = sext i32 %39 to i64 - %arrayidx77 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom76 - store i8* bitcast (i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 6, i64 3) to i8*), i8** %arrayidx77, align 8 - %40 = load i32, i32* %i, align 4 + %arrayidx77 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom76 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 6, i64 3), ptr %arrayidx77, align 8 + %40 = load i32, ptr %i, align 4 %idxprom78 = sext i32 %40 to i64 - %arrayidx79 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom78 - store i64 4, i64* %arrayidx79, align 8 - %41 = load i32, i32* %i, align 4 + %arrayidx79 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom78 + store i64 4, ptr %arrayidx79, align 8 + %41 = load i32, ptr %i, align 4 %idxprom80 = sext i32 %41 to i64 - %arrayidx81 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom80 - store i64 4, i64* %arrayidx81, align 8 - store i32 -3, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 6, i64 3), align 4 - store i32 -3, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 6, i64 3), align 4 - %42 = load i32, i32* %i, align 4 + %arrayidx81 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom80 + store i64 4, ptr %arrayidx81, align 8 + store i32 -3, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 6, i64 3), align 4 + store i32 -3, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 6, i64 3), align 4 + %42 = load i32, ptr %i, align 4 %inc82 = add nsw i32 %42, 1 - store i32 %inc82, i32* %i, align 4 - %43 = load i32, i32* %i, align 4 + store i32 %inc82, ptr %i, align 4 + %43 = load i32, ptr %i, align 4 %idxprom83 = sext i32 %43 to i64 - %arrayidx84 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom83 - store i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 7), i8** %arrayidx84, align 8 - %44 = load i32, i32* %i, align 4 + %arrayidx84 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom83 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 7), ptr %arrayidx84, align 8 + %44 = load i32, ptr %i, align 4 %idxprom85 = sext i32 %44 to i64 - %arrayidx86 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom85 - store i64 1, i64* %arrayidx86, align 8 - %45 = load i32, i32* %i, align 4 + %arrayidx86 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom85 + store i64 1, ptr %arrayidx86, align 8 + %45 = load i32, ptr %i, align 4 %idxprom87 = sext i32 %45 to i64 - %arrayidx88 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom87 - store i64 1, i64* %arrayidx88, align 8 - store i8 106, i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 6, i64 4, i32 7), align 1 - store i8 -102, i8* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 6, i64 4, i32 7), align 1 - %46 = load i32, i32* %i, align 4 + %arrayidx88 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom87 + store i64 1, ptr %arrayidx88, align 8 + store i8 106, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 6, i64 4, i32 7), align 1 + store i8 -102, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 6, i64 4, i32 7), align 1 + %46 = load i32, ptr %i, align 4 %inc89 = add nsw i32 %46, 1 - store i32 %inc89, i32* %i, align 4 - %47 = load i32, i32* %i, align 4 + store i32 %inc89, ptr %i, align 4 + %47 = load i32, ptr %i, align 4 %idxprom90 = sext i32 %47 to i64 - %arrayidx91 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom90 - store i8* bitcast (i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 7) to i8*), i8** %arrayidx91, align 8 - %48 = load i32, i32* %i, align 4 + %arrayidx91 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom90 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 7), ptr %arrayidx91, align 8 + %48 = load i32, ptr %i, align 4 %idxprom92 = sext i32 %48 to i64 - %arrayidx93 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom92 - store i64 2, i64* %arrayidx93, align 8 - %49 = load i32, i32* %i, align 4 + %arrayidx93 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom92 + store i64 2, ptr %arrayidx93, align 8 + %49 = load i32, ptr %i, align 4 %idxprom94 = sext i32 %49 to i64 - %arrayidx95 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom94 - store i64 2, i64* %arrayidx95, align 8 - store i16 29665, i16* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 7), align 2 - store i16 7107, i16* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 7), align 2 - %50 = load i32, i32* %i, align 4 + %arrayidx95 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom94 + store i64 2, ptr %arrayidx95, align 8 + store i16 29665, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 7), align 2 + store i16 7107, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 7), align 2 + %50 = load i32, ptr %i, align 4 %inc96 = add nsw i32 %50, 1 - store i32 %inc96, i32* %i, align 4 - %51 = load i32, i32* %i, align 4 + store i32 %inc96, ptr %i, align 4 + %51 = load i32, ptr %i, align 4 %idxprom97 = sext i32 %51 to i64 - %arrayidx98 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom97 - store i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 8), i8** %arrayidx98, align 8 - %52 = load i32, i32* %i, align 4 + %arrayidx98 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom97 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 8), ptr %arrayidx98, align 8 + %52 = load i32, ptr %i, align 4 %idxprom99 = sext i32 %52 to i64 - %arrayidx100 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom99 - store i64 1, i64* %arrayidx100, align 8 - %53 = load i32, i32* %i, align 4 + %arrayidx100 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom99 + store i64 1, ptr %arrayidx100, align 8 + %53 = load i32, ptr %i, align 4 %idxprom101 = sext i32 %53 to i64 - %arrayidx102 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom101 - store i64 1, i64* %arrayidx102, align 8 - store i8 52, i8* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 8), align 1 - store i8 -86, i8* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 8), align 1 - %54 = load i32, i32* %i, align 4 + %arrayidx102 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom101 + store i64 1, ptr %arrayidx102, align 8 + store i8 52, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 8), align 1 + store i8 -86, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 8), align 1 + %54 = load i32, ptr %i, align 4 %inc103 = add nsw i32 %54, 1 - store i32 %inc103, i32* %i, align 4 - %55 = load i32, i32* %i, align 4 + store i32 %inc103, ptr %i, align 4 + %55 = load i32, ptr %i, align 4 %idxprom104 = sext i32 %55 to i64 - %arrayidx105 = getelementptr inbounds [32 x i8*], [32 x i8*]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 5), i32 0, i64 %idxprom104 - store i8* bitcast (i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 9) to i8*), i8** %arrayidx105, align 8 - %56 = load i32, i32* %i, align 4 + %arrayidx105 = getelementptr inbounds [32 x ptr], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 5), i32 0, i64 %idxprom104 + store ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 9), ptr %arrayidx105, align 8 + %56 = load i32, ptr %i, align 4 %idxprom106 = sext i32 %56 to i64 - %arrayidx107 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 7), i32 0, i64 %idxprom106 - store i64 4, i64* %arrayidx107, align 8 - %57 = load i32, i32* %i, align 4 + %arrayidx107 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 7), i32 0, i64 %idxprom106 + store i64 4, ptr %arrayidx107, align 8 + %57 = load i32, ptr %i, align 4 %idxprom108 = sext i32 %57 to i64 - %arrayidx109 = getelementptr inbounds [32 x i64], [32 x i64]* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 11), i32 0, i64 %idxprom108 - store i64 4, i64* %arrayidx109, align 8 - store i32 -54118453, i32* getelementptr inbounds (%struct.S1998, %struct.S1998* @s1998, i32 0, i32 9), align 4 - store i32 1668755823, i32* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2, i32 9), align 4 - %58 = load i32, i32* %i, align 4 + %arrayidx109 = getelementptr inbounds [32 x i64], ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 11), i32 0, i64 %idxprom108 + store i64 4, ptr %arrayidx109, align 8 + store i32 -54118453, ptr getelementptr inbounds (%struct.S1998, ptr @s1998, i32 0, i32 9), align 4 + store i32 1668755823, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2, i32 9), align 4 + %58 = load i32, ptr %i, align 4 %inc110 = add nsw i32 %58, 1 - store i32 %inc110, i32* %i, align 4 - store i32 %inc110, i32* %tmp - %59 = load i32, i32* %tmp - %60 = load i32, i32* %i, align 4 - store i32 %60, i32* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 0), align 4 - %61 = load i32, i32* %j, align 4 - store i32 %61, i32* getelementptr inbounds (%struct.Info, %struct.Info* @info, i32 0, i32 1), align 4 - %62 = bitcast %struct.S1998* %agg.tmp111 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %62, i8* align 16 bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i1 false) - %63 = bitcast %struct.S1998* %agg.tmp112 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %63, i8* align 16 bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2) to i8*), i64 5168, i1 false) - call void @check1998(%struct.S1998* sret(%struct.S1998) %agg.tmp, %struct.S1998* byval(%struct.S1998) align 16 %agg.tmp111, %struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 1), %struct.S1998* byval(%struct.S1998) align 16 %agg.tmp112) - call void @checkx1998(%struct.S1998* byval(%struct.S1998) align 16 %agg.tmp) - %64 = bitcast %struct.S1998* %agg.tmp113 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %64, i8* align 16 bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i1 false) - %65 = bitcast %struct.S1998* %agg.tmp114 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %65, i8* align 16 bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2) to i8*), i64 5168, i1 false) - %66 = bitcast %struct.S1998* %agg.tmp115 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %66, i8* align 16 bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2) to i8*), i64 5168, i1 false) - call void (i32, ...) @check1998va(i32 signext 1, double 1.000000e+00, %struct.S1998* byval(%struct.S1998) align 16 %agg.tmp113, i64 2, %struct.S1998* byval(%struct.S1998) align 16 %agg.tmp114, %struct.S1998* byval(%struct.S1998) align 16 %agg.tmp115) - %67 = bitcast %struct.S1998* %agg.tmp116 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %67, i8* align 16 bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i1 false) - %68 = bitcast %struct.S1998* %agg.tmp117 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %68, i8* align 16 bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i1 false) - %69 = bitcast %struct.S1998* %agg.tmp118 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %69, i8* align 16 bitcast (%struct.S1998* getelementptr inbounds ([5 x %struct.S1998], [5 x %struct.S1998]* @a1998, i32 0, i64 2) to i8*), i64 5168, i1 false) - %70 = bitcast %struct.S1998* %agg.tmp119 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %70, i8* align 16 bitcast (%struct.S1998* @s1998 to i8*), i64 5168, i1 false) - call void (i32, ...) @check1998va(i32 signext 2, %struct.S1998* byval(%struct.S1998) align 16 %agg.tmp116, %struct.S1998* byval(%struct.S1998) align 16 %agg.tmp117, ppc_fp128 0xM40000000000000000000000000000000, %struct.S1998* byval(%struct.S1998) align 16 %agg.tmp118, %struct.S1998* byval(%struct.S1998) align 16 %agg.tmp119) + store i32 %inc110, ptr %i, align 4 + store i32 %inc110, ptr %tmp + %59 = load i32, ptr %tmp + %60 = load i32, ptr %i, align 4 + store i32 %60, ptr @info, align 4 + %61 = load i32, ptr %j, align 4 + store i32 %61, ptr getelementptr inbounds (%struct.Info, ptr @info, i32 0, i32 1), align 4 + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp111, ptr align 16 @s1998, i64 5168, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp112, ptr align 16 getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2), i64 5168, i1 false) + call void @check1998(ptr sret(%struct.S1998) %agg.tmp, ptr byval(%struct.S1998) align 16 %agg.tmp111, ptr getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 1), ptr byval(%struct.S1998) align 16 %agg.tmp112) + call void @checkx1998(ptr byval(%struct.S1998) align 16 %agg.tmp) + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp113, ptr align 16 @s1998, i64 5168, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp114, ptr align 16 getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2), i64 5168, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp115, ptr align 16 getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2), i64 5168, i1 false) + call void (i32, ...) @check1998va(i32 signext 1, double 1.000000e+00, ptr byval(%struct.S1998) align 16 %agg.tmp113, i64 2, ptr byval(%struct.S1998) align 16 %agg.tmp114, ptr byval(%struct.S1998) align 16 %agg.tmp115) + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp116, ptr align 16 @s1998, i64 5168, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp117, ptr align 16 @s1998, i64 5168, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp118, ptr align 16 getelementptr inbounds ([5 x %struct.S1998], ptr @a1998, i32 0, i64 2), i64 5168, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %agg.tmp119, ptr align 16 @s1998, i64 5168, i1 false) + call void (i32, ...) @check1998va(i32 signext 2, ptr byval(%struct.S1998) align 16 %agg.tmp116, ptr byval(%struct.S1998) align 16 %agg.tmp117, ppc_fp128 0xM40000000000000000000000000000000, ptr byval(%struct.S1998) align 16 %agg.tmp118, ptr byval(%struct.S1998) align 16 %agg.tmp119) ret void } -declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) +declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) +declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) -declare void @check1998(%struct.S1998* sret(%struct.S1998), %struct.S1998* byval(%struct.S1998) align 16, %struct.S1998*, %struct.S1998* byval(%struct.S1998) align 16) +declare void @check1998(ptr sret(%struct.S1998), ptr byval(%struct.S1998) align 16, ptr, ptr byval(%struct.S1998) align 16) declare void @check1998va(i32 signext, ...) -declare void @checkx1998(%struct.S1998* byval(%struct.S1998) align 16 %arg) +declare void @checkx1998(ptr byval(%struct.S1998) align 16 %arg) Index: llvm/test/CodeGen/PowerPC/resolvefi-disp.ll =================================================================== --- llvm/test/CodeGen/PowerPC/resolvefi-disp.ll +++ llvm/test/CodeGen/PowerPC/resolvefi-disp.ll @@ -20,52 +20,43 @@ @s2760 = external global %struct.S2760 @fails = external global i32 -define void @check2760(%struct.S2760* noalias sret(%struct.S2760) %agg.result, %struct.S2760* byval(%struct.S2760) align 16, %struct.S2760* %arg1, %struct.S2760* byval(%struct.S2760) align 16) { +define void @check2760(ptr noalias sret(%struct.S2760) %agg.result, ptr byval(%struct.S2760) align 16, ptr %arg1, ptr byval(%struct.S2760) align 16) { entry: %arg0 = alloca %struct.S2760, align 32 %arg2 = alloca %struct.S2760, align 32 - %arg1.addr = alloca %struct.S2760*, align 8 + %arg1.addr = alloca ptr, align 8 %ret = alloca %struct.S2760, align 32 %b1 = alloca %struct.S2760, align 32 %b2 = alloca %struct.S2760, align 32 - %2 = bitcast %struct.S2760* %arg0 to i8* - %3 = bitcast %struct.S2760* %0 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %2, i8* align 16 %3, i64 11104, i1 false) - %4 = bitcast %struct.S2760* %arg2 to i8* - %5 = bitcast %struct.S2760* %1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %4, i8* align 16 %5, i64 11104, i1 false) - store %struct.S2760* %arg1, %struct.S2760** %arg1.addr, align 8 - %6 = bitcast %struct.S2760* %ret to i8* - call void @llvm.memset.p0i8.i64(i8* align 32 %6, i8 0, i64 11104, i1 false) - %7 = bitcast %struct.S2760* %b1 to i8* - call void @llvm.memset.p0i8.i64(i8* align 32 %7, i8 0, i64 11104, i1 false) - %8 = bitcast %struct.S2760* %b2 to i8* - call void @llvm.memset.p0i8.i64(i8* align 32 %8, i8 0, i64 11104, i1 false) - %b = getelementptr inbounds %struct.S2760, %struct.S2760* %arg0, i32 0, i32 1 - %g = getelementptr inbounds %struct.anon, %struct.anon* %b, i32 0, i32 1 - %9 = load i64, i64* %g, align 8 - %10 = load i64, i64* getelementptr inbounds (%struct.S2760, %struct.S2760* @s2760, i32 0, i32 1, i32 1), align 8 - %cmp = icmp ne i64 %9, %10 + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %arg0, ptr align 16 %0, i64 11104, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 16 %arg2, ptr align 16 %1, i64 11104, i1 false) + store ptr %arg1, ptr %arg1.addr, align 8 + call void @llvm.memset.p0.i64(ptr align 32 %ret, i8 0, i64 11104, i1 false) + call void @llvm.memset.p0.i64(ptr align 32 %b1, i8 0, i64 11104, i1 false) + call void @llvm.memset.p0.i64(ptr align 32 %b2, i8 0, i64 11104, i1 false) + %b = getelementptr inbounds %struct.S2760, ptr %arg0, i32 0, i32 1 + %g = getelementptr inbounds %struct.anon, ptr %b, i32 0, i32 1 + %2 = load i64, ptr %g, align 8 + %3 = load i64, ptr getelementptr inbounds (%struct.S2760, ptr @s2760, i32 0, i32 1, i32 1), align 8 + %cmp = icmp ne i64 %2, %3 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry - %11 = load i32, i32* @fails, align 4 - %inc = add nsw i32 %11, 1 - store i32 %inc, i32* @fails, align 4 + %4 = load i32, ptr @fails, align 4 + %inc = add nsw i32 %4, 1 + store i32 %inc, ptr @fails, align 4 br label %if.end if.end: ; preds = %if.then, %entry - %12 = load i64, i64* getelementptr inbounds (%struct.S2760, %struct.S2760* @s2760, i32 0, i32 1, i32 1), align 8 - %b3 = getelementptr inbounds %struct.S2760, %struct.S2760* %ret, i32 0, i32 1 - %g4 = getelementptr inbounds %struct.anon, %struct.anon* %b3, i32 0, i32 1 - store i64 %12, i64* %g4, align 8 - %13 = bitcast %struct.S2760* %agg.result to i8* - %14 = bitcast %struct.S2760* %ret to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 32 %13, i8* align 32 %14, i64 11104, i1 false) + %5 = load i64, ptr getelementptr inbounds (%struct.S2760, ptr @s2760, i32 0, i32 1, i32 1), align 8 + %b3 = getelementptr inbounds %struct.S2760, ptr %ret, i32 0, i32 1 + %g4 = getelementptr inbounds %struct.anon, ptr %b3, i32 0, i32 1 + store i64 %5, ptr %g4, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr align 32 %agg.result, ptr align 32 %ret, i64 11104, i1 false) ret void } -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) +declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) -declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) +declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) Index: llvm/test/CodeGen/PowerPC/respect-rounding-mode.ll =================================================================== --- llvm/test/CodeGen/PowerPC/respect-rounding-mode.ll +++ llvm/test/CodeGen/PowerPC/respect-rounding-mode.ll @@ -15,16 +15,16 @@ ; RUN: -mcpu=pwr9 -ppc-asm-full-reg-names < %s | grep 'xvmuldp' | count 4 ; RUN: llc -verify-machineinstrs --mtriple powerpc64le-unknown-linux-gnu \ ; RUN: -mcpu=pwr10 -ppc-asm-full-reg-names < %s | grep 'xvmuldp' | count 4 -@IndirectCallPtr = dso_local local_unnamed_addr global void (...)* null, align 8 +@IndirectCallPtr = dso_local local_unnamed_addr global ptr null, align 8 define dso_local signext i32 @func1() local_unnamed_addr #0 { entry: - tail call void bitcast (void (...)* @directCall to void ()*)() #0 + tail call void @directCall() #0 %0 = tail call <2 x double> @llvm.experimental.constrained.rint.v2f64(<2 x double> , metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %vecext = extractelement <2 x double> %0, i32 0 %sub = tail call double @llvm.experimental.constrained.fsub.f64(double %vecext, double -9.900000e+01, metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %conv = tail call i32 @llvm.experimental.constrained.fptosi.i32.f64(double %sub, metadata !"fpexcept.ignore") #0 - tail call void bitcast (void (...)* @directCall to void ()*)() #0 + tail call void @directCall() #0 %1 = tail call <2 x double> @llvm.experimental.constrained.rint.v2f64(<2 x double> , metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %vecext3 = extractelement <2 x double> %1, i32 1 %cmp = tail call i1 @llvm.experimental.constrained.fcmp.f64(double %vecext3, double 9.900000e+01, metadata !"une", metadata !"fpexcept.ignore") #0 @@ -50,16 +50,16 @@ define dso_local signext i32 @func2() local_unnamed_addr #0 { entry: - %call = tail call <2 x double> bitcast (<2 x double> (...)* @getvector1 to <2 x double> ()*)() #0 - %call1 = tail call <2 x double> bitcast (<2 x double> (...)* @getvector2 to <2 x double> ()*)() #0 - tail call void bitcast (void (...)* @directCall to void ()*)() #0 + %call = tail call <2 x double> @getvector1() #0 + %call1 = tail call <2 x double> @getvector2() #0 + tail call void @directCall() #0 %mul = tail call <2 x double> @llvm.experimental.constrained.fmul.v2f64(<2 x double> %call, <2 x double> %call1, metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %vecext = extractelement <2 x double> %mul, i32 0 %cmp = tail call i1 @llvm.experimental.constrained.fcmp.f64(double %vecext, double 4.000000e+00, metadata !"oeq", metadata !"fpexcept.ignore") #0 br i1 %cmp, label %cleanup, label %if.end if.end: ; preds = %entry - tail call void bitcast (void (...)* @directCall to void ()*)() #0 + tail call void @directCall() #0 %mul10 = tail call <2 x double> @llvm.experimental.constrained.fmul.v2f64(<2 x double> %call, <2 x double> %call1, metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %0 = tail call i32 @llvm.ppc.vsx.xvcmpeqdp.p(i32 2, <2 x double> %mul, <2 x double> %mul10) #0 br label %cleanup @@ -79,13 +79,13 @@ define dso_local signext i32 @func3() local_unnamed_addr #0 { entry: - %0 = load void ()*, void ()** bitcast (void (...)** @IndirectCallPtr to void ()**), align 8 + %0 = load ptr, ptr @IndirectCallPtr, align 8 tail call void %0() #0 %1 = tail call <2 x double> @llvm.experimental.constrained.rint.v2f64(<2 x double> , metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %vecext = extractelement <2 x double> %1, i32 0 %sub = tail call double @llvm.experimental.constrained.fsub.f64(double %vecext, double -9.900000e+01, metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %conv = tail call i32 @llvm.experimental.constrained.fptosi.i32.f64(double %sub, metadata !"fpexcept.ignore") #0 - %2 = load void ()*, void ()** bitcast (void (...)** @IndirectCallPtr to void ()**), align 8 + %2 = load ptr, ptr @IndirectCallPtr, align 8 tail call void %2() #0 %3 = tail call <2 x double> @llvm.experimental.constrained.rint.v2f64(<2 x double> , metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %vecext4 = extractelement <2 x double> %3, i32 1 @@ -102,9 +102,9 @@ define dso_local signext i32 @func4() local_unnamed_addr #0 { entry: - %call = tail call <2 x double> bitcast (<2 x double> (...)* @getvector1 to <2 x double> ()*)() #0 - %call1 = tail call <2 x double> bitcast (<2 x double> (...)* @getvector2 to <2 x double> ()*)() #0 - %0 = load void ()*, void ()** bitcast (void (...)** @IndirectCallPtr to void ()**), align 8 + %call = tail call <2 x double> @getvector1() #0 + %call1 = tail call <2 x double> @getvector2() #0 + %0 = load ptr, ptr @IndirectCallPtr, align 8 tail call void %0() #0 %mul = tail call <2 x double> @llvm.experimental.constrained.fmul.v2f64(<2 x double> %call, <2 x double> %call1, metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %vecext = extractelement <2 x double> %mul, i32 0 @@ -112,7 +112,7 @@ br i1 %cmp, label %cleanup, label %if.end if.end: ; preds = %entry - %1 = load void ()*, void ()** bitcast (void (...)** @IndirectCallPtr to void ()**), align 8 + %1 = load ptr, ptr @IndirectCallPtr, align 8 tail call void %1() #0 %mul11 = tail call <2 x double> @llvm.experimental.constrained.fmul.v2f64(<2 x double> %call, <2 x double> %call1, metadata !"round.dynamic", metadata !"fpexcept.ignore") #0 %2 = tail call i32 @llvm.ppc.vsx.xvcmpeqdp.p(i32 2, <2 x double> %mul, <2 x double> %mul11) #0 Index: llvm/test/CodeGen/PowerPC/retaddr.ll =================================================================== --- llvm/test/CodeGen/PowerPC/retaddr.ll +++ llvm/test/CodeGen/PowerPC/retaddr.ll @@ -23,12 +23,12 @@ ; PPC64: mtlr 0 ; PPC64: blr -define void @foo(i8** %X) nounwind { +define void @foo(ptr %X) nounwind { entry: - %tmp = tail call i8* @llvm.returnaddress( i32 0 ) ; [#uses=1] - store i8* %tmp, i8** %X, align 4 + %tmp = tail call ptr @llvm.returnaddress( i32 0 ) ; [#uses=1] + store ptr %tmp, ptr %X, align 4 ret void } -declare i8* @llvm.returnaddress(i32) +declare ptr @llvm.returnaddress(i32) Index: llvm/test/CodeGen/PowerPC/retaddr2.ll =================================================================== --- llvm/test/CodeGen/PowerPC/retaddr2.ll +++ llvm/test/CodeGen/PowerPC/retaddr2.ll @@ -3,10 +3,10 @@ target triple = "powerpc64-unknown-linux-gnu" ; Function Attrs: nounwind readnone -define i8* @test1() #0 { +define ptr @test1() #0 { entry: - %0 = tail call i8* @llvm.returnaddress(i32 0) - ret i8* %0 + %0 = tail call ptr @llvm.returnaddress(i32 0) + ret ptr %0 } ; CHECK-LABEL: @test1 @@ -18,7 +18,7 @@ ; CHECK: blr ; Function Attrs: nounwind readnone -declare i8* @llvm.returnaddress(i32) #0 +declare ptr @llvm.returnaddress(i32) #0 attributes #0 = { nounwind readnone } Index: llvm/test/CodeGen/PowerPC/retaddr_multi_levels.ll =================================================================== --- llvm/test/CodeGen/PowerPC/retaddr_multi_levels.ll +++ llvm/test/CodeGen/PowerPC/retaddr_multi_levels.ll @@ -8,9 +8,9 @@ ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-aix \ ; RUN: -mcpu=pwr7 | FileCheck %s -check-prefix=CHECK-32B-BE -declare i8* @llvm.returnaddress(i32) nounwind readnone +declare ptr @llvm.returnaddress(i32) nounwind readnone -define i8* @test0() nounwind readnone { +define ptr @test0() nounwind readnone { ; CHECK-64B-LE-LABEL: test0: ; CHECK-64B-LE: # %bb.0: # %entry ; CHECK-64B-LE-NEXT: mflr 0 @@ -44,11 +44,11 @@ ; CHECK-32B-BE-NEXT: mtlr 0 ; CHECK-32B-BE-NEXT: blr entry: - %0 = tail call i8* @llvm.returnaddress(i32 0); - ret i8* %0 + %0 = tail call ptr @llvm.returnaddress(i32 0); + ret ptr %0 } -define i8* @test1() nounwind readnone { +define ptr @test1() nounwind readnone { ; CHECK-64B-LE-LABEL: test1: ; CHECK-64B-LE: # %bb.0: # %entry ; CHECK-64B-LE-NEXT: mflr 0 @@ -88,11 +88,11 @@ ; CHECK-32B-BE-NEXT: mtlr 0 ; CHECK-32B-BE-NEXT: blr entry: - %0 = tail call i8* @llvm.returnaddress(i32 1); - ret i8* %0 + %0 = tail call ptr @llvm.returnaddress(i32 1); + ret ptr %0 } -define i8* @test2() nounwind readnone { +define ptr @test2() nounwind readnone { ; CHECK-64B-LE-LABEL: test2: ; CHECK-64B-LE: # %bb.0: # %entry ; CHECK-64B-LE-NEXT: mflr 0 @@ -135,6 +135,6 @@ ; CHECK-32B-BE-NEXT: mtlr 0 ; CHECK-32B-BE-NEXT: blr entry: - %0 = tail call i8* @llvm.returnaddress(i32 2); - ret i8* %0 + %0 = tail call ptr @llvm.returnaddress(i32 2); + ret ptr %0 } Index: llvm/test/CodeGen/PowerPC/return-val-i128.ll =================================================================== --- llvm/test/CodeGen/PowerPC/return-val-i128.ll +++ llvm/test/CodeGen/PowerPC/return-val-i128.ll @@ -2,34 +2,34 @@ define i128 @__fixsfdi(float %a) { entry: - %a_addr = alloca float ; [#uses=4] - %retval = alloca i128, align 16 ; [#uses=2] - %tmp = alloca i128, align 16 ; [#uses=3] + %a_addr = alloca float ; [#uses=4] + %retval = alloca i128, align 16 ; [#uses=2] + %tmp = alloca i128, align 16 ; [#uses=3] %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store float %a, float* %a_addr - %tmp1 = load float, float* %a_addr, align 4 ; [#uses=1] + store float %a, ptr %a_addr + %tmp1 = load float, ptr %a_addr, align 4 ; [#uses=1] %tmp2 = fcmp olt float %tmp1, 0.000000e+00 ; [#uses=1] %tmp23 = zext i1 %tmp2 to i8 ; [#uses=1] %toBool = icmp ne i8 %tmp23, 0 ; [#uses=1] br i1 %toBool, label %bb, label %bb8 bb: ; preds = %entry - %tmp4 = load float, float* %a_addr, align 4 ; [#uses=1] + %tmp4 = load float, ptr %a_addr, align 4 ; [#uses=1] %tmp5 = fsub float -0.000000e+00, %tmp4 ; [#uses=1] %tmp6 = call i128 @__fixunssfDI( float %tmp5 ) nounwind ; [#uses=1] %tmp7 = sub i128 0, %tmp6 ; [#uses=1] - store i128 %tmp7, i128* %tmp, align 16 + store i128 %tmp7, ptr %tmp, align 16 br label %bb11 bb8: ; preds = %entry - %tmp9 = load float, float* %a_addr, align 4 ; [#uses=1] + %tmp9 = load float, ptr %a_addr, align 4 ; [#uses=1] %tmp10 = call i128 @__fixunssfDI( float %tmp9 ) nounwind ; [#uses=1] - store i128 %tmp10, i128* %tmp, align 16 + store i128 %tmp10, ptr %tmp, align 16 br label %bb11 bb11: ; preds = %bb8, %bb - %tmp12 = load i128, i128* %tmp, align 16 ; [#uses=1] - store i128 %tmp12, i128* %retval, align 16 + %tmp12 = load i128, ptr %tmp, align 16 ; [#uses=1] + store i128 %tmp12, ptr %retval, align 16 br label %return return: ; preds = %bb11 - %retval13 = load i128, i128* %retval ; [#uses=1] + %retval13 = load i128, ptr %retval ; [#uses=1] ret i128 %retval13 } Index: llvm/test/CodeGen/PowerPC/rlwimi-and-or-bits.ll =================================================================== --- llvm/test/CodeGen/PowerPC/rlwimi-and-or-bits.ll +++ llvm/test/CodeGen/PowerPC/rlwimi-and-or-bits.ll @@ -12,9 +12,9 @@ ; CHECK-NOT: rlwimi ; CHECK: andi - %0 = load i32, i32* @m, align 4 + %0 = load i32, ptr @m, align 4 %or = or i32 %0, 250 - store i32 %or, i32* @m, align 4 + store i32 %or, ptr @m, align 4 %and = and i32 %or, 249 %sub.i = sub i32 %and, 0 %sext = shl i32 %sub.i, 24 Index: llvm/test/CodeGen/PowerPC/rlwimi-and.ll =================================================================== --- llvm/test/CodeGen/PowerPC/rlwimi-and.ll +++ llvm/test/CodeGen/PowerPC/rlwimi-and.ll @@ -14,16 +14,16 @@ unreachable codeRepl17: ; preds = %codeRepl4 - %0 = load i8, i8* undef, align 2 + %0 = load i8, ptr undef, align 2 %1 = and i8 %0, 1 %not.tobool.i.i.i = icmp eq i8 %1, 0 %2 = select i1 %not.tobool.i.i.i, i16 0, i16 256 - %3 = load i8, i8* undef, align 1 + %3 = load i8, ptr undef, align 1 %4 = and i8 %3, 1 %not.tobool.i.1.i.i = icmp eq i8 %4, 0 %rvml38.sroa.1.1.insert.ext = select i1 %not.tobool.i.1.i.i, i16 0, i16 1 %rvml38.sroa.0.0.insert.insert = or i16 %rvml38.sroa.1.1.insert.ext, %2 - store i16 %rvml38.sroa.0.0.insert.insert, i16* undef, align 2 + store i16 %rvml38.sroa.0.0.insert.insert, ptr undef, align 2 unreachable ; CHECK: @test Index: llvm/test/CodeGen/PowerPC/rlwimi-commute.ll =================================================================== --- llvm/test/CodeGen/PowerPC/rlwimi-commute.ll +++ llvm/test/CodeGen/PowerPC/rlwimi-commute.ll @@ -3,25 +3,25 @@ ; Make sure there is no register-register copies here. -define void @test1(i32* %A, i32* %B, i32* %D, i32* %E) { - %A.upgrd.1 = load i32, i32* %A ; [#uses=2] - %B.upgrd.2 = load i32, i32* %B ; [#uses=1] +define void @test1(ptr %A, ptr %B, ptr %D, ptr %E) { + %A.upgrd.1 = load i32, ptr %A ; [#uses=2] + %B.upgrd.2 = load i32, ptr %B ; [#uses=1] %X = and i32 %A.upgrd.1, 15 ; [#uses=1] %Y = and i32 %B.upgrd.2, -16 ; [#uses=1] %Z = or i32 %X, %Y ; [#uses=1] - store i32 %Z, i32* %D - store i32 %A.upgrd.1, i32* %E + store i32 %Z, ptr %D + store i32 %A.upgrd.1, ptr %E ret void } -define void @test2(i32* %A, i32* %B, i32* %D, i32* %E) { - %A.upgrd.3 = load i32, i32* %A ; [#uses=1] - %B.upgrd.4 = load i32, i32* %B ; [#uses=2] +define void @test2(ptr %A, ptr %B, ptr %D, ptr %E) { + %A.upgrd.3 = load i32, ptr %A ; [#uses=1] + %B.upgrd.4 = load i32, ptr %B ; [#uses=2] %X = and i32 %A.upgrd.3, 15 ; [#uses=1] %Y = and i32 %B.upgrd.4, -16 ; [#uses=1] %Z = or i32 %X, %Y ; [#uses=1] - store i32 %Z, i32* %D - store i32 %B.upgrd.4, i32* %E + store i32 %Z, ptr %D + store i32 %B.upgrd.4, ptr %E ret void } Index: llvm/test/CodeGen/PowerPC/rlwimi-dyn-and.ll =================================================================== --- llvm/test/CodeGen/PowerPC/rlwimi-dyn-and.ll +++ llvm/test/CodeGen/PowerPC/rlwimi-dyn-and.ll @@ -4,13 +4,13 @@ define i32 @test1() #0 { entry: - %conv67.reload = load i32, i32* undef + %conv67.reload = load i32, ptr undef %const = bitcast i32 65535 to i32 br label %next next: %shl161 = shl nuw nsw i32 %conv67.reload, 15 - %0 = load i8, i8* undef, align 1 + %0 = load i8, ptr undef, align 1 %conv169 = zext i8 %0 to i32 %shl170 = shl nuw nsw i32 %conv169, 7 %const_mat = add i32 %const, -32767 @@ -25,13 +25,13 @@ define i32 @test2() #0 { entry: - %conv67.reload = load i32, i32* undef + %conv67.reload = load i32, ptr undef %const = bitcast i32 65535 to i32 br label %next next: %shl161 = shl nuw nsw i32 %conv67.reload, 15 - %0 = load i8, i8* undef, align 1 + %0 = load i8, ptr undef, align 1 %conv169 = zext i8 %0 to i32 %shl170 = shl nuw nsw i32 %conv169, 7 %shl161.masked = and i32 %shl161, 32768 Index: llvm/test/CodeGen/PowerPC/rlwimi-keep-rsh.ll =================================================================== --- llvm/test/CodeGen/PowerPC/rlwimi-keep-rsh.ll +++ llvm/test/CodeGen/PowerPC/rlwimi-keep-rsh.ll @@ -19,7 +19,7 @@ %tmp6 = and i32 %tmp2, %tmp5 %tmp7 = shl i32 %c, 8 %tmp8 = or i32 %tmp6, %tmp7 - store i32 %tmp8, i32* @foo, align 4 + store i32 %tmp8, ptr @foo, align 4 br label %return return: Index: llvm/test/CodeGen/PowerPC/rm-zext.ll =================================================================== --- llvm/test/CodeGen/PowerPC/rm-zext.ll +++ llvm/test/CodeGen/PowerPC/rm-zext.ll @@ -43,9 +43,9 @@ declare i32 @llvm.bswap.i32(i32) #0 ; Function Attrs: nounwind readonly -define zeroext i32 @bs32(i32* nocapture readonly %x) #1 { +define zeroext i32 @bs32(ptr nocapture readonly %x) #1 { entry: - %0 = load i32, i32* %x, align 4 + %0 = load i32, ptr %x, align 4 %1 = tail call i32 @llvm.bswap.i32(i32 %0) ret i32 %1 @@ -55,9 +55,9 @@ } ; Function Attrs: nounwind readonly -define zeroext i16 @bs16(i16* nocapture readonly %x) #1 { +define zeroext i16 @bs16(ptr nocapture readonly %x) #1 { entry: - %0 = load i16, i16* %x, align 2 + %0 = load i16, ptr %x, align 2 %1 = tail call i16 @llvm.bswap.i16(i16 %0) ret i16 %1 Index: llvm/test/CodeGen/PowerPC/rs-undef-use.ll =================================================================== --- llvm/test/CodeGen/PowerPC/rs-undef-use.ll +++ llvm/test/CodeGen/PowerPC/rs-undef-use.ll @@ -1,7 +1,7 @@ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 < %s target triple = "powerpc64-unknown-linux-gnu" -define void @autogen_SD156869(i8*, i64*) { +define void @autogen_SD156869(ptr, ptr) { BB: %A3 = alloca <2 x i1> %A2 = alloca <8 x i32> @@ -11,31 +11,28 @@ br i1 undef, label %CF, label %CF82.critedge CF82.critedge: ; preds = %CF - store i8 -59, i8* %0 + store i8 -59, ptr %0 br label %CF82 CF82: ; preds = %CF82, %CF82.critedge - %L17 = load i8, i8* %0 + %L17 = load i8, ptr %0 %E18 = extractelement <2 x i64> undef, i32 0 - %PC = bitcast <2 x i1>* %A3 to i64* br i1 undef, label %CF82, label %CF84.critedge CF84.critedge: ; preds = %CF82 - store i64 455385, i64* %PC + store i64 455385, ptr %A3 br label %CF84 CF84: ; preds = %CF84, %CF84.critedge - %L40 = load i64, i64* %PC - store i64 -1, i64* %PC + %L40 = load i64, ptr %A3 + store i64 -1, ptr %A3 %Sl46 = select i1 undef, i1 undef, i1 false br i1 %Sl46, label %CF84, label %CF85 CF85: ; preds = %CF84 - %L47 = load i64, i64* %PC - store i64 %E18, i64* %PC - %PC52 = bitcast <8 x i32>* %A2 to ppc_fp128* - store ppc_fp128 0xM4D436562A0416DE00000000000000000, ppc_fp128* %PC52 - %PC59 = bitcast i64* %1 to i8* + %L47 = load i64, ptr %A3 + store i64 %E18, ptr %A3 + store ppc_fp128 0xM4D436562A0416DE00000000000000000, ptr %A2 %Cmp61 = icmp slt i64 %L47, %L40 br i1 %Cmp61, label %CF, label %CF77 @@ -43,6 +40,6 @@ br i1 undef, label %CF77, label %CF81 CF81: ; preds = %CF77 - store i8 %L17, i8* %PC59 + store i8 %L17, ptr %1 ret void } Index: llvm/test/CodeGen/PowerPC/s000-alias-misched.ll =================================================================== --- llvm/test/CodeGen/PowerPC/s000-alias-misched.ll +++ llvm/test/CodeGen/PowerPC/s000-alias-misched.ll @@ -15,13 +15,13 @@ declare void @check(i32 signext) nounwind -declare signext i32 @printf(i8* nocapture, ...) nounwind +declare signext i32 @printf(ptr nocapture, ...) nounwind -declare signext i32 @init(i8*) nounwind +declare signext i32 @init(ptr) nounwind define signext i32 @s000() nounwind { entry: - %call = tail call signext i32 @init(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str1, i64 0, i64 0)) + %call = tail call signext i32 @init(ptr @.str1) %call1 = tail call i64 @clock() nounwind br label %for.cond2.preheader @@ -33,37 +33,29 @@ for.body4: ; preds = %for.body4, %for.cond2.preheader %indvars.iv = phi i64 [ 0, %for.cond2.preheader ], [ %indvars.iv.next.15, %for.body4 ] - %arrayidx = getelementptr inbounds [16000 x double], [16000 x double]* @Y, i64 0, i64 %indvars.iv - %arrayidx6 = getelementptr inbounds [16000 x double], [16000 x double]* @X, i64 0, i64 %indvars.iv - %0 = bitcast double* %arrayidx to <1 x double>* - %1 = load <1 x double>, <1 x double>* %0, align 32 - %add = fadd <1 x double> %1, - %2 = bitcast double* %arrayidx6 to <1 x double>* - store <1 x double> %add, <1 x double>* %2, align 32 + %arrayidx = getelementptr inbounds [16000 x double], ptr @Y, i64 0, i64 %indvars.iv + %arrayidx6 = getelementptr inbounds [16000 x double], ptr @X, i64 0, i64 %indvars.iv + %0 = load <1 x double>, ptr %arrayidx, align 32 + %add = fadd <1 x double> %0, + store <1 x double> %add, ptr %arrayidx6, align 32 %indvars.iv.next.322 = or i64 %indvars.iv, 4 - %arrayidx.4 = getelementptr inbounds [16000 x double], [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.322 - %arrayidx6.4 = getelementptr inbounds [16000 x double], [16000 x double]* @X, i64 0, i64 %indvars.iv.next.322 - %3 = bitcast double* %arrayidx.4 to <1 x double>* - %4 = load <1 x double>, <1 x double>* %3, align 32 - %add.4 = fadd <1 x double> %4, - %5 = bitcast double* %arrayidx6.4 to <1 x double>* - store <1 x double> %add.4, <1 x double>* %5, align 32 + %arrayidx.4 = getelementptr inbounds [16000 x double], ptr @Y, i64 0, i64 %indvars.iv.next.322 + %arrayidx6.4 = getelementptr inbounds [16000 x double], ptr @X, i64 0, i64 %indvars.iv.next.322 + %1 = load <1 x double>, ptr %arrayidx.4, align 32 + %add.4 = fadd <1 x double> %1, + store <1 x double> %add.4, ptr %arrayidx6.4, align 32 %indvars.iv.next.726 = or i64 %indvars.iv, 8 - %arrayidx.8 = getelementptr inbounds [16000 x double], [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.726 - %arrayidx6.8 = getelementptr inbounds [16000 x double], [16000 x double]* @X, i64 0, i64 %indvars.iv.next.726 - %6 = bitcast double* %arrayidx.8 to <1 x double>* - %7 = load <1 x double>, <1 x double>* %6, align 32 - %add.8 = fadd <1 x double> %7, - %8 = bitcast double* %arrayidx6.8 to <1 x double>* - store <1 x double> %add.8, <1 x double>* %8, align 32 + %arrayidx.8 = getelementptr inbounds [16000 x double], ptr @Y, i64 0, i64 %indvars.iv.next.726 + %arrayidx6.8 = getelementptr inbounds [16000 x double], ptr @X, i64 0, i64 %indvars.iv.next.726 + %2 = load <1 x double>, ptr %arrayidx.8, align 32 + %add.8 = fadd <1 x double> %2, + store <1 x double> %add.8, ptr %arrayidx6.8, align 32 %indvars.iv.next.1130 = or i64 %indvars.iv, 12 - %arrayidx.12 = getelementptr inbounds [16000 x double], [16000 x double]* @Y, i64 0, i64 %indvars.iv.next.1130 - %arrayidx6.12 = getelementptr inbounds [16000 x double], [16000 x double]* @X, i64 0, i64 %indvars.iv.next.1130 - %9 = bitcast double* %arrayidx.12 to <1 x double>* - %10 = load <1 x double>, <1 x double>* %9, align 32 - %add.12 = fadd <1 x double> %10, - %11 = bitcast double* %arrayidx6.12 to <1 x double>* - store <1 x double> %add.12, <1 x double>* %11, align 32 + %arrayidx.12 = getelementptr inbounds [16000 x double], ptr @Y, i64 0, i64 %indvars.iv.next.1130 + %arrayidx6.12 = getelementptr inbounds [16000 x double], ptr @X, i64 0, i64 %indvars.iv.next.1130 + %3 = load <1 x double>, ptr %arrayidx.12, align 32 + %add.12 = fadd <1 x double> %3, + store <1 x double> %add.12, ptr %arrayidx6.12, align 32 %indvars.iv.next.15 = add i64 %indvars.iv, 16 %lftr.wideiv.15 = trunc i64 %indvars.iv.next.15 to i32 %exitcond.15 = icmp eq i32 %lftr.wideiv.15, 16000 @@ -76,7 +68,7 @@ ; CHECK: bdnz for.end: ; preds = %for.body4 - %call7 = tail call signext i32 @dummy(double* getelementptr inbounds ([16000 x double], [16000 x double]* @X, i64 0, i64 0), double* getelementptr inbounds ([16000 x double], [16000 x double]* @Y, i64 0, i64 0), double* getelementptr inbounds ([16000 x double], [16000 x double]* @Z, i64 0, i64 0), double* getelementptr inbounds ([16000 x double], [16000 x double]* @U, i64 0, i64 0), double* getelementptr inbounds ([16000 x double], [16000 x double]* @V, i64 0, i64 0), [256 x double]* getelementptr inbounds ([256 x [256 x double]], [256 x [256 x double]]* @aa, i64 0, i64 0), [256 x double]* getelementptr inbounds ([256 x [256 x double]], [256 x [256 x double]]* @bb, i64 0, i64 0), [256 x double]* getelementptr inbounds ([256 x [256 x double]], [256 x [256 x double]]* @cc, i64 0, i64 0), double 0.000000e+00) nounwind + %call7 = tail call signext i32 @dummy(ptr @X, ptr @Y, ptr @Z, ptr @U, ptr @V, ptr @aa, ptr @bb, ptr @cc, double 0.000000e+00) nounwind %inc9 = add nsw i32 %nl.018, 1 %exitcond = icmp eq i32 %inc9, 400000 br i1 %exitcond, label %for.end10, label %for.cond2.preheader @@ -86,11 +78,11 @@ %sub = sub nsw i64 %call11, %call1 %conv = sitofp i64 %sub to double %div = fdiv double %conv, 1.000000e+06 - %call12 = tail call signext i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str137, i64 0, i64 0), double %div) nounwind + %call12 = tail call signext i32 (ptr, ...) @printf(ptr @.str137, double %div) nounwind tail call void @check(i32 signext 1) ret i32 0 } declare i64 @clock() nounwind -declare signext i32 @dummy(double*, double*, double*, double*, double*, [256 x double]*, [256 x double]*, [256 x double]*, double) +declare signext i32 @dummy(ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, double) Index: llvm/test/CodeGen/PowerPC/sat-register-clobber.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sat-register-clobber.ll +++ llvm/test/CodeGen/PowerPC/sat-register-clobber.ll @@ -2,7 +2,7 @@ ; RUN: llc -ppc-asm-full-reg-names -mtriple=powerpc64le-unknown-linux-gnu \ ; RUN: %s -o - -verify-machineinstrs -mcpu=pwr9 | FileCheck %s -define <4 x i32> @test(<4 x i32> %a, <4 x i32> %b, <4 x i32> %aa, <8 x i16>* %FromVSCR) { +define <4 x i32> @test(<4 x i32> %a, <4 x i32> %b, <4 x i32> %aa, ptr %FromVSCR) { ; CHECK-LABEL: test: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: vsumsws v5, v2, v3 @@ -24,7 +24,7 @@ %1 = tail call <8 x i16> @llvm.ppc.altivec.vpkswus(<4 x i32> %a, <4 x i32> %b) %2 = bitcast <8 x i16> %1 to <4 x i32> %3 = tail call <8 x i16> @llvm.ppc.altivec.mfvscr() - store <8 x i16> %3, <8 x i16>* %FromVSCR, align 16 + store <8 x i16> %3, ptr %FromVSCR, align 16 %4 = tail call <8 x i16> @llvm.ppc.altivec.vpkswus(<4 x i32> %b, <4 x i32> %aa) %5 = bitcast <8 x i16> %4 to <4 x i32> %add1 = add <4 x i32> %add, %0 Index: llvm/test/CodeGen/PowerPC/save-crbp-ppc32svr4.ll =================================================================== --- llvm/test/CodeGen/PowerPC/save-crbp-ppc32svr4.ll +++ llvm/test/CodeGen/PowerPC/save-crbp-ppc32svr4.ll @@ -22,7 +22,7 @@ define i64 @fred(double %a0) local_unnamed_addr #0 { b1: %v2 = alloca i64, align 128 - store i64 0, i64* %v2 + store i64 0, ptr %v2 %a1 = tail call double asm "fadd $0, $1, $2", "=f,f,f,~{cr2}"(double %a0, double %a0) %v3 = fcmp olt double %a1, 0x43E0000000000000 br i1 %v3, label %b4, label %b8 @@ -30,7 +30,7 @@ b4: ; preds = %b1 %v5 = fcmp olt double %a0, 0xC3E0000000000000 %v6 = fptosi double %a0 to i64 - store i64 %v6, i64* %v2 + store i64 %v6, ptr %v2 %v7 = select i1 %v5, i64 -9223372036854775808, i64 %v6 br label %b15 @@ -49,7 +49,7 @@ b15: ; preds = %b12, %b10, %b4 %v16 = phi i64 [ %v7, %b4 ], [ %v11, %b10 ], [ %v14, %b12 ] - %v17 = load i64, i64* %v2 + %v17 = load i64, ptr %v2 %v18 = add i64 %v17, %v16 ret i64 %v18 } Index: llvm/test/CodeGen/PowerPC/scalar-double-ldst.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar-double-ldst.ll +++ llvm/test/CodeGen/PowerPC/scalar-double-ldst.ll @@ -33,14 +33,14 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = uitofp i8 %1 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_uint8_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-POSTP8-LABEL: ld_align16_double_uint8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: addi r3, r3, 8 @@ -55,14 +55,14 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = uitofp i8 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_uint8_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -87,14 +87,14 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = uitofp i8 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_uint8_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -122,14 +122,14 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = uitofp i8 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_uint8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_uint8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-POSTP8-LABEL: ld_reg_double_uint8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: lxsibzx f0, r3, r4 @@ -143,8 +143,8 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = uitofp i8 %0 to double ret double %conv } @@ -168,8 +168,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = uitofp i8 %1 to double ret double %conv1 } @@ -192,8 +192,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = uitofp i8 %1 to double ret double %conv } @@ -218,8 +218,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = uitofp i8 %1 to double ret double %conv } @@ -244,8 +244,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = uitofp i8 %1 to double ret double %conv } @@ -284,8 +284,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = uitofp i8 %1 to double ret double %conv } @@ -326,8 +326,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = uitofp i8 %1 to double ret double %conv } @@ -366,8 +366,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = uitofp i8 %1 to double ret double %conv } @@ -388,7 +388,7 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = uitofp i8 %0 to double ret double %conv } @@ -418,7 +418,7 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = uitofp i8 %0 to double ret double %conv } @@ -452,7 +452,7 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = uitofp i8 %0 to double ret double %conv } @@ -474,14 +474,14 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = sitofp i8 %1 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_int8_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_int8_t(ptr nocapture readonly %ptr) { ; CHECK-POSTP8-LABEL: ld_align16_double_int8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: addi r3, r3, 8 @@ -498,14 +498,14 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = sitofp i8 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_int8_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -533,14 +533,14 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sitofp i8 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_int8_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -571,14 +571,14 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sitofp i8 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_int8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_int8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-POSTP8-LABEL: ld_reg_double_int8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: lxsibzx v2, r3, r4 @@ -594,8 +594,8 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = sitofp i8 %0 to double ret double %conv } @@ -621,8 +621,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = sitofp i8 %1 to double ret double %conv1 } @@ -647,8 +647,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sitofp i8 %1 to double ret double %conv } @@ -675,8 +675,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = sitofp i8 %1 to double ret double %conv } @@ -703,8 +703,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sitofp i8 %1 to double ret double %conv } @@ -746,8 +746,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = sitofp i8 %1 to double ret double %conv } @@ -791,8 +791,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sitofp i8 %1 to double ret double %conv } @@ -834,8 +834,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = sitofp i8 %1 to double ret double %conv } @@ -858,7 +858,7 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sitofp i8 %0 to double ret double %conv } @@ -891,7 +891,7 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sitofp i8 %0 to double ret double %conv } @@ -928,7 +928,7 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sitofp i8 %0 to double ret double %conv } @@ -948,14 +948,14 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = uitofp i16 %1 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_uint16_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-POSTP8-LABEL: ld_align16_double_uint16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: addi r3, r3, 8 @@ -970,15 +970,14 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = uitofp i16 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = uitofp i16 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_uint16_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -1003,15 +1002,14 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = uitofp i16 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = uitofp i16 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_uint16_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1039,15 +1037,14 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = uitofp i16 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = uitofp i16 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_uint16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_uint16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-POSTP8-LABEL: ld_reg_double_uint16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: lxsihzx f0, r3, r4 @@ -1061,10 +1058,9 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = uitofp i16 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = uitofp i16 %0 to double ret double %conv } @@ -1087,8 +1083,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = uitofp i16 %1 to double ret double %conv1 } @@ -1111,8 +1107,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = uitofp i16 %1 to double ret double %conv } @@ -1137,8 +1133,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = uitofp i16 %1 to double ret double %conv } @@ -1163,8 +1159,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = uitofp i16 %1 to double ret double %conv } @@ -1203,8 +1199,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = uitofp i16 %1 to double ret double %conv } @@ -1245,8 +1241,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = uitofp i16 %1 to double ret double %conv } @@ -1285,8 +1281,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = uitofp i16 %1 to double ret double %conv } @@ -1307,7 +1303,7 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = uitofp i16 %0 to double ret double %conv } @@ -1337,7 +1333,7 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = uitofp i16 %0 to double ret double %conv } @@ -1371,7 +1367,7 @@ ; CHECK-P8-NEXT: xscvuxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = uitofp i16 %0 to double ret double %conv } @@ -1392,14 +1388,14 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = sitofp i16 %1 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_int16_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_int16_t(ptr nocapture readonly %ptr) { ; CHECK-POSTP8-LABEL: ld_align16_double_int16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: addi r3, r3, 8 @@ -1415,15 +1411,14 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sitofp i16 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sitofp i16 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_int16_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -1450,15 +1445,14 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sitofp i16 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sitofp i16 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_int16_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1488,15 +1482,14 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sitofp i16 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sitofp i16 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_int16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_int16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-POSTP8-LABEL: ld_reg_double_int16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: lxsihzx v2, r3, r4 @@ -1511,10 +1504,9 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sitofp i16 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = sitofp i16 %0 to double ret double %conv } @@ -1538,8 +1530,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = sitofp i16 %1 to double ret double %conv1 } @@ -1563,8 +1555,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sitofp i16 %1 to double ret double %conv } @@ -1590,8 +1582,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = sitofp i16 %1 to double ret double %conv } @@ -1617,8 +1609,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sitofp i16 %1 to double ret double %conv } @@ -1659,8 +1651,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = sitofp i16 %1 to double ret double %conv } @@ -1703,8 +1695,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sitofp i16 %1 to double ret double %conv } @@ -1745,8 +1737,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = sitofp i16 %1 to double ret double %conv } @@ -1768,7 +1760,7 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sitofp i16 %0 to double ret double %conv } @@ -1800,7 +1792,7 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sitofp i16 %0 to double ret double %conv } @@ -1836,7 +1828,7 @@ ; CHECK-P8-NEXT: xscvsxddp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sitofp i16 %0 to double ret double %conv } @@ -1849,14 +1841,14 @@ ; CHECK-NEXT: xscvuxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = uitofp i32 %1 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_uint32_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_double_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: addi r3, r3, 8 @@ -1864,15 +1856,14 @@ ; CHECK-NEXT: xscvuxddp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = uitofp i32 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = uitofp i32 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_uint32_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -1888,15 +1879,14 @@ ; CHECK-PREP10-NEXT: xscvuxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = uitofp i32 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = uitofp i32 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_uint32_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1914,25 +1904,23 @@ ; CHECK-PREP10-NEXT: xscvuxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = uitofp i32 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = uitofp i32 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_uint32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_uint32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_double_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfiwzx f0, r3, r4 ; CHECK-NEXT: xscvuxddp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = uitofp i32 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = uitofp i32 %0 to double ret double %conv } @@ -1947,8 +1935,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = uitofp i32 %1 to double ret double %conv1 } @@ -1963,8 +1951,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = uitofp i32 %1 to double ret double %conv } @@ -1981,8 +1969,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = uitofp i32 %1 to double ret double %conv } @@ -1998,8 +1986,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = uitofp i32 %1 to double ret double %conv } @@ -2037,8 +2025,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = uitofp i32 %1 to double ret double %conv } @@ -2067,8 +2055,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = uitofp i32 %1 to double ret double %conv } @@ -2096,8 +2084,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = uitofp i32 %1 to double ret double %conv } @@ -2111,7 +2099,7 @@ ; CHECK-NEXT: xscvuxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = uitofp i32 %0 to double ret double %conv } @@ -2133,7 +2121,7 @@ ; CHECK-PREP10-NEXT: xscvuxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = uitofp i32 %0 to double ret double %conv } @@ -2157,7 +2145,7 @@ ; CHECK-PREP10-NEXT: xscvuxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = uitofp i32 %0 to double ret double %conv } @@ -2170,14 +2158,14 @@ ; CHECK-NEXT: xscvsxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = sitofp i32 %1 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_int32_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_int32_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_double_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: addi r3, r3, 8 @@ -2185,15 +2173,14 @@ ; CHECK-NEXT: xscvsxddp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sitofp i32 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sitofp i32 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_int32_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_int32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -2209,15 +2196,14 @@ ; CHECK-PREP10-NEXT: xscvsxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sitofp i32 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sitofp i32 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_int32_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_int32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2235,25 +2221,23 @@ ; CHECK-PREP10-NEXT: xscvsxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sitofp i32 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sitofp i32 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_int32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_int32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_double_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfiwax f0, r3, r4 ; CHECK-NEXT: xscvsxddp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sitofp i32 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = sitofp i32 %0 to double ret double %conv } @@ -2268,8 +2252,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = sitofp i32 %1 to double ret double %conv1 } @@ -2284,8 +2268,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sitofp i32 %1 to double ret double %conv } @@ -2302,8 +2286,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = sitofp i32 %1 to double ret double %conv } @@ -2319,8 +2303,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sitofp i32 %1 to double ret double %conv } @@ -2358,8 +2342,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = sitofp i32 %1 to double ret double %conv } @@ -2388,8 +2372,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sitofp i32 %1 to double ret double %conv } @@ -2417,8 +2401,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = sitofp i32 %1 to double ret double %conv } @@ -2432,7 +2416,7 @@ ; CHECK-NEXT: xscvsxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sitofp i32 %0 to double ret double %conv } @@ -2454,7 +2438,7 @@ ; CHECK-PREP10-NEXT: xscvsxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sitofp i32 %0 to double ret double %conv } @@ -2478,7 +2462,7 @@ ; CHECK-PREP10-NEXT: xscvsxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sitofp i32 %0 to double ret double %conv } @@ -2491,29 +2475,28 @@ ; CHECK-NEXT: xscvuxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_uint64_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_double_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) ; CHECK-NEXT: xscvuxddp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = uitofp i64 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = uitofp i64 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_uint64_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -2528,15 +2511,14 @@ ; CHECK-PREP10-NEXT: xscvuxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = uitofp i64 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = uitofp i64 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_uint64_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2554,25 +2536,23 @@ ; CHECK-PREP10-NEXT: xscvuxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = uitofp i64 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = uitofp i64 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_uint64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_uint64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_double_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 ; CHECK-NEXT: xscvuxddp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = uitofp i64 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = uitofp i64 %0 to double ret double %conv } @@ -2587,8 +2567,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = uitofp i64 %1 to double ret double %conv1 } @@ -2603,8 +2583,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to double ret double %conv } @@ -2620,8 +2600,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to double ret double %conv } @@ -2637,8 +2617,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to double ret double %conv } @@ -2675,8 +2655,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = uitofp i64 %1 to double ret double %conv } @@ -2705,8 +2685,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to double ret double %conv } @@ -2734,8 +2714,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = uitofp i64 %1 to double ret double %conv } @@ -2748,7 +2728,7 @@ ; CHECK-NEXT: xscvuxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = uitofp i64 %0 to double ret double %conv } @@ -2762,7 +2742,7 @@ ; CHECK-NEXT: xscvuxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = uitofp i64 %0 to double ret double %conv } @@ -2786,7 +2766,7 @@ ; CHECK-PREP10-NEXT: xscvuxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = uitofp i64 %0 to double ret double %conv } @@ -2799,29 +2779,28 @@ ; CHECK-NEXT: xscvsxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_int64_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_int64_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_double_int64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) ; CHECK-NEXT: xscvsxddp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = sitofp i64 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = sitofp i64 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_int64_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_int64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_int64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -2836,15 +2815,14 @@ ; CHECK-PREP10-NEXT: xscvsxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = sitofp i64 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = sitofp i64 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_int64_t(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_int64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_int64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2862,25 +2840,23 @@ ; CHECK-PREP10-NEXT: xscvsxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = sitofp i64 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = sitofp i64 %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_int64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_int64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_double_int64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 ; CHECK-NEXT: xscvsxddp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = sitofp i64 %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = sitofp i64 %0 to double ret double %conv } @@ -2895,8 +2871,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = sitofp i64 %1 to double ret double %conv1 } @@ -2911,8 +2887,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to double ret double %conv } @@ -2928,8 +2904,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to double ret double %conv } @@ -2945,8 +2921,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to double ret double %conv } @@ -2983,8 +2959,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = sitofp i64 %1 to double ret double %conv } @@ -3013,8 +2989,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to double ret double %conv } @@ -3042,8 +3018,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = sitofp i64 %1 to double ret double %conv } @@ -3056,7 +3032,7 @@ ; CHECK-NEXT: xscvsxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sitofp i64 %0 to double ret double %conv } @@ -3070,7 +3046,7 @@ ; CHECK-NEXT: xscvsxddp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = sitofp i64 %0 to double ret double %conv } @@ -3094,7 +3070,7 @@ ; CHECK-PREP10-NEXT: xscvsxddp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sitofp i64 %0 to double ret double %conv } @@ -3106,28 +3082,27 @@ ; CHECK-NEXT: lfs f1, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load float, ptr %0, align 4 %conv = fpext float %1 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_float(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_double_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f1, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fpext float %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + %conv = fpext float %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_float(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f1, 99999000(r3), 0 @@ -3140,15 +3115,14 @@ ; CHECK-PREP10-NEXT: lfsx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fpext float %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fpext float %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_float(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3164,24 +3138,22 @@ ; CHECK-PREP10-NEXT: lfsx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fpext float %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fpext float %0 to double ret double %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_double_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f1, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fpext float %1 to double + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + %conv = fpext float %0 to double ret double %conv } @@ -3195,8 +3167,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fpext float %1 to double ret double %conv1 } @@ -3210,8 +3182,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fpext float %1 to double ret double %conv } @@ -3226,8 +3198,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 %conv = fpext float %1 to double ret double %conv } @@ -3242,8 +3214,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fpext float %1 to double ret double %conv } @@ -3277,8 +3249,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 %conv = fpext float %1 to double ret double %conv } @@ -3305,8 +3277,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fpext float %1 to double ret double %conv } @@ -3332,8 +3304,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 %conv = fpext float %1 to double ret double %conv } @@ -3345,7 +3317,7 @@ ; CHECK-NEXT: lfs f1, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fpext float %0 to double ret double %conv } @@ -3358,7 +3330,7 @@ ; CHECK-NEXT: lfs f1, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = fpext float %0 to double ret double %conv } @@ -3380,7 +3352,7 @@ ; CHECK-PREP10-NEXT: lfs f1, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fpext float %0 to double ret double %conv } @@ -3392,26 +3364,25 @@ ; CHECK-NEXT: lfd f1, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 ret double %1 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align16_double_double(i8* nocapture readonly %ptr) { +define dso_local double @ld_align16_double_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_double_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f1, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - ret double %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + ret double %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align32_double_double(i8* nocapture readonly %ptr) { +define dso_local double @ld_align32_double_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_double_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f1, 99999000(r3), 0 @@ -3424,14 +3395,13 @@ ; CHECK-PREP10-NEXT: lfdx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - ret double %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + ret double %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_align64_double_double(i8* nocapture readonly %ptr) { +define dso_local double @ld_align64_double_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_double_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3447,23 +3417,21 @@ ; CHECK-PREP10-NEXT: lfdx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - ret double %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + ret double %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local double @ld_reg_double_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local double @ld_reg_double_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_double_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f1, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - ret double %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + ret double %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn @@ -3476,8 +3444,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 ret double %1 } @@ -3490,8 +3458,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 ret double %1 } @@ -3505,8 +3473,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 ret double %1 } @@ -3520,8 +3488,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 ret double %1 } @@ -3554,8 +3522,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 ret double %1 } @@ -3581,8 +3549,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 ret double %1 } @@ -3607,8 +3575,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 ret double %1 } @@ -3619,7 +3587,7 @@ ; CHECK-NEXT: lfd f1, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 ret double %0 } @@ -3631,7 +3599,7 @@ ; CHECK-NEXT: lfd f1, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 ret double %0 } @@ -3652,7 +3620,7 @@ ; CHECK-PREP10-NEXT: lfd f1, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret double %0 } @@ -3672,13 +3640,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i8 - %0 = inttoptr i64 %ptr to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + store i8 %conv, ptr %0, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_uint8_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_uint8_t(ptr nocapture %ptr, double %str) { ; CHECK-POSTP8-LABEL: st_align16_double_uint8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxws f0, f1 @@ -3694,13 +3662,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_uint8_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_uint8_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -3726,13 +3694,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_uint8_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_uint8_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -3761,13 +3729,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_uint8_t(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_uint8_t(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-POSTP8-LABEL: st_reg_double_uint8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxws f0, f1 @@ -3782,8 +3750,8 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i8 %conv, ptr %add.ptr, align 1 ret void } @@ -3807,8 +3775,8 @@ %conv = fptoui double %str to i8 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -3831,8 +3799,8 @@ entry: %conv = fptoui double %str to i8 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -3857,8 +3825,8 @@ %and = and i64 %ptr, -4096 %conv = fptoui double %str to i8 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 8 ret void } @@ -3883,8 +3851,8 @@ entry: %conv = fptoui double %str to i8 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -3923,8 +3891,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptoui double %str to i8 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 16 ret void } @@ -3965,8 +3933,8 @@ entry: %conv = fptoui double %str to i8 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4005,8 +3973,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptoui double %str to i8 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 4096 ret void } @@ -4027,7 +3995,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i8 - store i8 %conv, i8* inttoptr (i64 4080 to i8*), align 16 + store i8 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -4057,7 +4025,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i8 - store i8 %conv, i8* inttoptr (i64 9999900 to i8*), align 4 + store i8 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -4091,7 +4059,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i8 - store i8 %conv, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + store i8 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -4111,13 +4079,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i8 - %0 = inttoptr i64 %ptr to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + store i8 %conv, ptr %0, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_int8_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_int8_t(ptr nocapture %ptr, double %str) { ; CHECK-POSTP8-LABEL: st_align16_double_int8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxws f0, f1 @@ -4133,13 +4101,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_int8_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_int8_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -4165,13 +4133,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_int8_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_int8_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -4200,13 +4168,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_int8_t(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_int8_t(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-POSTP8-LABEL: st_reg_double_int8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxws f0, f1 @@ -4221,8 +4189,8 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i8 %conv, ptr %add.ptr, align 1 ret void } @@ -4246,8 +4214,8 @@ %conv = fptosi double %str to i8 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4270,8 +4238,8 @@ entry: %conv = fptosi double %str to i8 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4296,8 +4264,8 @@ %and = and i64 %ptr, -4096 %conv = fptosi double %str to i8 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 8 ret void } @@ -4322,8 +4290,8 @@ entry: %conv = fptosi double %str to i8 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4362,8 +4330,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptosi double %str to i8 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 16 ret void } @@ -4404,8 +4372,8 @@ entry: %conv = fptosi double %str to i8 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4444,8 +4412,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptosi double %str to i8 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 4096 ret void } @@ -4466,7 +4434,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i8 - store i8 %conv, i8* inttoptr (i64 4080 to i8*), align 16 + store i8 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -4496,7 +4464,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i8 - store i8 %conv, i8* inttoptr (i64 9999900 to i8*), align 4 + store i8 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -4530,7 +4498,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i8 - store i8 %conv, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + store i8 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -4550,13 +4518,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i16 - %0 = inttoptr i64 %ptr to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %conv, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_uint16_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_uint16_t(ptr nocapture %ptr, double %str) { ; CHECK-POSTP8-LABEL: st_align16_double_uint16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxws f0, f1 @@ -4572,14 +4540,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_uint16_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_uint16_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -4605,14 +4572,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_uint16_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_uint16_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -4641,14 +4607,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_uint16_t(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_uint16_t(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-POSTP8-LABEL: st_reg_double_uint16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxws f0, f1 @@ -4663,9 +4628,8 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %conv, ptr %add.ptr, align 2 ret void } @@ -4689,8 +4653,8 @@ %conv = fptoui double %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -4713,8 +4677,8 @@ entry: %conv = fptoui double %str to i16 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -4739,8 +4703,8 @@ %and = and i64 %ptr, -4096 %conv = fptoui double %str to i16 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 8 ret void } @@ -4765,8 +4729,8 @@ entry: %conv = fptoui double %str to i16 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -4805,8 +4769,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptoui double %str to i16 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 16 ret void } @@ -4847,8 +4811,8 @@ entry: %conv = fptoui double %str to i16 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -4887,8 +4851,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptoui double %str to i16 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 4096 ret void } @@ -4909,7 +4873,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i16 - store i16 %conv, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -4939,7 +4903,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i16 - store i16 %conv, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -4973,7 +4937,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i16 - store i16 %conv, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -4993,13 +4957,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i16 - %0 = inttoptr i64 %ptr to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %conv, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_int16_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_int16_t(ptr nocapture %ptr, double %str) { ; CHECK-POSTP8-LABEL: st_align16_double_int16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxws f0, f1 @@ -5015,14 +4979,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_int16_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_int16_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -5048,14 +5011,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_int16_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_int16_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -5084,14 +5046,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_int16_t(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_int16_t(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-POSTP8-LABEL: st_reg_double_int16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxws f0, f1 @@ -5106,9 +5067,8 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %conv, ptr %add.ptr, align 2 ret void } @@ -5132,8 +5092,8 @@ %conv = fptosi double %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5156,8 +5116,8 @@ entry: %conv = fptosi double %str to i16 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5182,8 +5142,8 @@ %and = and i64 %ptr, -4096 %conv = fptosi double %str to i16 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 8 ret void } @@ -5208,8 +5168,8 @@ entry: %conv = fptosi double %str to i16 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5248,8 +5208,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptosi double %str to i16 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 16 ret void } @@ -5290,8 +5250,8 @@ entry: %conv = fptosi double %str to i16 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5330,8 +5290,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptosi double %str to i16 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 4096 ret void } @@ -5352,7 +5312,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i16 - store i16 %conv, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5382,7 +5342,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i16 - store i16 %conv, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5416,7 +5376,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i16 - store i16 %conv, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5429,13 +5389,13 @@ ; CHECK-NEXT: blr entry: %conv = fptoui double %str to i32 - %0 = inttoptr i64 %ptr to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_uint32_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_uint32_t(ptr nocapture %ptr, double %str) { ; CHECK-LABEL: st_align16_double_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpuxws f0, f1 @@ -5444,14 +5404,13 @@ ; CHECK-NEXT: blr entry: %conv = fptoui double %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_uint32_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_uint32_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -5468,14 +5427,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui double %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_uint32_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_uint32_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -5494,14 +5452,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui double %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_uint32_t(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_uint32_t(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-LABEL: st_reg_double_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpuxws f0, f1 @@ -5509,9 +5466,8 @@ ; CHECK-NEXT: blr entry: %conv = fptoui double %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %conv, ptr %add.ptr, align 4 ret void } @@ -5527,8 +5483,8 @@ %conv = fptoui double %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5543,8 +5499,8 @@ entry: %conv = fptoui double %str to i32 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5561,8 +5517,8 @@ %and = and i64 %ptr, -4096 %conv = fptoui double %str to i32 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 8 ret void } @@ -5578,8 +5534,8 @@ entry: %conv = fptoui double %str to i32 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5617,8 +5573,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptoui double %str to i32 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 16 ret void } @@ -5658,8 +5614,8 @@ entry: %conv = fptoui double %str to i32 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5687,8 +5643,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptoui double %str to i32 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4096 ret void } @@ -5702,7 +5658,7 @@ ; CHECK-NEXT: blr entry: %conv = fptoui double %str to i32 - store i32 %conv, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5724,7 +5680,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui double %str to i32 - store i32 %conv, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5748,7 +5704,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui double %str to i32 - store i32 %conv, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5761,13 +5717,13 @@ ; CHECK-NEXT: blr entry: %conv = fptosi double %str to i32 - %0 = inttoptr i64 %ptr to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_int32_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_int32_t(ptr nocapture %ptr, double %str) { ; CHECK-LABEL: st_align16_double_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpsxws f0, f1 @@ -5776,14 +5732,13 @@ ; CHECK-NEXT: blr entry: %conv = fptosi double %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_int32_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_int32_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -5800,14 +5755,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi double %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_int32_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_int32_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -5826,14 +5780,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi double %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_int32_t(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_int32_t(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-LABEL: st_reg_double_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpsxws f0, f1 @@ -5841,9 +5794,8 @@ ; CHECK-NEXT: blr entry: %conv = fptosi double %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %conv, ptr %add.ptr, align 4 ret void } @@ -5859,8 +5811,8 @@ %conv = fptosi double %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5875,8 +5827,8 @@ entry: %conv = fptosi double %str to i32 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5893,8 +5845,8 @@ %and = and i64 %ptr, -4096 %conv = fptosi double %str to i32 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 8 ret void } @@ -5910,8 +5862,8 @@ entry: %conv = fptosi double %str to i32 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5949,8 +5901,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptosi double %str to i32 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 16 ret void } @@ -5990,8 +5942,8 @@ entry: %conv = fptosi double %str to i32 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6019,8 +5971,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptosi double %str to i32 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4096 ret void } @@ -6034,7 +5986,7 @@ ; CHECK-NEXT: blr entry: %conv = fptosi double %str to i32 - store i32 %conv, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6056,7 +6008,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi double %str to i32 - store i32 %conv, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -6080,7 +6032,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi double %str to i32 - store i32 %conv, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6099,13 +6051,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_uint64_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_uint64_t(ptr nocapture %ptr, double %str) { ; CHECK-POSTP8-LABEL: st_align16_double_uint64_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxds v2, f1 @@ -6120,14 +6072,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_uint64_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_uint64_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxds v2, f1 @@ -6143,14 +6094,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui double %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_uint64_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_uint64_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxds f0, f1 @@ -6169,14 +6119,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui double %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_uint64_t(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_uint64_t(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-LABEL: st_reg_double_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpuxds f0, f1 @@ -6184,9 +6133,8 @@ ; CHECK-NEXT: blr entry: %conv = fptoui double %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -6209,8 +6157,8 @@ %conv = fptoui double %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6232,8 +6180,8 @@ entry: %conv = fptoui double %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6257,8 +6205,8 @@ %and = and i64 %ptr, -4096 %conv = fptoui double %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6282,8 +6230,8 @@ entry: %conv = fptoui double %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6320,8 +6268,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptoui double %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -6361,8 +6309,8 @@ entry: %conv = fptoui double %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6390,8 +6338,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptoui double %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -6411,7 +6359,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6433,7 +6381,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -6466,7 +6414,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui double %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6485,13 +6433,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_int64_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_int64_t(ptr nocapture %ptr, double %str) { ; CHECK-POSTP8-LABEL: st_align16_double_int64_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxds v2, f1 @@ -6506,14 +6454,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_int64_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_int64_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_int64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxds v2, f1 @@ -6529,14 +6476,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi double %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_int64_t(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_int64_t(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_int64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxds f0, f1 @@ -6555,14 +6501,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi double %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_int64_t(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_int64_t(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-LABEL: st_reg_double_int64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpsxds f0, f1 @@ -6570,9 +6515,8 @@ ; CHECK-NEXT: blr entry: %conv = fptosi double %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -6595,8 +6539,8 @@ %conv = fptosi double %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6618,8 +6562,8 @@ entry: %conv = fptosi double %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6643,8 +6587,8 @@ %and = and i64 %ptr, -4096 %conv = fptosi double %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6668,8 +6612,8 @@ entry: %conv = fptosi double %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6706,8 +6650,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptosi double %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -6747,8 +6691,8 @@ entry: %conv = fptosi double %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6776,8 +6720,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptosi double %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -6797,7 +6741,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6819,7 +6763,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -6852,7 +6796,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi double %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6865,13 +6809,13 @@ ; CHECK-NEXT: blr entry: %conv = fptrunc double %str to float - %0 = inttoptr i64 %ptr to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_float(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_float(ptr nocapture %ptr, double %str) { ; CHECK-LABEL: st_align16_double_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xsrsp f0, f1 @@ -6879,14 +6823,13 @@ ; CHECK-NEXT: blr entry: %conv = fptrunc double %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_float(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_float(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xsrsp f0, f1 @@ -6902,14 +6845,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptrunc double %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_float(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_float(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xsrsp f0, f1 @@ -6928,14 +6870,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptrunc double %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_float(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_float(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-LABEL: st_reg_double_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xsrsp f0, f1 @@ -6943,9 +6884,8 @@ ; CHECK-NEXT: blr entry: %conv = fptrunc double %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %conv, ptr %add.ptr, align 4 ret void } @@ -6961,8 +6901,8 @@ %conv = fptrunc double %str to float %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6977,8 +6917,8 @@ entry: %conv = fptrunc double %str to float %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6994,8 +6934,8 @@ %and = and i64 %ptr, -4096 %conv = fptrunc double %str to float %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 8 ret void } @@ -7011,8 +6951,8 @@ entry: %conv = fptrunc double %str to float %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7049,8 +6989,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptrunc double %str to float %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 16 ret void } @@ -7090,8 +7030,8 @@ entry: %conv = fptrunc double %str to float %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7119,8 +7059,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptrunc double %str to float %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4096 ret void } @@ -7133,7 +7073,7 @@ ; CHECK-NEXT: blr entry: %conv = fptrunc double %str to float - store float %conv, float* inttoptr (i64 4080 to float*), align 16 + store float %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7147,7 +7087,7 @@ ; CHECK-NEXT: blr entry: %conv = fptrunc double %str to float - store float %conv, float* inttoptr (i64 9999900 to float*), align 4 + store float %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -7171,7 +7111,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptrunc double %str to float - store float %conv, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7182,26 +7122,25 @@ ; CHECK-NEXT: stfd f1, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - store double %str, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %str, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_double_double(i8* nocapture %ptr, double %str) { +define dso_local void @st_align16_double_double(ptr nocapture %ptr, double %str) { ; CHECK-LABEL: st_align16_double_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stfd f1, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %str, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %str, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_double_double(i8* nocapture %ptr, double %str) { +define dso_local void @st_align32_double_double(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align32_double_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstfd f1, 99999000(r3), 0 @@ -7214,14 +7153,13 @@ ; CHECK-PREP10-NEXT: stfdx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %str, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %str, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_double_double(i8* nocapture %ptr, double %str) { +define dso_local void @st_align64_double_double(ptr nocapture %ptr, double %str) { ; CHECK-P10-LABEL: st_align64_double_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -7237,22 +7175,20 @@ ; CHECK-PREP10-NEXT: stfdx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %str, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %str, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_double_double(i8* nocapture %ptr, i64 %off, double %str) { +define dso_local void @st_reg_double_double(ptr nocapture %ptr, i64 %off, double %str) { ; CHECK-LABEL: st_reg_double_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stfdx f1, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %str, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %str, ptr %add.ptr, align 8 ret void } @@ -7266,8 +7202,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - store double %str, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %str, ptr %0, align 8 ret void } @@ -7280,8 +7216,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %str, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %str, ptr %0, align 8 ret void } @@ -7295,8 +7231,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %str, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %str, ptr %0, align 8 ret void } @@ -7310,8 +7246,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %str, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %str, ptr %0, align 8 ret void } @@ -7344,8 +7280,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %str, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %str, ptr %0, align 16 ret void } @@ -7371,8 +7307,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %str, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %str, ptr %0, align 8 ret void } @@ -7397,8 +7333,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %str, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %str, ptr %0, align 4096 ret void } @@ -7409,7 +7345,7 @@ ; CHECK-NEXT: stfd f1, 4080(0) ; CHECK-NEXT: blr entry: - store double %str, double* inttoptr (i64 4080 to double*), align 16 + store double %str, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7421,7 +7357,7 @@ ; CHECK-NEXT: stfd f1, -27108(r3) ; CHECK-NEXT: blr entry: - store double %str, double* inttoptr (i64 9999900 to double*), align 8 + store double %str, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -7442,6 +7378,6 @@ ; CHECK-PREP10-NEXT: stfd f1, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - store double %str, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %str, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } Index: llvm/test/CodeGen/PowerPC/scalar-float-ldst.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar-float-ldst.ll +++ llvm/test/CodeGen/PowerPC/scalar-float-ldst.ll @@ -33,14 +33,14 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = uitofp i8 %1 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_uint8_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-POSTP8-LABEL: ld_align16_float_uint8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: addi r3, r3, 8 @@ -55,14 +55,14 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = uitofp i8 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_uint8_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -87,14 +87,14 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = uitofp i8 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_uint8_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -122,14 +122,14 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = uitofp i8 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_uint8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_uint8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-POSTP8-LABEL: ld_reg_float_uint8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: lxsibzx f0, r3, r4 @@ -143,8 +143,8 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = uitofp i8 %0 to float ret float %conv } @@ -168,8 +168,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = uitofp i8 %1 to float ret float %conv1 } @@ -192,8 +192,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = uitofp i8 %1 to float ret float %conv } @@ -218,8 +218,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = uitofp i8 %1 to float ret float %conv } @@ -244,8 +244,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = uitofp i8 %1 to float ret float %conv } @@ -284,8 +284,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = uitofp i8 %1 to float ret float %conv } @@ -326,8 +326,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = uitofp i8 %1 to float ret float %conv } @@ -366,8 +366,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = uitofp i8 %1 to float ret float %conv } @@ -388,7 +388,7 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = uitofp i8 %0 to float ret float %conv } @@ -418,7 +418,7 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = uitofp i8 %0 to float ret float %conv } @@ -452,7 +452,7 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = uitofp i8 %0 to float ret float %conv } @@ -474,14 +474,14 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = sitofp i8 %1 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_int8_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_int8_t(ptr nocapture readonly %ptr) { ; CHECK-POSTP8-LABEL: ld_align16_float_int8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: addi r3, r3, 8 @@ -498,14 +498,14 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = sitofp i8 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_int8_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -533,14 +533,14 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sitofp i8 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_int8_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -571,14 +571,14 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sitofp i8 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_int8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_int8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-POSTP8-LABEL: ld_reg_float_int8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: lxsibzx v2, r3, r4 @@ -594,8 +594,8 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = sitofp i8 %0 to float ret float %conv } @@ -621,8 +621,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = sitofp i8 %1 to float ret float %conv1 } @@ -647,8 +647,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sitofp i8 %1 to float ret float %conv } @@ -675,8 +675,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = sitofp i8 %1 to float ret float %conv } @@ -703,8 +703,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sitofp i8 %1 to float ret float %conv } @@ -746,8 +746,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = sitofp i8 %1 to float ret float %conv } @@ -791,8 +791,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sitofp i8 %1 to float ret float %conv } @@ -834,8 +834,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = sitofp i8 %1 to float ret float %conv } @@ -858,7 +858,7 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sitofp i8 %0 to float ret float %conv } @@ -891,7 +891,7 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sitofp i8 %0 to float ret float %conv } @@ -928,7 +928,7 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sitofp i8 %0 to float ret float %conv } @@ -948,14 +948,14 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = uitofp i16 %1 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_uint16_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-POSTP8-LABEL: ld_align16_float_uint16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: addi r3, r3, 8 @@ -970,15 +970,14 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = uitofp i16 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = uitofp i16 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_uint16_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -1003,15 +1002,14 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = uitofp i16 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = uitofp i16 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_uint16_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1039,15 +1037,14 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = uitofp i16 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = uitofp i16 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_uint16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_uint16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-POSTP8-LABEL: ld_reg_float_uint16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: lxsihzx f0, r3, r4 @@ -1061,10 +1058,9 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = uitofp i16 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = uitofp i16 %0 to float ret float %conv } @@ -1087,8 +1083,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = uitofp i16 %1 to float ret float %conv1 } @@ -1111,8 +1107,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = uitofp i16 %1 to float ret float %conv } @@ -1137,8 +1133,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = uitofp i16 %1 to float ret float %conv } @@ -1163,8 +1159,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = uitofp i16 %1 to float ret float %conv } @@ -1203,8 +1199,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = uitofp i16 %1 to float ret float %conv } @@ -1245,8 +1241,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = uitofp i16 %1 to float ret float %conv } @@ -1285,8 +1281,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = uitofp i16 %1 to float ret float %conv } @@ -1307,7 +1303,7 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = uitofp i16 %0 to float ret float %conv } @@ -1337,7 +1333,7 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = uitofp i16 %0 to float ret float %conv } @@ -1371,7 +1367,7 @@ ; CHECK-P8-NEXT: xscvuxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = uitofp i16 %0 to float ret float %conv } @@ -1392,14 +1388,14 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = sitofp i16 %1 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_int16_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_int16_t(ptr nocapture readonly %ptr) { ; CHECK-POSTP8-LABEL: ld_align16_float_int16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: addi r3, r3, 8 @@ -1415,15 +1411,14 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sitofp i16 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sitofp i16 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_int16_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -1450,15 +1445,14 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sitofp i16 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sitofp i16 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_int16_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1488,15 +1482,14 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sitofp i16 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sitofp i16 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_int16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_int16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-POSTP8-LABEL: ld_reg_float_int16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: lxsihzx v2, r3, r4 @@ -1511,10 +1504,9 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sitofp i16 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = sitofp i16 %0 to float ret float %conv } @@ -1538,8 +1530,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = sitofp i16 %1 to float ret float %conv1 } @@ -1563,8 +1555,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sitofp i16 %1 to float ret float %conv } @@ -1590,8 +1582,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = sitofp i16 %1 to float ret float %conv } @@ -1617,8 +1609,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sitofp i16 %1 to float ret float %conv } @@ -1659,8 +1651,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = sitofp i16 %1 to float ret float %conv } @@ -1703,8 +1695,8 @@ ; CHECK-P8-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sitofp i16 %1 to float ret float %conv } @@ -1745,8 +1737,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = sitofp i16 %1 to float ret float %conv } @@ -1768,7 +1760,7 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sitofp i16 %0 to float ret float %conv } @@ -1800,7 +1792,7 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sitofp i16 %0 to float ret float %conv } @@ -1836,7 +1828,7 @@ ; CHECK-P8-NEXT: xscvsxdsp f1, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sitofp i16 %0 to float ret float %conv } @@ -1849,14 +1841,14 @@ ; CHECK-NEXT: xscvuxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = uitofp i32 %1 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_uint32_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_float_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: addi r3, r3, 8 @@ -1864,15 +1856,14 @@ ; CHECK-NEXT: xscvuxdsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = uitofp i32 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = uitofp i32 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_uint32_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -1888,15 +1879,14 @@ ; CHECK-PREP10-NEXT: xscvuxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = uitofp i32 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = uitofp i32 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_uint32_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1914,25 +1904,23 @@ ; CHECK-PREP10-NEXT: xscvuxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = uitofp i32 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = uitofp i32 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_uint32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_uint32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_float_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfiwzx f0, r3, r4 ; CHECK-NEXT: xscvuxdsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = uitofp i32 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = uitofp i32 %0 to float ret float %conv } @@ -1947,8 +1935,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = uitofp i32 %1 to float ret float %conv1 } @@ -1963,8 +1951,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = uitofp i32 %1 to float ret float %conv } @@ -1981,8 +1969,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = uitofp i32 %1 to float ret float %conv } @@ -1998,8 +1986,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = uitofp i32 %1 to float ret float %conv } @@ -2037,8 +2025,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = uitofp i32 %1 to float ret float %conv } @@ -2067,8 +2055,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = uitofp i32 %1 to float ret float %conv } @@ -2096,8 +2084,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = uitofp i32 %1 to float ret float %conv } @@ -2111,7 +2099,7 @@ ; CHECK-NEXT: xscvuxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = uitofp i32 %0 to float ret float %conv } @@ -2133,7 +2121,7 @@ ; CHECK-PREP10-NEXT: xscvuxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = uitofp i32 %0 to float ret float %conv } @@ -2157,7 +2145,7 @@ ; CHECK-PREP10-NEXT: xscvuxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = uitofp i32 %0 to float ret float %conv } @@ -2170,14 +2158,14 @@ ; CHECK-NEXT: xscvsxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = sitofp i32 %1 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_int32_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_int32_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_float_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: addi r3, r3, 8 @@ -2185,15 +2173,14 @@ ; CHECK-NEXT: xscvsxdsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sitofp i32 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sitofp i32 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_int32_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_int32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 99999000 @@ -2209,15 +2196,14 @@ ; CHECK-PREP10-NEXT: xscvsxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sitofp i32 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sitofp i32 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_int32_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_int32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2235,25 +2221,23 @@ ; CHECK-PREP10-NEXT: xscvsxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sitofp i32 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sitofp i32 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_int32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_int32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_float_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfiwax f0, r3, r4 ; CHECK-NEXT: xscvsxdsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sitofp i32 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = sitofp i32 %0 to float ret float %conv } @@ -2268,8 +2252,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = sitofp i32 %1 to float ret float %conv1 } @@ -2284,8 +2268,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sitofp i32 %1 to float ret float %conv } @@ -2302,8 +2286,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = sitofp i32 %1 to float ret float %conv } @@ -2319,8 +2303,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sitofp i32 %1 to float ret float %conv } @@ -2358,8 +2342,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = sitofp i32 %1 to float ret float %conv } @@ -2388,8 +2372,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sitofp i32 %1 to float ret float %conv } @@ -2417,8 +2401,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = sitofp i32 %1 to float ret float %conv } @@ -2432,7 +2416,7 @@ ; CHECK-NEXT: xscvsxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sitofp i32 %0 to float ret float %conv } @@ -2454,7 +2438,7 @@ ; CHECK-PREP10-NEXT: xscvsxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sitofp i32 %0 to float ret float %conv } @@ -2478,7 +2462,7 @@ ; CHECK-PREP10-NEXT: xscvsxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sitofp i32 %0 to float ret float %conv } @@ -2491,29 +2475,28 @@ ; CHECK-NEXT: xscvuxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_uint64_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_float_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) ; CHECK-NEXT: xscvuxdsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = uitofp i64 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = uitofp i64 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_uint64_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -2528,15 +2511,14 @@ ; CHECK-PREP10-NEXT: xscvuxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = uitofp i64 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = uitofp i64 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_uint64_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2554,25 +2536,23 @@ ; CHECK-PREP10-NEXT: xscvuxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = uitofp i64 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = uitofp i64 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_uint64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_uint64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_float_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 ; CHECK-NEXT: xscvuxdsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = uitofp i64 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = uitofp i64 %0 to float ret float %conv } @@ -2587,8 +2567,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = uitofp i64 %1 to float ret float %conv1 } @@ -2603,8 +2583,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to float ret float %conv } @@ -2620,8 +2600,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to float ret float %conv } @@ -2637,8 +2617,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to float ret float %conv } @@ -2675,8 +2655,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = uitofp i64 %1 to float ret float %conv } @@ -2705,8 +2685,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = uitofp i64 %1 to float ret float %conv } @@ -2734,8 +2714,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = uitofp i64 %1 to float ret float %conv } @@ -2748,7 +2728,7 @@ ; CHECK-NEXT: xscvuxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = uitofp i64 %0 to float ret float %conv } @@ -2762,7 +2742,7 @@ ; CHECK-NEXT: xscvuxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = uitofp i64 %0 to float ret float %conv } @@ -2786,7 +2766,7 @@ ; CHECK-PREP10-NEXT: xscvuxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = uitofp i64 %0 to float ret float %conv } @@ -2799,29 +2779,28 @@ ; CHECK-NEXT: xscvsxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_int64_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_int64_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_float_int64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) ; CHECK-NEXT: xscvsxdsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = sitofp i64 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = sitofp i64 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_int64_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_int64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_int64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -2836,15 +2815,14 @@ ; CHECK-PREP10-NEXT: xscvsxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = sitofp i64 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = sitofp i64 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_int64_t(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_int64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_int64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2862,25 +2840,23 @@ ; CHECK-PREP10-NEXT: xscvsxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = sitofp i64 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = sitofp i64 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_int64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_int64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_float_int64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 ; CHECK-NEXT: xscvsxdsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = sitofp i64 %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = sitofp i64 %0 to float ret float %conv } @@ -2895,8 +2871,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = sitofp i64 %1 to float ret float %conv1 } @@ -2911,8 +2887,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to float ret float %conv } @@ -2928,8 +2904,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to float ret float %conv } @@ -2945,8 +2921,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to float ret float %conv } @@ -2983,8 +2959,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = sitofp i64 %1 to float ret float %conv } @@ -3013,8 +2989,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = sitofp i64 %1 to float ret float %conv } @@ -3042,8 +3018,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = sitofp i64 %1 to float ret float %conv } @@ -3056,7 +3032,7 @@ ; CHECK-NEXT: xscvsxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sitofp i64 %0 to float ret float %conv } @@ -3070,7 +3046,7 @@ ; CHECK-NEXT: xscvsxdsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = sitofp i64 %0 to float ret float %conv } @@ -3094,7 +3070,7 @@ ; CHECK-PREP10-NEXT: xscvsxdsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sitofp i64 %0 to float ret float %conv } @@ -3106,26 +3082,25 @@ ; CHECK-NEXT: lfs f1, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load float, ptr %0, align 4 ret float %1 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_float(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_float_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f1, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - ret float %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + ret float %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_float(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f1, 99999000(r3), 0 @@ -3138,14 +3113,13 @@ ; CHECK-PREP10-NEXT: lfsx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - ret float %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + ret float %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_float(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3161,23 +3135,21 @@ ; CHECK-PREP10-NEXT: lfsx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - ret float %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + ret float %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_float_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f1, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - ret float %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + ret float %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn @@ -3190,8 +3162,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 ret float %1 } @@ -3204,8 +3176,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 ret float %1 } @@ -3219,8 +3191,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 ret float %1 } @@ -3234,8 +3206,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 ret float %1 } @@ -3268,8 +3240,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 ret float %1 } @@ -3295,8 +3267,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 ret float %1 } @@ -3321,8 +3293,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 ret float %1 } @@ -3333,7 +3305,7 @@ ; CHECK-NEXT: lfs f1, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 ret float %0 } @@ -3345,7 +3317,7 @@ ; CHECK-NEXT: lfs f1, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 ret float %0 } @@ -3366,7 +3338,7 @@ ; CHECK-PREP10-NEXT: lfs f1, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret float %0 } @@ -3378,29 +3350,28 @@ ; CHECK-NEXT: xsrsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 %conv = fptrunc double %1 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align16_float_double(i8* nocapture readonly %ptr) { +define dso_local float @ld_align16_float_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_float_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) ; CHECK-NEXT: xsrsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptrunc double %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptrunc double %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align32_float_double(i8* nocapture readonly %ptr) { +define dso_local float @ld_align32_float_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_float_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -3415,15 +3386,14 @@ ; CHECK-PREP10-NEXT: xsrsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptrunc double %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptrunc double %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_align64_float_double(i8* nocapture readonly %ptr) { +define dso_local float @ld_align64_float_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_float_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3441,25 +3411,23 @@ ; CHECK-PREP10-NEXT: xsrsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptrunc double %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptrunc double %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local float @ld_reg_float_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local float @ld_reg_float_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_float_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 ; CHECK-NEXT: xsrsp f1, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptrunc double %1 to float + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + %conv = fptrunc double %0 to float ret float %conv } @@ -3474,8 +3442,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptrunc double %1 to float ret float %conv1 } @@ -3490,8 +3458,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptrunc double %1 to float ret float %conv } @@ -3507,8 +3475,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptrunc double %1 to float ret float %conv } @@ -3524,8 +3492,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptrunc double %1 to float ret float %conv } @@ -3562,8 +3530,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 %conv = fptrunc double %1 to float ret float %conv } @@ -3592,8 +3560,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptrunc double %1 to float ret float %conv } @@ -3621,8 +3589,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 %conv = fptrunc double %1 to float ret float %conv } @@ -3635,7 +3603,7 @@ ; CHECK-NEXT: xsrsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptrunc double %0 to float ret float %conv } @@ -3649,7 +3617,7 @@ ; CHECK-NEXT: xsrsp f1, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = fptrunc double %0 to float ret float %conv } @@ -3673,7 +3641,7 @@ ; CHECK-PREP10-NEXT: xsrsp f1, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptrunc double %0 to float ret float %conv } @@ -3694,13 +3662,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i8 - %0 = inttoptr i64 %ptr to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + store i8 %conv, ptr %0, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_uint8_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_uint8_t(ptr nocapture %ptr, float %str) { ; CHECK-POSTP8-LABEL: st_align16_float_uint8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxws f0, f1 @@ -3716,13 +3684,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_uint8_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_uint8_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -3748,13 +3716,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_uint8_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_uint8_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -3783,13 +3751,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_uint8_t(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_uint8_t(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-POSTP8-LABEL: st_reg_float_uint8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxws f0, f1 @@ -3804,8 +3772,8 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i8 %conv, ptr %add.ptr, align 1 ret void } @@ -3829,8 +3797,8 @@ %conv = fptoui float %str to i8 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -3853,8 +3821,8 @@ entry: %conv = fptoui float %str to i8 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -3879,8 +3847,8 @@ %and = and i64 %ptr, -4096 %conv = fptoui float %str to i8 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 8 ret void } @@ -3905,8 +3873,8 @@ entry: %conv = fptoui float %str to i8 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -3945,8 +3913,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptoui float %str to i8 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 16 ret void } @@ -3987,8 +3955,8 @@ entry: %conv = fptoui float %str to i8 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4027,8 +3995,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptoui float %str to i8 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 4096 ret void } @@ -4049,7 +4017,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i8 - store i8 %conv, i8* inttoptr (i64 4080 to i8*), align 16 + store i8 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -4079,7 +4047,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i8 - store i8 %conv, i8* inttoptr (i64 9999900 to i8*), align 4 + store i8 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -4113,7 +4081,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i8 - store i8 %conv, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + store i8 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -4133,13 +4101,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i8 - %0 = inttoptr i64 %ptr to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + store i8 %conv, ptr %0, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_int8_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_int8_t(ptr nocapture %ptr, float %str) { ; CHECK-POSTP8-LABEL: st_align16_float_int8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxws f0, f1 @@ -4155,13 +4123,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_int8_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_int8_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -4187,13 +4155,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_int8_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_int8_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -4222,13 +4190,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_int8_t(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_int8_t(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-POSTP8-LABEL: st_reg_float_int8_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxws f0, f1 @@ -4243,8 +4211,8 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i8 %conv, ptr %add.ptr, align 1 ret void } @@ -4268,8 +4236,8 @@ %conv = fptosi float %str to i8 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4292,8 +4260,8 @@ entry: %conv = fptosi float %str to i8 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4318,8 +4286,8 @@ %and = and i64 %ptr, -4096 %conv = fptosi float %str to i8 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 8 ret void } @@ -4344,8 +4312,8 @@ entry: %conv = fptosi float %str to i8 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4384,8 +4352,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptosi float %str to i8 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 16 ret void } @@ -4426,8 +4394,8 @@ entry: %conv = fptosi float %str to i8 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -4466,8 +4434,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptosi float %str to i8 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 4096 ret void } @@ -4488,7 +4456,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i8 - store i8 %conv, i8* inttoptr (i64 4080 to i8*), align 16 + store i8 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -4518,7 +4486,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i8 - store i8 %conv, i8* inttoptr (i64 9999900 to i8*), align 4 + store i8 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -4552,7 +4520,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i8 - store i8 %conv, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + store i8 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -4572,13 +4540,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i16 - %0 = inttoptr i64 %ptr to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %conv, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_uint16_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_uint16_t(ptr nocapture %ptr, float %str) { ; CHECK-POSTP8-LABEL: st_align16_float_uint16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxws f0, f1 @@ -4594,14 +4562,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_uint16_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_uint16_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -4627,14 +4594,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_uint16_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_uint16_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -4663,14 +4629,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_uint16_t(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_uint16_t(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-POSTP8-LABEL: st_reg_float_uint16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxws f0, f1 @@ -4685,9 +4650,8 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %conv, ptr %add.ptr, align 2 ret void } @@ -4711,8 +4675,8 @@ %conv = fptoui float %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -4735,8 +4699,8 @@ entry: %conv = fptoui float %str to i16 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -4761,8 +4725,8 @@ %and = and i64 %ptr, -4096 %conv = fptoui float %str to i16 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 8 ret void } @@ -4787,8 +4751,8 @@ entry: %conv = fptoui float %str to i16 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -4827,8 +4791,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptoui float %str to i16 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 16 ret void } @@ -4869,8 +4833,8 @@ entry: %conv = fptoui float %str to i16 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -4909,8 +4873,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptoui float %str to i16 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 4096 ret void } @@ -4931,7 +4895,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i16 - store i16 %conv, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -4961,7 +4925,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i16 - store i16 %conv, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -4995,7 +4959,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i16 - store i16 %conv, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5015,13 +4979,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i16 - %0 = inttoptr i64 %ptr to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %conv, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_int16_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_int16_t(ptr nocapture %ptr, float %str) { ; CHECK-POSTP8-LABEL: st_align16_float_int16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxws f0, f1 @@ -5037,14 +5001,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_int16_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_int16_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -5070,14 +5033,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_int16_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_int16_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -5106,14 +5068,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_int16_t(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_int16_t(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-POSTP8-LABEL: st_reg_float_int16_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxws f0, f1 @@ -5128,9 +5089,8 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %conv, ptr %add.ptr, align 2 ret void } @@ -5154,8 +5114,8 @@ %conv = fptosi float %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5178,8 +5138,8 @@ entry: %conv = fptosi float %str to i16 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5204,8 +5164,8 @@ %and = and i64 %ptr, -4096 %conv = fptosi float %str to i16 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 8 ret void } @@ -5230,8 +5190,8 @@ entry: %conv = fptosi float %str to i16 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5270,8 +5230,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptosi float %str to i16 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 16 ret void } @@ -5312,8 +5272,8 @@ entry: %conv = fptosi float %str to i16 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5352,8 +5312,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptosi float %str to i16 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 4096 ret void } @@ -5374,7 +5334,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i16 - store i16 %conv, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5404,7 +5364,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i16 - store i16 %conv, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5438,7 +5398,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i16 - store i16 %conv, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5451,13 +5411,13 @@ ; CHECK-NEXT: blr entry: %conv = fptoui float %str to i32 - %0 = inttoptr i64 %ptr to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_uint32_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_uint32_t(ptr nocapture %ptr, float %str) { ; CHECK-LABEL: st_align16_float_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpuxws f0, f1 @@ -5466,14 +5426,13 @@ ; CHECK-NEXT: blr entry: %conv = fptoui float %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_uint32_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_uint32_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -5490,14 +5449,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui float %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_uint32_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_uint32_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxws f0, f1 @@ -5516,14 +5474,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui float %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_uint32_t(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_uint32_t(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-LABEL: st_reg_float_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpuxws f0, f1 @@ -5531,9 +5488,8 @@ ; CHECK-NEXT: blr entry: %conv = fptoui float %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %conv, ptr %add.ptr, align 4 ret void } @@ -5549,8 +5505,8 @@ %conv = fptoui float %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5565,8 +5521,8 @@ entry: %conv = fptoui float %str to i32 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5583,8 +5539,8 @@ %and = and i64 %ptr, -4096 %conv = fptoui float %str to i32 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 8 ret void } @@ -5600,8 +5556,8 @@ entry: %conv = fptoui float %str to i32 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5639,8 +5595,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptoui float %str to i32 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 16 ret void } @@ -5680,8 +5636,8 @@ entry: %conv = fptoui float %str to i32 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5709,8 +5665,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptoui float %str to i32 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4096 ret void } @@ -5724,7 +5680,7 @@ ; CHECK-NEXT: blr entry: %conv = fptoui float %str to i32 - store i32 %conv, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5746,7 +5702,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui float %str to i32 - store i32 %conv, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5770,7 +5726,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui float %str to i32 - store i32 %conv, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5783,13 +5739,13 @@ ; CHECK-NEXT: blr entry: %conv = fptosi float %str to i32 - %0 = inttoptr i64 %ptr to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_int32_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_int32_t(ptr nocapture %ptr, float %str) { ; CHECK-LABEL: st_align16_float_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpsxws f0, f1 @@ -5798,14 +5754,13 @@ ; CHECK-NEXT: blr entry: %conv = fptosi float %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_int32_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_int32_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -5822,14 +5777,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi float %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_int32_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_int32_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxws f0, f1 @@ -5848,14 +5802,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi float %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_int32_t(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_int32_t(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-LABEL: st_reg_float_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpsxws f0, f1 @@ -5863,9 +5816,8 @@ ; CHECK-NEXT: blr entry: %conv = fptosi float %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %conv, ptr %add.ptr, align 4 ret void } @@ -5881,8 +5833,8 @@ %conv = fptosi float %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5897,8 +5849,8 @@ entry: %conv = fptosi float %str to i32 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5915,8 +5867,8 @@ %and = and i64 %ptr, -4096 %conv = fptosi float %str to i32 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 8 ret void } @@ -5932,8 +5884,8 @@ entry: %conv = fptosi float %str to i32 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5971,8 +5923,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptosi float %str to i32 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 16 ret void } @@ -6012,8 +5964,8 @@ entry: %conv = fptosi float %str to i32 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6041,8 +5993,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptosi float %str to i32 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4096 ret void } @@ -6056,7 +6008,7 @@ ; CHECK-NEXT: blr entry: %conv = fptosi float %str to i32 - store i32 %conv, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6078,7 +6030,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi float %str to i32 - store i32 %conv, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -6102,7 +6054,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi float %str to i32 - store i32 %conv, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6121,13 +6073,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_uint64_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_uint64_t(ptr nocapture %ptr, float %str) { ; CHECK-POSTP8-LABEL: st_align16_float_uint64_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpuxds v2, f1 @@ -6142,14 +6094,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_uint64_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_uint64_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxds v2, f1 @@ -6165,14 +6116,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui float %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_uint64_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_uint64_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpuxds f0, f1 @@ -6191,14 +6141,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptoui float %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_uint64_t(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_uint64_t(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-LABEL: st_reg_float_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpuxds f0, f1 @@ -6206,9 +6155,8 @@ ; CHECK-NEXT: blr entry: %conv = fptoui float %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -6231,8 +6179,8 @@ %conv = fptoui float %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6254,8 +6202,8 @@ entry: %conv = fptoui float %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6279,8 +6227,8 @@ %and = and i64 %ptr, -4096 %conv = fptoui float %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6304,8 +6252,8 @@ entry: %conv = fptoui float %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6342,8 +6290,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptoui float %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -6383,8 +6331,8 @@ entry: %conv = fptoui float %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6412,8 +6360,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptoui float %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -6433,7 +6381,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6455,7 +6403,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -6488,7 +6436,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptoui float %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6507,13 +6455,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_int64_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_int64_t(ptr nocapture %ptr, float %str) { ; CHECK-POSTP8-LABEL: st_align16_float_int64_t: ; CHECK-POSTP8: # %bb.0: # %entry ; CHECK-POSTP8-NEXT: xscvdpsxds v2, f1 @@ -6528,14 +6476,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_int64_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_int64_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_int64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxds v2, f1 @@ -6551,14 +6498,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi float %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_int64_t(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_int64_t(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_int64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: xscvdpsxds f0, f1 @@ -6577,14 +6523,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fptosi float %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_int64_t(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_int64_t(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-LABEL: st_reg_float_int64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: xscvdpsxds f0, f1 @@ -6592,9 +6537,8 @@ ; CHECK-NEXT: blr entry: %conv = fptosi float %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -6617,8 +6561,8 @@ %conv = fptosi float %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6640,8 +6584,8 @@ entry: %conv = fptosi float %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6665,8 +6609,8 @@ %and = and i64 %ptr, -4096 %conv = fptosi float %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6690,8 +6634,8 @@ entry: %conv = fptosi float %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6728,8 +6672,8 @@ %and = and i64 %ptr, -1000341504 %conv = fptosi float %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -6769,8 +6713,8 @@ entry: %conv = fptosi float %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6798,8 +6742,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fptosi float %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -6819,7 +6763,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6841,7 +6785,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -6874,7 +6818,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = fptosi float %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6885,26 +6829,25 @@ ; CHECK-NEXT: stfs f1, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - store float %str, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %str, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_float(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_float(ptr nocapture %ptr, float %str) { ; CHECK-LABEL: st_align16_float_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stfs f1, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %str, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %str, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_float(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_float(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstfs f1, 99999000(r3), 0 @@ -6917,14 +6860,13 @@ ; CHECK-PREP10-NEXT: stfsx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %str, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %str, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_float(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_float(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -6940,22 +6882,20 @@ ; CHECK-PREP10-NEXT: stfsx f1, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %str, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %str, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_float(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_float(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-LABEL: st_reg_float_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stfsx f1, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %str, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %str, ptr %add.ptr, align 4 ret void } @@ -6969,8 +6909,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - store float %str, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %str, ptr %0, align 4 ret void } @@ -6983,8 +6923,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %str, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %str, ptr %0, align 4 ret void } @@ -6998,8 +6938,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %str, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %str, ptr %0, align 8 ret void } @@ -7013,8 +6953,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %str, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %str, ptr %0, align 4 ret void } @@ -7047,8 +6987,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %str, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %str, ptr %0, align 16 ret void } @@ -7074,8 +7014,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %str, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %str, ptr %0, align 4 ret void } @@ -7100,8 +7040,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %str, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %str, ptr %0, align 4096 ret void } @@ -7112,7 +7052,7 @@ ; CHECK-NEXT: stfs f1, 4080(0) ; CHECK-NEXT: blr entry: - store float %str, float* inttoptr (i64 4080 to float*), align 16 + store float %str, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7124,7 +7064,7 @@ ; CHECK-NEXT: stfs f1, -27108(r3) ; CHECK-NEXT: blr entry: - store float %str, float* inttoptr (i64 9999900 to float*), align 4 + store float %str, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -7145,7 +7085,7 @@ ; CHECK-PREP10-NEXT: stfs f1, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - store float %str, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %str, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7157,27 +7097,26 @@ ; CHECK-NEXT: blr entry: %conv = fpext float %str to double - %0 = inttoptr i64 %ptr to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_float_double(i8* nocapture %ptr, float %str) { +define dso_local void @st_align16_float_double(ptr nocapture %ptr, float %str) { ; CHECK-LABEL: st_align16_float_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stfd f1, 8(r3) ; CHECK-NEXT: blr entry: %conv = fpext float %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_float_double(i8* nocapture %ptr, float %str) { +define dso_local void @st_align32_float_double(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align32_float_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstfd f1, 99999000(r3), 0 @@ -7191,14 +7130,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fpext float %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_float_double(i8* nocapture %ptr, float %str) { +define dso_local void @st_align64_float_double(ptr nocapture %ptr, float %str) { ; CHECK-P10-LABEL: st_align64_float_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -7215,23 +7153,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fpext float %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_float_double(i8* nocapture %ptr, i64 %off, float %str) { +define dso_local void @st_reg_float_double(ptr nocapture %ptr, i64 %off, float %str) { ; CHECK-LABEL: st_reg_float_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stfdx f1, r3, r4 ; CHECK-NEXT: blr entry: %conv = fpext float %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %conv, ptr %add.ptr, align 8 ret void } @@ -7246,8 +7182,8 @@ %conv = fpext float %str to double %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7261,8 +7197,8 @@ entry: %conv = fpext float %str to double %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7277,8 +7213,8 @@ %and = and i64 %ptr, -4096 %conv = fpext float %str to double %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7293,8 +7229,8 @@ entry: %conv = fpext float %str to double %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7328,8 +7264,8 @@ %and = and i64 %ptr, -1000341504 %conv = fpext float %str to double %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 16 ret void } @@ -7356,8 +7292,8 @@ entry: %conv = fpext float %str to double %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7383,8 +7319,8 @@ %and = and i64 %ptr, -1099511627776 %conv = fpext float %str to double %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 4096 ret void } @@ -7396,7 +7332,7 @@ ; CHECK-NEXT: blr entry: %conv = fpext float %str to double - store double %conv, double* inttoptr (i64 4080 to double*), align 16 + store double %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7409,7 +7345,7 @@ ; CHECK-NEXT: blr entry: %conv = fpext float %str to double - store double %conv, double* inttoptr (i64 9999900 to double*), align 8 + store double %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -7431,6 +7367,6 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = fpext float %str to double - store double %conv, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } Index: llvm/test/CodeGen/PowerPC/scalar-i16-ldst.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar-i16-ldst.ll +++ llvm/test/CodeGen/PowerPC/scalar-i16-ldst.ll @@ -26,28 +26,28 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align16_int16_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align16_int16_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int16_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align32_int16_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align32_int16_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int16_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -62,14 +62,14 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align64_int16_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align64_int16_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int16_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -87,22 +87,22 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_reg_int16_t_int8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i16 @ld_reg_int16_t_int8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int16_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i16 ret i16 %conv } @@ -118,8 +118,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = sext i8 %1 to i16 ret i16 %conv1 } @@ -134,8 +134,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -151,8 +151,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -168,8 +168,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -206,8 +206,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -236,8 +236,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -265,8 +265,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -279,7 +279,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sext i8 %0 to i16 ret i16 %conv } @@ -293,7 +293,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sext i8 %0 to i16 ret i16 %conv } @@ -317,7 +317,7 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sext i8 %0 to i16 ret i16 %conv } @@ -329,26 +329,25 @@ ; CHECK-NEXT: lha r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align16_int16_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align16_int16_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int16_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lha r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - ret i16 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + ret i16 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align32_int16_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align32_int16_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int16_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plha r3, 99999000(r3), 0 @@ -361,14 +360,13 @@ ; CHECK-PREP10-NEXT: lhax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - ret i16 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + ret i16 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align64_int16_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align64_int16_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int16_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -384,23 +382,21 @@ ; CHECK-PREP10-NEXT: lhax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - ret i16 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + ret i16 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_reg_int16_t_uint16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i16 @ld_reg_int16_t_uint16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int16_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhax r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - ret i16 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + ret i16 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn @@ -413,8 +409,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } @@ -427,8 +423,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } @@ -442,8 +438,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 ret i16 %1 } @@ -457,8 +453,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } @@ -491,8 +487,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 ret i16 %1 } @@ -518,8 +514,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } @@ -544,8 +540,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 ret i16 %1 } @@ -556,7 +552,7 @@ ; CHECK-NEXT: lha r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 ret i16 %0 } @@ -568,7 +564,7 @@ ; CHECK-NEXT: lha r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 ret i16 %0 } @@ -589,7 +585,7 @@ ; CHECK-PREP10-NEXT: lha r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret i16 %0 } @@ -605,14 +601,14 @@ ; CHECK-BE-NEXT: lha r3, 2(r3) ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align16_int16_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align16_int16_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_int16_t_uint32_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lha r3, 8(r3) @@ -623,15 +619,14 @@ ; CHECK-BE-NEXT: lha r3, 10(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align32_int16_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align32_int16_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_int16_t_uint32_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plha r3, 99999000(r3), 0 @@ -670,15 +665,14 @@ ; CHECK-P8-BE-NEXT: lhax r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align64_int16_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align64_int16_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_int16_t_uint32_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -728,15 +722,14 @@ ; CHECK-P8-BE-NEXT: lhax r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_reg_int16_t_uint32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i16 @ld_reg_int16_t_uint32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_int16_t_uint32_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lhax r3, r3, r4 @@ -748,10 +741,9 @@ ; CHECK-BE-NEXT: lha r3, 2(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i16 ret i16 %conv } @@ -771,8 +763,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = trunc i32 %1 to i16 ret i16 %conv1 } @@ -792,8 +784,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -814,8 +806,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -837,8 +829,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -897,8 +889,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -964,8 +956,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -1029,8 +1021,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -1047,7 +1039,7 @@ ; CHECK-BE-NEXT: lha r3, 4082(0) ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i32 %0 to i16 ret i16 %conv } @@ -1066,7 +1058,7 @@ ; CHECK-BE-NEXT: lha r3, -27106(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = trunc i32 %0 to i16 ret i16 %conv } @@ -1122,7 +1114,7 @@ ; CHECK-P8-BE-NEXT: lha r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i32 %0 to i16 ret i16 %conv } @@ -1139,14 +1131,14 @@ ; CHECK-BE-NEXT: lha r3, 6(r3) ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align16_int16_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align16_int16_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_int16_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lha r3, 8(r3) @@ -1157,15 +1149,14 @@ ; CHECK-BE-NEXT: lha r3, 14(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align32_int16_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align32_int16_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_int16_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plha r3, 99999000(r3), 0 @@ -1204,15 +1195,14 @@ ; CHECK-P8-BE-NEXT: lhax r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align64_int16_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align64_int16_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_int16_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -1262,15 +1252,14 @@ ; CHECK-P8-BE-NEXT: lhax r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_reg_int16_t_uint64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i16 @ld_reg_int16_t_uint64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_int16_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lhax r3, r3, r4 @@ -1282,10 +1271,9 @@ ; CHECK-BE-NEXT: lha r3, 6(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i16 ret i16 %conv } @@ -1305,8 +1293,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = trunc i64 %1 to i16 ret i16 %conv1 } @@ -1326,8 +1314,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -1348,8 +1336,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -1371,8 +1359,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -1431,8 +1419,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -1498,8 +1486,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -1563,8 +1551,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -1581,7 +1569,7 @@ ; CHECK-BE-NEXT: lha r3, 4086(0) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i64 %0 to i16 ret i16 %conv } @@ -1600,7 +1588,7 @@ ; CHECK-BE-NEXT: lha r3, -27102(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = trunc i64 %0 to i16 ret i16 %conv } @@ -1656,7 +1644,7 @@ ; CHECK-P8-BE-NEXT: lha r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i64 %0 to i16 ret i16 %conv } @@ -1671,14 +1659,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align16_int16_t_float(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align16_int16_t_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int16_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f0, 8(r3) @@ -1687,15 +1675,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align32_int16_t_float(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align32_int16_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int16_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 99999000(r3), 0 @@ -1714,15 +1701,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align64_int16_t_float(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align64_int16_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int16_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1744,15 +1730,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_reg_int16_t_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i16 @ld_reg_int16_t_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int16_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f0, r3, r4 @@ -1761,10 +1746,9 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i16 ret i16 %conv } @@ -1781,8 +1765,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptosi float %1 to i16 ret i16 %conv1 } @@ -1799,8 +1783,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i16 ret i16 %conv } @@ -1818,8 +1802,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 %conv = fptosi float %1 to i16 ret i16 %conv } @@ -1837,8 +1821,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i16 ret i16 %conv } @@ -1881,8 +1865,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 %conv = fptosi float %1 to i16 ret i16 %conv } @@ -1915,8 +1899,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i16 ret i16 %conv } @@ -1949,8 +1933,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 %conv = fptosi float %1 to i16 ret i16 %conv } @@ -1965,7 +1949,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptosi float %0 to i16 ret i16 %conv } @@ -1981,7 +1965,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = fptosi float %0 to i16 ret i16 %conv } @@ -2009,7 +1993,7 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptosi float %0 to i16 ret i16 %conv } @@ -2024,14 +2008,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align16_int16_t_double(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align16_int16_t_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int16_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) @@ -2040,15 +2024,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align32_int16_t_double(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align32_int16_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int16_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -2067,15 +2050,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_align64_int16_t_double(i8* nocapture readonly %ptr) { +define dso_local signext i16 @ld_align64_int16_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int16_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2097,15 +2079,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i16 @ld_reg_int16_t_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i16 @ld_reg_int16_t_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int16_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 @@ -2114,10 +2095,9 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i16 ret i16 %conv } @@ -2134,8 +2114,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptosi double %1 to i16 ret i16 %conv1 } @@ -2152,8 +2132,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i16 ret i16 %conv } @@ -2171,8 +2151,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i16 ret i16 %conv } @@ -2190,8 +2170,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i16 ret i16 %conv } @@ -2234,8 +2214,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 %conv = fptosi double %1 to i16 ret i16 %conv } @@ -2268,8 +2248,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i16 ret i16 %conv } @@ -2301,8 +2281,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 %conv = fptosi double %1 to i16 ret i16 %conv } @@ -2317,7 +2297,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptosi double %0 to i16 ret i16 %conv } @@ -2333,7 +2313,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = fptosi double %0 to i16 ret i16 %conv } @@ -2361,7 +2341,7 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptosi double %0 to i16 ret i16 %conv } @@ -2373,27 +2353,27 @@ ; CHECK-NEXT: lbz r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align16_uint16_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align16_uint16_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint16_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align32_uint16_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align32_uint16_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint16_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -2406,14 +2386,14 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align64_uint16_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align64_uint16_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint16_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2429,21 +2409,21 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_reg_uint16_t_uint8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i16 @ld_reg_uint16_t_uint8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint16_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i16 ret i16 %conv } @@ -2458,8 +2438,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = zext i8 %1 to i16 ret i16 %conv1 } @@ -2473,8 +2453,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i16 ret i16 %conv } @@ -2489,8 +2469,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = zext i8 %1 to i16 ret i16 %conv } @@ -2505,8 +2485,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i16 ret i16 %conv } @@ -2540,8 +2520,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = zext i8 %1 to i16 ret i16 %conv } @@ -2568,8 +2548,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i16 ret i16 %conv } @@ -2595,8 +2575,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = zext i8 %1 to i16 ret i16 %conv } @@ -2608,7 +2588,7 @@ ; CHECK-NEXT: lbz r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = zext i8 %0 to i16 ret i16 %conv } @@ -2621,7 +2601,7 @@ ; CHECK-NEXT: lbz r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = zext i8 %0 to i16 ret i16 %conv } @@ -2643,7 +2623,7 @@ ; CHECK-PREP10-NEXT: lbz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = zext i8 %0 to i16 ret i16 %conv } @@ -2657,14 +2637,14 @@ ; CHECK-NEXT: clrldi r3, r3, 48 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align16_uint16_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align16_uint16_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint16_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) @@ -2672,14 +2652,14 @@ ; CHECK-NEXT: clrldi r3, r3, 48 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align32_uint16_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align32_uint16_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint16_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -2696,14 +2676,14 @@ ; CHECK-PREP10-NEXT: clrldi r3, r3, 48 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align64_uint16_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align64_uint16_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint16_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2723,14 +2703,14 @@ ; CHECK-PREP10-NEXT: clrldi r3, r3, 48 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_reg_uint16_t_int8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i16 @ld_reg_uint16_t_int8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint16_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 @@ -2738,8 +2718,8 @@ ; CHECK-NEXT: clrldi r3, r3, 48 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i16 ret i16 %conv } @@ -2756,8 +2736,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = sext i8 %1 to i16 ret i16 %conv1 } @@ -2773,8 +2753,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -2791,8 +2771,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -2809,8 +2789,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -2850,8 +2830,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -2882,8 +2862,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -2913,8 +2893,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = sext i8 %1 to i16 ret i16 %conv } @@ -2928,7 +2908,7 @@ ; CHECK-NEXT: clrldi r3, r3, 48 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sext i8 %0 to i16 ret i16 %conv } @@ -2943,7 +2923,7 @@ ; CHECK-NEXT: clrldi r3, r3, 48 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sext i8 %0 to i16 ret i16 %conv } @@ -2969,7 +2949,7 @@ ; CHECK-PREP10-NEXT: clrldi r3, r3, 48 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sext i8 %0 to i16 ret i16 %conv } @@ -2981,26 +2961,25 @@ ; CHECK-NEXT: lhz r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align16_uint16_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align16_uint16_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint16_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhz r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - ret i16 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + ret i16 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align32_uint16_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align32_uint16_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint16_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plhz r3, 99999000(r3), 0 @@ -3013,14 +2992,13 @@ ; CHECK-PREP10-NEXT: lhzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - ret i16 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + ret i16 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align64_uint16_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align64_uint16_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint16_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3036,23 +3014,21 @@ ; CHECK-PREP10-NEXT: lhzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - ret i16 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + ret i16 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_reg_uint16_t_uint16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i16 @ld_reg_uint16_t_uint16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint16_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhzx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - ret i16 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + ret i16 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn @@ -3065,8 +3041,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } @@ -3079,8 +3055,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } @@ -3094,8 +3070,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 ret i16 %1 } @@ -3109,8 +3085,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } @@ -3143,8 +3119,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 ret i16 %1 } @@ -3170,8 +3146,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 ret i16 %1 } @@ -3196,8 +3172,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 ret i16 %1 } @@ -3208,7 +3184,7 @@ ; CHECK-NEXT: lhz r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 ret i16 %0 } @@ -3220,7 +3196,7 @@ ; CHECK-NEXT: lhz r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 ret i16 %0 } @@ -3241,7 +3217,7 @@ ; CHECK-PREP10-NEXT: lhz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret i16 %0 } @@ -3257,14 +3233,14 @@ ; CHECK-BE-NEXT: lhz r3, 2(r3) ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align16_uint16_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align16_uint16_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_uint16_t_uint32_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lhz r3, 8(r3) @@ -3275,15 +3251,14 @@ ; CHECK-BE-NEXT: lhz r3, 10(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align32_uint16_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align32_uint16_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_uint16_t_uint32_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plhz r3, 99999000(r3), 0 @@ -3322,15 +3297,14 @@ ; CHECK-P8-BE-NEXT: lhzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align64_uint16_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align64_uint16_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_uint16_t_uint32_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -3380,15 +3354,14 @@ ; CHECK-P8-BE-NEXT: lhzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_reg_uint16_t_uint32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i16 @ld_reg_uint16_t_uint32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_uint16_t_uint32_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lhzx r3, r3, r4 @@ -3400,10 +3373,9 @@ ; CHECK-BE-NEXT: lhz r3, 2(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i16 ret i16 %conv } @@ -3423,8 +3395,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = trunc i32 %1 to i16 ret i16 %conv1 } @@ -3444,8 +3416,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -3466,8 +3438,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -3489,8 +3461,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -3549,8 +3521,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -3616,8 +3588,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -3681,8 +3653,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = trunc i32 %1 to i16 ret i16 %conv } @@ -3699,7 +3671,7 @@ ; CHECK-BE-NEXT: lhz r3, 4082(0) ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i32 %0 to i16 ret i16 %conv } @@ -3718,7 +3690,7 @@ ; CHECK-BE-NEXT: lhz r3, -27106(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = trunc i32 %0 to i16 ret i16 %conv } @@ -3774,7 +3746,7 @@ ; CHECK-P8-BE-NEXT: lhz r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i32 %0 to i16 ret i16 %conv } @@ -3791,14 +3763,14 @@ ; CHECK-BE-NEXT: lhz r3, 6(r3) ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align16_uint16_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align16_uint16_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_uint16_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lhz r3, 8(r3) @@ -3809,15 +3781,14 @@ ; CHECK-BE-NEXT: lhz r3, 14(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align32_uint16_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align32_uint16_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_uint16_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plhz r3, 99999000(r3), 0 @@ -3856,15 +3827,14 @@ ; CHECK-P8-BE-NEXT: lhzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align64_uint16_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align64_uint16_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_uint16_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -3914,15 +3884,14 @@ ; CHECK-P8-BE-NEXT: lhzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_reg_uint16_t_uint64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i16 @ld_reg_uint16_t_uint64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_uint16_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lhzx r3, r3, r4 @@ -3934,10 +3903,9 @@ ; CHECK-BE-NEXT: lhz r3, 6(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i16 ret i16 %conv } @@ -3957,8 +3925,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = trunc i64 %1 to i16 ret i16 %conv1 } @@ -3978,8 +3946,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -4000,8 +3968,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -4023,8 +3991,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -4083,8 +4051,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -4150,8 +4118,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -4215,8 +4183,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = trunc i64 %1 to i16 ret i16 %conv } @@ -4233,7 +4201,7 @@ ; CHECK-BE-NEXT: lhz r3, 4086(0) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i64 %0 to i16 ret i16 %conv } @@ -4252,7 +4220,7 @@ ; CHECK-BE-NEXT: lhz r3, -27102(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = trunc i64 %0 to i16 ret i16 %conv } @@ -4308,13 +4276,13 @@ ; CHECK-P8-BE-NEXT: lhz r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i64 %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align16_uint16_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align16_uint16_t_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint16_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f0, 8(r3) @@ -4322,15 +4290,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align32_uint16_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align32_uint16_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint16_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 99999000(r3), 0 @@ -4347,15 +4314,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align64_uint16_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align64_uint16_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint16_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -4375,15 +4341,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_reg_uint16_t_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i16 @ld_reg_uint16_t_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint16_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f0, r3, r4 @@ -4391,10 +4356,9 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i16 ret i16 %conv } @@ -4410,8 +4374,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptoui float %1 to i16 ret i16 %conv1 } @@ -4427,8 +4391,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i16 ret i16 %conv } @@ -4445,8 +4409,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 %conv = fptoui float %1 to i16 ret i16 %conv } @@ -4463,8 +4427,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i16 ret i16 %conv } @@ -4504,8 +4468,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 %conv = fptoui float %1 to i16 ret i16 %conv } @@ -4536,8 +4500,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i16 ret i16 %conv } @@ -4567,8 +4531,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 %conv = fptoui float %1 to i16 ret i16 %conv } @@ -4582,7 +4546,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptoui float %0 to i16 ret i16 %conv } @@ -4597,7 +4561,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = fptoui float %0 to i16 ret i16 %conv } @@ -4623,7 +4587,7 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptoui float %0 to i16 ret i16 %conv } @@ -4637,14 +4601,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align16_uint16_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align16_uint16_t_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint16_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) @@ -4652,15 +4616,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align32_uint16_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align32_uint16_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint16_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -4677,15 +4640,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_align64_uint16_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i16 @ld_align64_uint16_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint16_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -4705,15 +4667,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i16 ret i16 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i16 @ld_reg_uint16_t_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i16 @ld_reg_uint16_t_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint16_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 @@ -4721,10 +4682,9 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i16 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i16 ret i16 %conv } @@ -4740,8 +4700,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptoui double %1 to i16 ret i16 %conv1 } @@ -4757,8 +4717,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i16 ret i16 %conv } @@ -4775,8 +4735,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i16 ret i16 %conv } @@ -4793,8 +4753,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i16 ret i16 %conv } @@ -4834,8 +4794,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 %conv = fptoui double %1 to i16 ret i16 %conv } @@ -4866,8 +4826,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i16 ret i16 %conv } @@ -4897,8 +4857,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 %conv = fptoui double %1 to i16 ret i16 %conv } @@ -4912,7 +4872,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptoui double %0 to i16 ret i16 %conv } @@ -4927,7 +4887,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = fptoui double %0 to i16 ret i16 %conv } @@ -4953,7 +4913,7 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptoui double %0 to i16 ret i16 %conv } @@ -4966,26 +4926,26 @@ ; CHECK-NEXT: blr entry: %conv = trunc i16 %str to i8 - %0 = inttoptr i64 %ptr to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + store i8 %conv, ptr %0, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint16_t_uint8_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align16_uint16_t_uint8_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-LABEL: st_align16_uint16_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stb r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = trunc i16 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint16_t_uint8_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align32_uint16_t_uint8_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint16_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstb r4, 99999000(r3), 0 @@ -4999,13 +4959,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i16 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint16_t_uint8_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align64_uint16_t_uint8_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint16_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5022,21 +4982,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i16 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint16_t_uint8_t(i8* nocapture %ptr, i64 %off, i16 zeroext %str) { +define dso_local void @st_reg_uint16_t_uint8_t(ptr nocapture %ptr, i64 %off, i16 zeroext %str) { ; CHECK-LABEL: st_reg_uint16_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stbx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = trunc i16 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i8 %conv, ptr %add.ptr, align 1 ret void } @@ -5051,8 +5011,8 @@ %conv = trunc i16 %str to i8 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5066,8 +5026,8 @@ entry: %conv = trunc i16 %str to i8 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5082,8 +5042,8 @@ %and = and i64 %ptr, -4096 %conv = trunc i16 %str to i8 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 8 ret void } @@ -5098,8 +5058,8 @@ entry: %conv = trunc i16 %str to i8 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5133,8 +5093,8 @@ %and = and i64 %ptr, -1000341504 %conv = trunc i16 %str to i8 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 16 ret void } @@ -5161,8 +5121,8 @@ entry: %conv = trunc i16 %str to i8 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5188,8 +5148,8 @@ %and = and i64 %ptr, -1099511627776 %conv = trunc i16 %str to i8 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 4096 ret void } @@ -5201,7 +5161,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i16 %str to i8 - store i8 %conv, i8* inttoptr (i64 4080 to i8*), align 16 + store i8 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5214,7 +5174,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i16 %str to i8 - store i8 %conv, i8* inttoptr (i64 9999900 to i8*), align 4 + store i8 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5236,7 +5196,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i16 %str to i8 - store i8 %conv, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + store i8 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5247,26 +5207,25 @@ ; CHECK-NEXT: sth r4, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - store i16 %str, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %str, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint16_t_uint16_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align16_uint16_t_uint16_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-LABEL: st_align16_uint16_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sth r4, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %str, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %str, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint16_t_uint16_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align32_uint16_t_uint16_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint16_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: psth r4, 99999000(r3), 0 @@ -5279,14 +5238,13 @@ ; CHECK-PREP10-NEXT: sthx r4, r3, r5 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %str, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %str, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint16_t_uint16_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align64_uint16_t_uint16_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint16_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5302,22 +5260,20 @@ ; CHECK-PREP10-NEXT: sthx r4, r3, r5 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %str, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %str, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint16_t_uint16_t(i8* nocapture %ptr, i64 %off, i16 zeroext %str) { +define dso_local void @st_reg_uint16_t_uint16_t(ptr nocapture %ptr, i64 %off, i16 zeroext %str) { ; CHECK-LABEL: st_reg_uint16_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sthx r5, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %str, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %str, ptr %add.ptr, align 2 ret void } @@ -5331,8 +5287,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %str, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %str, ptr %0, align 2 ret void } @@ -5345,8 +5301,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %str, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %str, ptr %0, align 2 ret void } @@ -5360,8 +5316,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %str, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %str, ptr %0, align 8 ret void } @@ -5375,8 +5331,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %str, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %str, ptr %0, align 2 ret void } @@ -5409,8 +5365,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %str, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %str, ptr %0, align 16 ret void } @@ -5436,8 +5392,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %str, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %str, ptr %0, align 2 ret void } @@ -5462,8 +5418,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %str, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %str, ptr %0, align 4096 ret void } @@ -5474,7 +5430,7 @@ ; CHECK-NEXT: sth r3, 4080(0) ; CHECK-NEXT: blr entry: - store i16 %str, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %str, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5486,7 +5442,7 @@ ; CHECK-NEXT: sth r3, -27108(r4) ; CHECK-NEXT: blr entry: - store i16 %str, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %str, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5507,7 +5463,7 @@ ; CHECK-PREP10-NEXT: sth r3, 0(r4) ; CHECK-PREP10-NEXT: blr entry: - store i16 %str, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %str, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5519,27 +5475,26 @@ ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i32 - %0 = inttoptr i64 %ptr to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint16_t_uint32_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align16_uint16_t_uint32_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-LABEL: st_align16_uint16_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint16_t_uint32_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align32_uint16_t_uint32_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint16_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstw r4, 99999000(r3), 0 @@ -5553,14 +5508,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i16 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint16_t_uint32_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align64_uint16_t_uint32_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint16_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5577,23 +5531,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i16 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint16_t_uint32_t(i8* nocapture %ptr, i64 %off, i16 zeroext %str) { +define dso_local void @st_reg_uint16_t_uint32_t(ptr nocapture %ptr, i64 %off, i16 zeroext %str) { ; CHECK-LABEL: st_reg_uint16_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stwx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %conv, ptr %add.ptr, align 4 ret void } @@ -5608,8 +5560,8 @@ %conv = zext i16 %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5623,8 +5575,8 @@ entry: %conv = zext i16 %str to i32 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5639,8 +5591,8 @@ %and = and i64 %ptr, -4096 %conv = zext i16 %str to i32 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 8 ret void } @@ -5655,8 +5607,8 @@ entry: %conv = zext i16 %str to i32 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5690,8 +5642,8 @@ %and = and i64 %ptr, -1000341504 %conv = zext i16 %str to i32 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 16 ret void } @@ -5718,8 +5670,8 @@ entry: %conv = zext i16 %str to i32 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -5745,8 +5697,8 @@ %and = and i64 %ptr, -1099511627776 %conv = zext i16 %str to i32 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4096 ret void } @@ -5758,7 +5710,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i32 - store i32 %conv, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5771,7 +5723,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i32 - store i32 %conv, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5793,7 +5745,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i16 %str to i32 - store i32 %conv, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5805,27 +5757,26 @@ ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint16_t_uint64_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align16_uint16_t_uint64_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-LABEL: st_align16_uint16_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: std r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint16_t_uint64_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align32_uint16_t_uint64_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint16_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstd r4, 99999000(r3), 0 @@ -5839,14 +5790,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i16 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint16_t_uint64_t(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align64_uint16_t_uint64_t(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint16_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5863,23 +5813,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i16 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint16_t_uint64_t(i8* nocapture %ptr, i64 %off, i16 zeroext %str) { +define dso_local void @st_reg_uint16_t_uint64_t(ptr nocapture %ptr, i64 %off, i16 zeroext %str) { ; CHECK-LABEL: st_reg_uint16_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stdx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -5894,8 +5842,8 @@ %conv = zext i16 %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -5909,8 +5857,8 @@ entry: %conv = zext i16 %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -5925,8 +5873,8 @@ %and = and i64 %ptr, -4096 %conv = zext i16 %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -5941,8 +5889,8 @@ entry: %conv = zext i16 %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -5976,8 +5924,8 @@ %and = and i64 %ptr, -1000341504 %conv = zext i16 %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -6004,8 +5952,8 @@ entry: %conv = zext i16 %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6031,8 +5979,8 @@ %and = and i64 %ptr, -1099511627776 %conv = zext i16 %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -6044,7 +5992,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6057,7 +6005,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i16 %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -6079,7 +6027,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i16 %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6093,13 +6041,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to float - %0 = inttoptr i64 %ptr to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint16_t_float(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align16_uint16_t_float(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-LABEL: st_align16_uint16_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r4 @@ -6108,14 +6056,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint16_t_float(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align32_uint16_t_float(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint16_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -6142,14 +6089,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i16 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint16_t_float(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align64_uint16_t_float(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint16_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -6180,14 +6126,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i16 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint16_t_float(i8* nocapture %ptr, i64 %off, i16 zeroext %str) { +define dso_local void @st_reg_uint16_t_float(ptr nocapture %ptr, i64 %off, i16 zeroext %str) { ; CHECK-LABEL: st_reg_uint16_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r5 @@ -6196,9 +6141,8 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %conv, ptr %add.ptr, align 4 ret void } @@ -6215,8 +6159,8 @@ %conv = uitofp i16 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6232,8 +6176,8 @@ entry: %conv = uitofp i16 %str to float %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6250,8 +6194,8 @@ %and = and i64 %ptr, -4096 %conv = uitofp i16 %str to float %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 8 ret void } @@ -6286,8 +6230,8 @@ entry: %conv = uitofp i16 %str to float %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6327,8 +6271,8 @@ %and = and i64 %ptr, -1000341504 %conv = uitofp i16 %str to float %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 16 ret void } @@ -6359,8 +6303,8 @@ entry: %conv = uitofp i16 %str to float %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6401,8 +6345,8 @@ %and = and i64 %ptr, -1099511627776 %conv = uitofp i16 %str to float %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4096 ret void } @@ -6416,7 +6360,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to float - store float %conv, float* inttoptr (i64 4080 to float*), align 16 + store float %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6431,7 +6375,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to float - store float %conv, float* inttoptr (i64 9999900 to float*), align 4 + store float %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -6467,7 +6411,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i16 %str to float - store float %conv, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6481,13 +6425,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to double - %0 = inttoptr i64 %ptr to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint16_t_double(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align16_uint16_t_double(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-LABEL: st_align16_uint16_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r4 @@ -6496,14 +6440,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint16_t_double(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align32_uint16_t_double(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint16_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -6530,14 +6473,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i16 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint16_t_double(i8* nocapture %ptr, i16 zeroext %str) { +define dso_local void @st_align64_uint16_t_double(ptr nocapture %ptr, i16 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint16_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -6568,14 +6510,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i16 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint16_t_double(i8* nocapture %ptr, i64 %off, i16 zeroext %str) { +define dso_local void @st_reg_uint16_t_double(ptr nocapture %ptr, i64 %off, i16 zeroext %str) { ; CHECK-LABEL: st_reg_uint16_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r5 @@ -6584,9 +6525,8 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %conv, ptr %add.ptr, align 8 ret void } @@ -6603,8 +6543,8 @@ %conv = uitofp i16 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6620,8 +6560,8 @@ entry: %conv = uitofp i16 %str to double %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6638,8 +6578,8 @@ %and = and i64 %ptr, -4096 %conv = uitofp i16 %str to double %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6674,8 +6614,8 @@ entry: %conv = uitofp i16 %str to double %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6715,8 +6655,8 @@ %and = and i64 %ptr, -1000341504 %conv = uitofp i16 %str to double %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 16 ret void } @@ -6747,8 +6687,8 @@ entry: %conv = uitofp i16 %str to double %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6789,8 +6729,8 @@ %and = and i64 %ptr, -1099511627776 %conv = uitofp i16 %str to double %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 4096 ret void } @@ -6804,7 +6744,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to double - store double %conv, double* inttoptr (i64 4080 to double*), align 16 + store double %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6819,7 +6759,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i16 %str to double - store double %conv, double* inttoptr (i64 9999900 to double*), align 8 + store double %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -6855,7 +6795,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i16 %str to double - store double %conv, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6867,27 +6807,26 @@ ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i32 - %0 = inttoptr i64 %ptr to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int16_t_uint32_t(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align16_int16_t_uint32_t(ptr nocapture %ptr, i16 signext %str) { ; CHECK-LABEL: st_align16_int16_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int16_t_uint32_t(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align32_int16_t_uint32_t(ptr nocapture %ptr, i16 signext %str) { ; CHECK-P10-LABEL: st_align32_int16_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstw r4, 99999000(r3), 0 @@ -6901,14 +6840,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i16 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int16_t_uint32_t(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align64_int16_t_uint32_t(ptr nocapture %ptr, i16 signext %str) { ; CHECK-P10-LABEL: st_align64_int16_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -6925,23 +6863,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i16 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int16_t_uint32_t(i8* nocapture %ptr, i64 %off, i16 signext %str) { +define dso_local void @st_reg_int16_t_uint32_t(ptr nocapture %ptr, i64 %off, i16 signext %str) { ; CHECK-LABEL: st_reg_int16_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stwx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %conv, ptr %add.ptr, align 4 ret void } @@ -6956,8 +6892,8 @@ %conv = sext i16 %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6971,8 +6907,8 @@ entry: %conv = sext i16 %str to i32 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6987,8 +6923,8 @@ %and = and i64 %ptr, -4096 %conv = sext i16 %str to i32 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 8 ret void } @@ -7003,8 +6939,8 @@ entry: %conv = sext i16 %str to i32 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -7038,8 +6974,8 @@ %and = and i64 %ptr, -1000341504 %conv = sext i16 %str to i32 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 16 ret void } @@ -7066,8 +7002,8 @@ entry: %conv = sext i16 %str to i32 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -7093,8 +7029,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sext i16 %str to i32 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4096 ret void } @@ -7106,7 +7042,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i32 - store i32 %conv, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7119,7 +7055,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i32 - store i32 %conv, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -7141,7 +7077,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i16 %str to i32 - store i32 %conv, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7153,27 +7089,26 @@ ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int16_t_uint64_t(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align16_int16_t_uint64_t(ptr nocapture %ptr, i16 signext %str) { ; CHECK-LABEL: st_align16_int16_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: std r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int16_t_uint64_t(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align32_int16_t_uint64_t(ptr nocapture %ptr, i16 signext %str) { ; CHECK-P10-LABEL: st_align32_int16_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstd r4, 99999000(r3), 0 @@ -7187,14 +7122,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i16 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int16_t_uint64_t(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align64_int16_t_uint64_t(ptr nocapture %ptr, i16 signext %str) { ; CHECK-P10-LABEL: st_align64_int16_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -7211,23 +7145,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i16 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int16_t_uint64_t(i8* nocapture %ptr, i64 %off, i16 signext %str) { +define dso_local void @st_reg_int16_t_uint64_t(ptr nocapture %ptr, i64 %off, i16 signext %str) { ; CHECK-LABEL: st_reg_int16_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stdx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -7242,8 +7174,8 @@ %conv = sext i16 %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7257,8 +7189,8 @@ entry: %conv = sext i16 %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7273,8 +7205,8 @@ %and = and i64 %ptr, -4096 %conv = sext i16 %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7289,8 +7221,8 @@ entry: %conv = sext i16 %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7324,8 +7256,8 @@ %and = and i64 %ptr, -1000341504 %conv = sext i16 %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -7352,8 +7284,8 @@ entry: %conv = sext i16 %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7379,8 +7311,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sext i16 %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -7392,7 +7324,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7405,7 +7337,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i16 %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -7427,7 +7359,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i16 %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7441,13 +7373,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to float - %0 = inttoptr i64 %ptr to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int16_t_float(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align16_int16_t_float(ptr nocapture %ptr, i16 signext %str) { ; CHECK-LABEL: st_align16_int16_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r4 @@ -7456,14 +7388,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int16_t_float(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align32_int16_t_float(ptr nocapture %ptr, i16 signext %str) { ; CHECK-P10-LABEL: st_align32_int16_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -7490,14 +7421,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i16 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int16_t_float(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align64_int16_t_float(ptr nocapture %ptr, i16 signext %str) { ; CHECK-P10-LABEL: st_align64_int16_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -7528,14 +7458,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i16 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int16_t_float(i8* nocapture %ptr, i64 %off, i16 signext %str) { +define dso_local void @st_reg_int16_t_float(ptr nocapture %ptr, i64 %off, i16 signext %str) { ; CHECK-LABEL: st_reg_int16_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r5 @@ -7544,9 +7473,8 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %conv, ptr %add.ptr, align 4 ret void } @@ -7563,8 +7491,8 @@ %conv = sitofp i16 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7580,8 +7508,8 @@ entry: %conv = sitofp i16 %str to float %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7598,8 +7526,8 @@ %and = and i64 %ptr, -4096 %conv = sitofp i16 %str to float %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 8 ret void } @@ -7634,8 +7562,8 @@ entry: %conv = sitofp i16 %str to float %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7675,8 +7603,8 @@ %and = and i64 %ptr, -1000341504 %conv = sitofp i16 %str to float %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 16 ret void } @@ -7707,8 +7635,8 @@ entry: %conv = sitofp i16 %str to float %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7750,8 +7678,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sitofp i16 %str to float %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4096 ret void } @@ -7765,7 +7693,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to float - store float %conv, float* inttoptr (i64 4080 to float*), align 16 + store float %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7780,7 +7708,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to float - store float %conv, float* inttoptr (i64 9999900 to float*), align 4 + store float %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -7816,7 +7744,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i16 %str to float - store float %conv, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7830,13 +7758,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to double - %0 = inttoptr i64 %ptr to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int16_t_double(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align16_int16_t_double(ptr nocapture %ptr, i16 signext %str) { ; CHECK-LABEL: st_align16_int16_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r4 @@ -7845,14 +7773,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int16_t_double(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align32_int16_t_double(ptr nocapture %ptr, i16 signext %str) { ; CHECK-P10-LABEL: st_align32_int16_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -7879,14 +7806,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i16 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int16_t_double(i8* nocapture %ptr, i16 signext %str) { +define dso_local void @st_align64_int16_t_double(ptr nocapture %ptr, i16 signext %str) { ; CHECK-P10-LABEL: st_align64_int16_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -7917,14 +7843,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i16 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int16_t_double(i8* nocapture %ptr, i64 %off, i16 signext %str) { +define dso_local void @st_reg_int16_t_double(ptr nocapture %ptr, i64 %off, i16 signext %str) { ; CHECK-LABEL: st_reg_int16_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r5 @@ -7933,9 +7858,8 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %conv, ptr %add.ptr, align 8 ret void } @@ -7952,8 +7876,8 @@ %conv = sitofp i16 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7969,8 +7893,8 @@ entry: %conv = sitofp i16 %str to double %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7987,8 +7911,8 @@ %and = and i64 %ptr, -4096 %conv = sitofp i16 %str to double %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -8023,8 +7947,8 @@ entry: %conv = sitofp i16 %str to double %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -8064,8 +7988,8 @@ %and = and i64 %ptr, -1000341504 %conv = sitofp i16 %str to double %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 16 ret void } @@ -8096,8 +8020,8 @@ entry: %conv = sitofp i16 %str to double %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -8138,8 +8062,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sitofp i16 %str to double %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 4096 ret void } @@ -8153,7 +8077,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to double - store double %conv, double* inttoptr (i64 4080 to double*), align 16 + store double %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -8168,7 +8092,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i16 %str to double - store double %conv, double* inttoptr (i64 9999900 to double*), align 8 + store double %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -8204,6 +8128,6 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i16 %str to double - store double %conv, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } Index: llvm/test/CodeGen/PowerPC/scalar-i32-ldst.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar-i32-ldst.ll +++ llvm/test/CodeGen/PowerPC/scalar-i32-ldst.ll @@ -26,28 +26,28 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align16_int32_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align16_int32_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int32_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align32_int32_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align32_int32_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int32_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -62,14 +62,14 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align64_int32_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align64_int32_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int32_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -87,22 +87,22 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_reg_int32_t_int8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i32 @ld_reg_int32_t_int8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int32_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i32 ret i32 %conv } @@ -118,8 +118,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = sext i8 %1 to i32 ret i32 %conv1 } @@ -136,8 +136,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = sext i8 %1 to i32 ret i32 %conv1 } @@ -152,8 +152,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -169,8 +169,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -186,8 +186,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -224,8 +224,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -254,8 +254,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -283,8 +283,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -297,7 +297,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sext i8 %0 to i32 ret i32 %conv } @@ -311,7 +311,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sext i8 %0 to i32 ret i32 %conv } @@ -335,7 +335,7 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sext i8 %0 to i32 ret i32 %conv } @@ -347,28 +347,27 @@ ; CHECK-NEXT: lha r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align16_int32_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align16_int32_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int32_t_int16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lha r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align32_int32_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align32_int32_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int32_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plha r3, 99999000(r3), 0 @@ -381,15 +380,14 @@ ; CHECK-PREP10-NEXT: lhax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align64_int32_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align64_int32_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int32_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -405,24 +403,22 @@ ; CHECK-PREP10-NEXT: lhax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_reg_int32_t_int16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i32 @ld_reg_int32_t_int16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int32_t_int16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhax r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i32 ret i32 %conv } @@ -436,8 +432,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = sext i16 %1 to i32 ret i32 %conv1 } @@ -453,8 +449,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = sext i16 %1 to i32 ret i32 %conv1 } @@ -468,8 +464,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -484,8 +480,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -500,8 +496,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -535,8 +531,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -563,8 +559,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -590,8 +586,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -603,7 +599,7 @@ ; CHECK-NEXT: lha r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sext i16 %0 to i32 ret i32 %conv } @@ -616,7 +612,7 @@ ; CHECK-NEXT: lha r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sext i16 %0 to i32 ret i32 %conv } @@ -638,7 +634,7 @@ ; CHECK-PREP10-NEXT: lha r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sext i16 %0 to i32 ret i32 %conv } @@ -650,26 +646,25 @@ ; CHECK-NEXT: lwa r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align16_int32_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align16_int32_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int32_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwa r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - ret i32 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + ret i32 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align32_int32_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align32_int32_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int32_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plwa r3, 99999000(r3), 0 @@ -682,14 +677,13 @@ ; CHECK-PREP10-NEXT: lwax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - ret i32 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + ret i32 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align64_int32_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align64_int32_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int32_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -705,23 +699,21 @@ ; CHECK-PREP10-NEXT: lwax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - ret i32 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + ret i32 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_reg_int32_t_uint32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i32 @ld_reg_int32_t_uint32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int32_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwax r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - ret i32 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + ret i32 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn @@ -734,8 +726,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -750,8 +742,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -764,8 +756,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -793,8 +785,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -808,8 +800,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 ret i32 %1 } @@ -823,8 +815,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -857,8 +849,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 ret i32 %1 } @@ -884,8 +876,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -910,8 +902,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 ret i32 %1 } @@ -922,7 +914,7 @@ ; CHECK-NEXT: lwa r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 ret i32 %0 } @@ -934,7 +926,7 @@ ; CHECK-NEXT: lwa r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 ret i32 %0 } @@ -955,7 +947,7 @@ ; CHECK-PREP10-NEXT: lwa r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret i32 %0 } @@ -971,14 +963,14 @@ ; CHECK-BE-NEXT: lwa r3, 4(r3) ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_unalign16_int32_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_unalign16_int32_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_unalign16_int32_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plwa r3, 1(r3), 0 @@ -1013,15 +1005,14 @@ ; CHECK-P8-BE-NEXT: lwax r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align16_int32_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align16_int32_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_int32_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lwa r3, 8(r3) @@ -1032,15 +1023,14 @@ ; CHECK-BE-NEXT: lwa r3, 12(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align32_int32_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align32_int32_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_int32_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plwa r3, 99999000(r3), 0 @@ -1079,15 +1069,14 @@ ; CHECK-P8-BE-NEXT: lwax r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align64_int32_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align64_int32_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_int32_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -1137,15 +1126,14 @@ ; CHECK-P8-BE-NEXT: lwax r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_reg_int32_t_uint64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i32 @ld_reg_int32_t_uint64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_int32_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lwax r3, r3, r4 @@ -1157,10 +1145,9 @@ ; CHECK-BE-NEXT: lwa r3, 4(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i32 ret i32 %conv } @@ -1180,8 +1167,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = trunc i64 %1 to i32 ret i32 %conv1 } @@ -1204,8 +1191,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = trunc i64 %1 to i32 ret i32 %conv1 } @@ -1225,8 +1212,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -1275,8 +1262,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -1297,8 +1284,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -1320,8 +1307,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -1380,8 +1367,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -1447,8 +1434,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -1512,8 +1499,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -1530,7 +1517,7 @@ ; CHECK-BE-NEXT: lwa r3, 4084(0) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i64 %0 to i32 ret i32 %conv } @@ -1549,7 +1536,7 @@ ; CHECK-BE-NEXT: lwa r3, -27104(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = trunc i64 %0 to i32 ret i32 %conv } @@ -1605,7 +1592,7 @@ ; CHECK-P8-BE-NEXT: lwa r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i64 %0 to i32 ret i32 %conv } @@ -1620,14 +1607,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align16_int32_t_float(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align16_int32_t_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int32_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f0, 8(r3) @@ -1636,15 +1623,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align32_int32_t_float(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align32_int32_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int32_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 99999000(r3), 0 @@ -1663,15 +1649,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align64_int32_t_float(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align64_int32_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int32_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1693,15 +1678,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_reg_int32_t_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i32 @ld_reg_int32_t_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int32_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f0, r3, r4 @@ -1710,10 +1694,9 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i32 ret i32 %conv } @@ -1730,8 +1713,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptosi float %1 to i32 ret i32 %conv1 } @@ -1750,8 +1733,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptosi float %1 to i32 ret i32 %conv1 } @@ -1768,8 +1751,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i32 ret i32 %conv } @@ -1787,8 +1770,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 %conv = fptosi float %1 to i32 ret i32 %conv } @@ -1806,8 +1789,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i32 ret i32 %conv } @@ -1850,8 +1833,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 %conv = fptosi float %1 to i32 ret i32 %conv } @@ -1884,8 +1867,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i32 ret i32 %conv } @@ -1917,8 +1900,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 %conv = fptosi float %1 to i32 ret i32 %conv } @@ -1933,7 +1916,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptosi float %0 to i32 ret i32 %conv } @@ -1949,7 +1932,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = fptosi float %0 to i32 ret i32 %conv } @@ -1977,7 +1960,7 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptosi float %0 to i32 ret i32 %conv } @@ -1992,14 +1975,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align16_int32_t_double(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align16_int32_t_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int32_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) @@ -2008,15 +1991,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align32_int32_t_double(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align32_int32_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int32_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -2035,15 +2017,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_align64_int32_t_double(i8* nocapture readonly %ptr) { +define dso_local signext i32 @ld_align64_int32_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int32_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2065,15 +2046,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i32 @ld_reg_int32_t_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i32 @ld_reg_int32_t_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int32_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 @@ -2082,10 +2062,9 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i32 ret i32 %conv } @@ -2102,8 +2081,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptosi double %1 to i32 ret i32 %conv1 } @@ -2122,8 +2101,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptosi double %1 to i32 ret i32 %conv1 } @@ -2140,8 +2119,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i32 ret i32 %conv } @@ -2159,8 +2138,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i32 ret i32 %conv } @@ -2178,8 +2157,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i32 ret i32 %conv } @@ -2222,8 +2201,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 %conv = fptosi double %1 to i32 ret i32 %conv } @@ -2256,8 +2235,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i32 ret i32 %conv } @@ -2289,8 +2268,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 %conv = fptosi double %1 to i32 ret i32 %conv } @@ -2305,7 +2284,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptosi double %0 to i32 ret i32 %conv } @@ -2321,7 +2300,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = fptosi double %0 to i32 ret i32 %conv } @@ -2349,7 +2328,7 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptosi double %0 to i32 ret i32 %conv } @@ -2361,27 +2340,27 @@ ; CHECK-NEXT: lbz r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align16_uint32_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align16_uint32_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint32_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align32_uint32_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align32_uint32_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint32_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -2394,14 +2373,14 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align64_uint32_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align64_uint32_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint32_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2417,21 +2396,21 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_reg_uint32_t_uint8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i32 @ld_reg_uint32_t_uint8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint32_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i32 ret i32 %conv } @@ -2446,8 +2425,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = zext i8 %1 to i32 ret i32 %conv1 } @@ -2461,8 +2440,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i32 ret i32 %conv } @@ -2477,8 +2456,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = zext i8 %1 to i32 ret i32 %conv } @@ -2493,8 +2472,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i32 ret i32 %conv } @@ -2528,8 +2507,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = zext i8 %1 to i32 ret i32 %conv } @@ -2556,8 +2535,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i32 ret i32 %conv } @@ -2583,8 +2562,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = zext i8 %1 to i32 ret i32 %conv } @@ -2596,7 +2575,7 @@ ; CHECK-NEXT: lbz r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = zext i8 %0 to i32 ret i32 %conv } @@ -2609,7 +2588,7 @@ ; CHECK-NEXT: lbz r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = zext i8 %0 to i32 ret i32 %conv } @@ -2631,7 +2610,7 @@ ; CHECK-PREP10-NEXT: lbz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = zext i8 %0 to i32 ret i32 %conv } @@ -2645,14 +2624,14 @@ ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align16_uint32_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align16_uint32_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint32_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) @@ -2660,14 +2639,14 @@ ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align32_uint32_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align32_uint32_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint32_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -2684,14 +2663,14 @@ ; CHECK-PREP10-NEXT: clrldi r3, r3, 32 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align64_uint32_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align64_uint32_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint32_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2711,14 +2690,14 @@ ; CHECK-PREP10-NEXT: clrldi r3, r3, 32 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_reg_uint32_t_int8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i32 @ld_reg_uint32_t_int8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint32_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 @@ -2726,8 +2705,8 @@ ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i32 ret i32 %conv } @@ -2744,8 +2723,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = sext i8 %1 to i32 ret i32 %conv1 } @@ -2761,8 +2740,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -2779,8 +2758,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -2797,8 +2776,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -2838,8 +2817,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -2870,8 +2849,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -2901,8 +2880,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = sext i8 %1 to i32 ret i32 %conv } @@ -2916,7 +2895,7 @@ ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sext i8 %0 to i32 ret i32 %conv } @@ -2931,7 +2910,7 @@ ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sext i8 %0 to i32 ret i32 %conv } @@ -2957,7 +2936,7 @@ ; CHECK-PREP10-NEXT: clrldi r3, r3, 32 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sext i8 %0 to i32 ret i32 %conv } @@ -2969,28 +2948,27 @@ ; CHECK-NEXT: lhz r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align16_uint32_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align16_uint32_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint32_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhz r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align32_uint32_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align32_uint32_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint32_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plhz r3, 99999000(r3), 0 @@ -3003,15 +2981,14 @@ ; CHECK-PREP10-NEXT: lhzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align64_uint32_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align64_uint32_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint32_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3027,24 +3004,22 @@ ; CHECK-PREP10-NEXT: lhzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_reg_uint32_t_uint16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i32 @ld_reg_uint32_t_uint16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint32_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhzx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i32 ret i32 %conv } @@ -3058,8 +3033,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = zext i16 %1 to i32 ret i32 %conv1 } @@ -3073,8 +3048,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i32 ret i32 %conv } @@ -3089,8 +3064,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = zext i16 %1 to i32 ret i32 %conv } @@ -3105,8 +3080,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i32 ret i32 %conv } @@ -3140,8 +3115,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = zext i16 %1 to i32 ret i32 %conv } @@ -3168,8 +3143,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i32 ret i32 %conv } @@ -3195,8 +3170,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = zext i16 %1 to i32 ret i32 %conv } @@ -3208,7 +3183,7 @@ ; CHECK-NEXT: lhz r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = zext i16 %0 to i32 ret i32 %conv } @@ -3221,7 +3196,7 @@ ; CHECK-NEXT: lhz r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = zext i16 %0 to i32 ret i32 %conv } @@ -3243,7 +3218,7 @@ ; CHECK-PREP10-NEXT: lhz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = zext i16 %0 to i32 ret i32 %conv } @@ -3256,29 +3231,28 @@ ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align16_uint32_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align16_uint32_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint32_t_int16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lha r3, 8(r3) ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align32_uint32_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align32_uint32_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint32_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plha r3, 99999000(r3), 0 @@ -3293,15 +3267,14 @@ ; CHECK-PREP10-NEXT: clrldi r3, r3, 32 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align64_uint32_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align64_uint32_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint32_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3319,25 +3292,23 @@ ; CHECK-PREP10-NEXT: clrldi r3, r3, 32 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_reg_uint32_t_int16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i32 @ld_reg_uint32_t_int16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint32_t_int16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhax r3, r3, r4 ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i32 ret i32 %conv } @@ -3352,8 +3323,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = sext i16 %1 to i32 ret i32 %conv1 } @@ -3368,8 +3339,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -3385,8 +3356,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -3402,8 +3373,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -3440,8 +3411,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -3470,8 +3441,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -3499,8 +3470,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = sext i16 %1 to i32 ret i32 %conv } @@ -3513,7 +3484,7 @@ ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sext i16 %0 to i32 ret i32 %conv } @@ -3527,7 +3498,7 @@ ; CHECK-NEXT: clrldi r3, r3, 32 ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sext i16 %0 to i32 ret i32 %conv } @@ -3551,7 +3522,7 @@ ; CHECK-PREP10-NEXT: clrldi r3, r3, 32 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sext i16 %0 to i32 ret i32 %conv } @@ -3563,26 +3534,25 @@ ; CHECK-NEXT: lwz r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align16_uint32_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align16_uint32_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint32_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwz r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - ret i32 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + ret i32 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align32_uint32_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align32_uint32_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint32_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plwz r3, 99999000(r3), 0 @@ -3595,14 +3565,13 @@ ; CHECK-PREP10-NEXT: lwzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - ret i32 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + ret i32 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align64_uint32_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align64_uint32_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint32_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3618,23 +3587,21 @@ ; CHECK-PREP10-NEXT: lwzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - ret i32 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + ret i32 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_reg_uint32_t_uint32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i32 @ld_reg_uint32_t_uint32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint32_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwzx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - ret i32 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + ret i32 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn @@ -3647,8 +3614,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -3661,8 +3628,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -3676,8 +3643,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 ret i32 %1 } @@ -3691,8 +3658,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -3725,8 +3692,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 ret i32 %1 } @@ -3752,8 +3719,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 ret i32 %1 } @@ -3778,8 +3745,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 ret i32 %1 } @@ -3790,7 +3757,7 @@ ; CHECK-NEXT: lwz r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 ret i32 %0 } @@ -3802,7 +3769,7 @@ ; CHECK-NEXT: lwz r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 ret i32 %0 } @@ -3823,7 +3790,7 @@ ; CHECK-PREP10-NEXT: lwz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret i32 %0 } @@ -3839,14 +3806,14 @@ ; CHECK-BE-NEXT: lwz r3, 4(r3) ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align16_uint32_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align16_uint32_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_uint32_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lwz r3, 8(r3) @@ -3857,15 +3824,14 @@ ; CHECK-BE-NEXT: lwz r3, 12(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align32_uint32_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align32_uint32_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_uint32_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plwz r3, 99999000(r3), 0 @@ -3904,15 +3870,14 @@ ; CHECK-P8-BE-NEXT: lwzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align64_uint32_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align64_uint32_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_uint32_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -3962,15 +3927,14 @@ ; CHECK-P8-BE-NEXT: lwzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_reg_uint32_t_uint64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i32 @ld_reg_uint32_t_uint64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_uint32_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lwzx r3, r3, r4 @@ -3982,10 +3946,9 @@ ; CHECK-BE-NEXT: lwz r3, 4(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i32 ret i32 %conv } @@ -4005,8 +3968,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = trunc i64 %1 to i32 ret i32 %conv1 } @@ -4026,8 +3989,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -4048,8 +4011,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -4071,8 +4034,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -4131,8 +4094,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -4198,8 +4161,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -4263,8 +4226,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = trunc i64 %1 to i32 ret i32 %conv } @@ -4281,7 +4244,7 @@ ; CHECK-BE-NEXT: lwz r3, 4084(0) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i64 %0 to i32 ret i32 %conv } @@ -4300,7 +4263,7 @@ ; CHECK-BE-NEXT: lwz r3, -27104(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = trunc i64 %0 to i32 ret i32 %conv } @@ -4356,7 +4319,7 @@ ; CHECK-P8-BE-NEXT: lwz r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i64 %0 to i32 ret i32 %conv } @@ -4370,14 +4333,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align16_uint32_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align16_uint32_t_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint32_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f0, 8(r3) @@ -4385,15 +4348,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align32_uint32_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align32_uint32_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint32_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 99999000(r3), 0 @@ -4410,15 +4372,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align64_uint32_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align64_uint32_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint32_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -4438,15 +4399,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_reg_uint32_t_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i32 @ld_reg_uint32_t_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint32_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f0, r3, r4 @@ -4454,10 +4414,9 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i32 ret i32 %conv } @@ -4473,8 +4432,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptoui float %1 to i32 ret i32 %conv1 } @@ -4490,8 +4449,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i32 ret i32 %conv } @@ -4508,8 +4467,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 %conv = fptoui float %1 to i32 ret i32 %conv } @@ -4526,8 +4485,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i32 ret i32 %conv } @@ -4567,8 +4526,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 %conv = fptoui float %1 to i32 ret i32 %conv } @@ -4599,8 +4558,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i32 ret i32 %conv } @@ -4630,8 +4589,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 %conv = fptoui float %1 to i32 ret i32 %conv } @@ -4645,7 +4604,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptoui float %0 to i32 ret i32 %conv } @@ -4660,7 +4619,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = fptoui float %0 to i32 ret i32 %conv } @@ -4686,7 +4645,7 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptoui float %0 to i32 ret i32 %conv } @@ -4700,14 +4659,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align16_uint32_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align16_uint32_t_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint32_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) @@ -4715,15 +4674,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align32_uint32_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align32_uint32_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint32_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -4740,15 +4698,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_align64_uint32_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i32 @ld_align64_uint32_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint32_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -4768,15 +4725,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i32 ret i32 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i32 @ld_reg_uint32_t_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i32 @ld_reg_uint32_t_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint32_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 @@ -4784,10 +4740,9 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i32 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i32 ret i32 %conv } @@ -4803,8 +4758,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptoui double %1 to i32 ret i32 %conv1 } @@ -4820,8 +4775,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i32 ret i32 %conv } @@ -4838,8 +4793,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i32 ret i32 %conv } @@ -4856,8 +4811,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i32 ret i32 %conv } @@ -4897,8 +4852,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 %conv = fptoui double %1 to i32 ret i32 %conv } @@ -4929,8 +4884,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i32 ret i32 %conv } @@ -4960,8 +4915,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 %conv = fptoui double %1 to i32 ret i32 %conv } @@ -4975,7 +4930,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptoui double %0 to i32 ret i32 %conv } @@ -4990,7 +4945,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = fptoui double %0 to i32 ret i32 %conv } @@ -5016,7 +4971,7 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptoui double %0 to i32 ret i32 %conv } @@ -5029,26 +4984,26 @@ ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i8 - %0 = inttoptr i64 %ptr to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + store i8 %conv, ptr %0, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint32_t_uint8_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align16_uint32_t_uint8_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-LABEL: st_align16_uint32_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stb r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint32_t_uint8_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align32_uint32_t_uint8_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint32_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstb r4, 99999000(r3), 0 @@ -5062,13 +5017,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i32 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint32_t_uint8_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align64_uint32_t_uint8_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint32_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5085,21 +5040,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i32 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint32_t_uint8_t(i8* nocapture %ptr, i64 %off, i32 zeroext %str) { +define dso_local void @st_reg_uint32_t_uint8_t(ptr nocapture %ptr, i64 %off, i32 zeroext %str) { ; CHECK-LABEL: st_reg_uint32_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stbx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i8 %conv, ptr %add.ptr, align 1 ret void } @@ -5114,8 +5069,8 @@ %conv = trunc i32 %str to i8 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5129,8 +5084,8 @@ entry: %conv = trunc i32 %str to i8 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5145,8 +5100,8 @@ %and = and i64 %ptr, -4096 %conv = trunc i32 %str to i8 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 8 ret void } @@ -5161,8 +5116,8 @@ entry: %conv = trunc i32 %str to i8 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5196,8 +5151,8 @@ %and = and i64 %ptr, -1000341504 %conv = trunc i32 %str to i8 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 16 ret void } @@ -5224,8 +5179,8 @@ entry: %conv = trunc i32 %str to i8 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5251,8 +5206,8 @@ %and = and i64 %ptr, -1099511627776 %conv = trunc i32 %str to i8 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 4096 ret void } @@ -5264,7 +5219,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i8 - store i8 %conv, i8* inttoptr (i64 4080 to i8*), align 16 + store i8 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5277,7 +5232,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i8 - store i8 %conv, i8* inttoptr (i64 9999900 to i8*), align 4 + store i8 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5299,7 +5254,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i32 %str to i8 - store i8 %conv, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + store i8 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5311,27 +5266,26 @@ ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i16 - %0 = inttoptr i64 %ptr to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %conv, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint32_t_uint16_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align16_uint32_t_uint16_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-LABEL: st_align16_uint32_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sth r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint32_t_uint16_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align32_uint32_t_uint16_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint32_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: psth r4, 99999000(r3), 0 @@ -5345,14 +5299,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i32 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint32_t_uint16_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align64_uint32_t_uint16_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint32_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5369,23 +5322,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i32 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint32_t_uint16_t(i8* nocapture %ptr, i64 %off, i32 zeroext %str) { +define dso_local void @st_reg_uint32_t_uint16_t(ptr nocapture %ptr, i64 %off, i32 zeroext %str) { ; CHECK-LABEL: st_reg_uint32_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sthx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %conv, ptr %add.ptr, align 2 ret void } @@ -5400,8 +5351,8 @@ %conv = trunc i32 %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5415,8 +5366,8 @@ entry: %conv = trunc i32 %str to i16 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5431,8 +5382,8 @@ %and = and i64 %ptr, -4096 %conv = trunc i32 %str to i16 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 8 ret void } @@ -5447,8 +5398,8 @@ entry: %conv = trunc i32 %str to i16 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5482,8 +5433,8 @@ %and = and i64 %ptr, -1000341504 %conv = trunc i32 %str to i16 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 16 ret void } @@ -5510,8 +5461,8 @@ entry: %conv = trunc i32 %str to i16 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5537,8 +5488,8 @@ %and = and i64 %ptr, -1099511627776 %conv = trunc i32 %str to i16 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 4096 ret void } @@ -5550,7 +5501,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i16 - store i16 %conv, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5563,7 +5514,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i32 %str to i16 - store i16 %conv, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5585,7 +5536,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i32 %str to i16 - store i16 %conv, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5596,26 +5547,25 @@ ; CHECK-NEXT: stw r4, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - store i32 %str, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %str, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint32_t_uint32_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align16_uint32_t_uint32_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-LABEL: st_align16_uint32_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw r4, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %str, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %str, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint32_t_uint32_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align32_uint32_t_uint32_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint32_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstw r4, 99999000(r3), 0 @@ -5628,14 +5578,13 @@ ; CHECK-PREP10-NEXT: stwx r4, r3, r5 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %str, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %str, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint32_t_uint32_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align64_uint32_t_uint32_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint32_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5651,22 +5600,20 @@ ; CHECK-PREP10-NEXT: stwx r4, r3, r5 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %str, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %str, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint32_t_uint32_t(i8* nocapture %ptr, i64 %off, i32 zeroext %str) { +define dso_local void @st_reg_uint32_t_uint32_t(ptr nocapture %ptr, i64 %off, i32 zeroext %str) { ; CHECK-LABEL: st_reg_uint32_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stwx r5, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %str, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %str, ptr %add.ptr, align 4 ret void } @@ -5680,8 +5627,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %str, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %str, ptr %0, align 4 ret void } @@ -5694,8 +5641,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %str, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %str, ptr %0, align 4 ret void } @@ -5709,8 +5656,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %str, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %str, ptr %0, align 8 ret void } @@ -5724,8 +5671,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %str, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %str, ptr %0, align 4 ret void } @@ -5758,8 +5705,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %str, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %str, ptr %0, align 16 ret void } @@ -5785,8 +5732,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %str, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %str, ptr %0, align 4 ret void } @@ -5811,8 +5758,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %str, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %str, ptr %0, align 4096 ret void } @@ -5823,7 +5770,7 @@ ; CHECK-NEXT: stw r3, 4080(0) ; CHECK-NEXT: blr entry: - store i32 %str, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %str, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5835,7 +5782,7 @@ ; CHECK-NEXT: stw r3, -27108(r4) ; CHECK-NEXT: blr entry: - store i32 %str, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %str, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5856,7 +5803,7 @@ ; CHECK-PREP10-NEXT: stw r3, 0(r4) ; CHECK-PREP10-NEXT: blr entry: - store i32 %str, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %str, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5868,27 +5815,26 @@ ; CHECK-NEXT: blr entry: %conv = zext i32 %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint32_t_uint64_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align16_uint32_t_uint64_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-LABEL: st_align16_uint32_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: std r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = zext i32 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint32_t_uint64_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align32_uint32_t_uint64_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint32_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstd r4, 99999000(r3), 0 @@ -5902,14 +5848,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i32 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint32_t_uint64_t(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align64_uint32_t_uint64_t(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint32_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5926,23 +5871,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i32 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint32_t_uint64_t(i8* nocapture %ptr, i64 %off, i32 zeroext %str) { +define dso_local void @st_reg_uint32_t_uint64_t(ptr nocapture %ptr, i64 %off, i32 zeroext %str) { ; CHECK-LABEL: st_reg_uint32_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stdx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = zext i32 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -5957,8 +5900,8 @@ %conv = zext i32 %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -5972,8 +5915,8 @@ entry: %conv = zext i32 %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -5988,8 +5931,8 @@ %and = and i64 %ptr, -4096 %conv = zext i32 %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6004,8 +5947,8 @@ entry: %conv = zext i32 %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6039,8 +5982,8 @@ %and = and i64 %ptr, -1000341504 %conv = zext i32 %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -6067,8 +6010,8 @@ entry: %conv = zext i32 %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -6094,8 +6037,8 @@ %and = and i64 %ptr, -1099511627776 %conv = zext i32 %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -6107,7 +6050,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i32 %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6120,7 +6063,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i32 %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -6142,7 +6085,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i32 %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6156,13 +6099,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to float - %0 = inttoptr i64 %ptr to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint32_t_float(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align16_uint32_t_float(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-LABEL: st_align16_uint32_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r4 @@ -6171,14 +6114,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint32_t_float(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align32_uint32_t_float(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint32_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -6205,14 +6147,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i32 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint32_t_float(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align64_uint32_t_float(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint32_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -6243,14 +6184,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i32 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint32_t_float(i8* nocapture %ptr, i64 %off, i32 zeroext %str) { +define dso_local void @st_reg_uint32_t_float(ptr nocapture %ptr, i64 %off, i32 zeroext %str) { ; CHECK-LABEL: st_reg_uint32_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r5 @@ -6259,9 +6199,8 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %conv, ptr %add.ptr, align 4 ret void } @@ -6278,8 +6217,8 @@ %conv = uitofp i32 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6295,8 +6234,8 @@ entry: %conv = uitofp i32 %str to float %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6313,8 +6252,8 @@ %and = and i64 %ptr, -4096 %conv = uitofp i32 %str to float %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 8 ret void } @@ -6349,8 +6288,8 @@ entry: %conv = uitofp i32 %str to float %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6390,8 +6329,8 @@ %and = and i64 %ptr, -1000341504 %conv = uitofp i32 %str to float %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 16 ret void } @@ -6422,8 +6361,8 @@ entry: %conv = uitofp i32 %str to float %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6464,8 +6403,8 @@ %and = and i64 %ptr, -1099511627776 %conv = uitofp i32 %str to float %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4096 ret void } @@ -6479,7 +6418,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to float - store float %conv, float* inttoptr (i64 4080 to float*), align 16 + store float %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6494,7 +6433,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to float - store float %conv, float* inttoptr (i64 9999900 to float*), align 4 + store float %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -6530,7 +6469,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i32 %str to float - store float %conv, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6544,13 +6483,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to double - %0 = inttoptr i64 %ptr to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint32_t_double(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align16_uint32_t_double(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-LABEL: st_align16_uint32_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r4 @@ -6559,14 +6498,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint32_t_double(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align32_uint32_t_double(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint32_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -6593,14 +6531,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i32 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint32_t_double(i8* nocapture %ptr, i32 zeroext %str) { +define dso_local void @st_align64_uint32_t_double(ptr nocapture %ptr, i32 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint32_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -6631,14 +6568,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i32 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint32_t_double(i8* nocapture %ptr, i64 %off, i32 zeroext %str) { +define dso_local void @st_reg_uint32_t_double(ptr nocapture %ptr, i64 %off, i32 zeroext %str) { ; CHECK-LABEL: st_reg_uint32_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r5 @@ -6647,9 +6583,8 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %conv, ptr %add.ptr, align 8 ret void } @@ -6666,8 +6601,8 @@ %conv = uitofp i32 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6683,8 +6618,8 @@ entry: %conv = uitofp i32 %str to double %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6701,8 +6636,8 @@ %and = and i64 %ptr, -4096 %conv = uitofp i32 %str to double %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6737,8 +6672,8 @@ entry: %conv = uitofp i32 %str to double %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6778,8 +6713,8 @@ %and = and i64 %ptr, -1000341504 %conv = uitofp i32 %str to double %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 16 ret void } @@ -6810,8 +6745,8 @@ entry: %conv = uitofp i32 %str to double %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -6852,8 +6787,8 @@ %and = and i64 %ptr, -1099511627776 %conv = uitofp i32 %str to double %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 4096 ret void } @@ -6867,7 +6802,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to double - store double %conv, double* inttoptr (i64 4080 to double*), align 16 + store double %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6882,7 +6817,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i32 %str to double - store double %conv, double* inttoptr (i64 9999900 to double*), align 8 + store double %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -6918,7 +6853,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i32 %str to double - store double %conv, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6930,27 +6865,26 @@ ; CHECK-NEXT: blr entry: %conv = sext i32 %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int32_t_uint64_t(i8* nocapture %ptr, i32 signext %str) { +define dso_local void @st_align16_int32_t_uint64_t(ptr nocapture %ptr, i32 signext %str) { ; CHECK-LABEL: st_align16_int32_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: std r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = sext i32 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int32_t_uint64_t(i8* nocapture %ptr, i32 signext %str) { +define dso_local void @st_align32_int32_t_uint64_t(ptr nocapture %ptr, i32 signext %str) { ; CHECK-P10-LABEL: st_align32_int32_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstd r4, 99999000(r3), 0 @@ -6964,14 +6898,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i32 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int32_t_uint64_t(i8* nocapture %ptr, i32 signext %str) { +define dso_local void @st_align64_int32_t_uint64_t(ptr nocapture %ptr, i32 signext %str) { ; CHECK-P10-LABEL: st_align64_int32_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -6988,23 +6921,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i32 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int32_t_uint64_t(i8* nocapture %ptr, i64 %off, i32 signext %str) { +define dso_local void @st_reg_int32_t_uint64_t(ptr nocapture %ptr, i64 %off, i32 signext %str) { ; CHECK-LABEL: st_reg_int32_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stdx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = sext i32 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -7019,8 +6950,8 @@ %conv = sext i32 %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7034,8 +6965,8 @@ entry: %conv = sext i32 %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7050,8 +6981,8 @@ %and = and i64 %ptr, -4096 %conv = sext i32 %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7066,8 +6997,8 @@ entry: %conv = sext i32 %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7101,8 +7032,8 @@ %and = and i64 %ptr, -1000341504 %conv = sext i32 %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -7129,8 +7060,8 @@ entry: %conv = sext i32 %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7156,8 +7087,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sext i32 %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -7169,7 +7100,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i32 %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7182,7 +7113,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i32 %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -7204,7 +7135,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i32 %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7218,13 +7149,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to float - %0 = inttoptr i64 %ptr to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int32_t_float(i8* nocapture %ptr, i32 signext %str) { +define dso_local void @st_align16_int32_t_float(ptr nocapture %ptr, i32 signext %str) { ; CHECK-LABEL: st_align16_int32_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r4 @@ -7233,14 +7164,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int32_t_float(i8* nocapture %ptr, i32 signext %str) { +define dso_local void @st_align32_int32_t_float(ptr nocapture %ptr, i32 signext %str) { ; CHECK-P10-LABEL: st_align32_int32_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -7267,14 +7197,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i32 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int32_t_float(i8* nocapture %ptr, i32 signext %str) { +define dso_local void @st_align64_int32_t_float(ptr nocapture %ptr, i32 signext %str) { ; CHECK-P10-LABEL: st_align64_int32_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -7305,14 +7234,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i32 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int32_t_float(i8* nocapture %ptr, i64 %off, i32 signext %str) { +define dso_local void @st_reg_int32_t_float(ptr nocapture %ptr, i64 %off, i32 signext %str) { ; CHECK-LABEL: st_reg_int32_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r5 @@ -7321,9 +7249,8 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %conv, ptr %add.ptr, align 4 ret void } @@ -7340,8 +7267,8 @@ %conv = sitofp i32 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7357,8 +7284,8 @@ entry: %conv = sitofp i32 %str to float %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7375,8 +7302,8 @@ %and = and i64 %ptr, -4096 %conv = sitofp i32 %str to float %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 8 ret void } @@ -7411,8 +7338,8 @@ entry: %conv = sitofp i32 %str to float %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7452,8 +7379,8 @@ %and = and i64 %ptr, -1000341504 %conv = sitofp i32 %str to float %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 16 ret void } @@ -7484,8 +7411,8 @@ entry: %conv = sitofp i32 %str to float %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7526,8 +7453,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sitofp i32 %str to float %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4096 ret void } @@ -7541,7 +7468,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to float - store float %conv, float* inttoptr (i64 4080 to float*), align 16 + store float %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7556,7 +7483,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to float - store float %conv, float* inttoptr (i64 9999900 to float*), align 4 + store float %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -7592,7 +7519,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i32 %str to float - store float %conv, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7606,13 +7533,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to double - %0 = inttoptr i64 %ptr to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int32_t_double(i8* nocapture %ptr, i32 signext %str) { +define dso_local void @st_align16_int32_t_double(ptr nocapture %ptr, i32 signext %str) { ; CHECK-LABEL: st_align16_int32_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r4 @@ -7621,14 +7548,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int32_t_double(i8* nocapture %ptr, i32 signext %str) { +define dso_local void @st_align32_int32_t_double(ptr nocapture %ptr, i32 signext %str) { ; CHECK-P10-LABEL: st_align32_int32_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -7655,14 +7581,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i32 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int32_t_double(i8* nocapture %ptr, i32 signext %str) { +define dso_local void @st_align64_int32_t_double(ptr nocapture %ptr, i32 signext %str) { ; CHECK-P10-LABEL: st_align64_int32_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -7693,14 +7618,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i32 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int32_t_double(i8* nocapture %ptr, i64 %off, i32 signext %str) { +define dso_local void @st_reg_int32_t_double(ptr nocapture %ptr, i64 %off, i32 signext %str) { ; CHECK-LABEL: st_reg_int32_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r5 @@ -7709,9 +7633,8 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %conv, ptr %add.ptr, align 8 ret void } @@ -7728,8 +7651,8 @@ %conv = sitofp i32 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7745,8 +7668,8 @@ entry: %conv = sitofp i32 %str to double %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7763,8 +7686,8 @@ %and = and i64 %ptr, -4096 %conv = sitofp i32 %str to double %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7799,8 +7722,8 @@ entry: %conv = sitofp i32 %str to double %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7840,8 +7763,8 @@ %and = and i64 %ptr, -1000341504 %conv = sitofp i32 %str to double %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 16 ret void } @@ -7872,8 +7795,8 @@ entry: %conv = sitofp i32 %str to double %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7914,8 +7837,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sitofp i32 %str to double %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 4096 ret void } @@ -7929,7 +7852,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to double - store double %conv, double* inttoptr (i64 4080 to double*), align 16 + store double %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7944,7 +7867,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i32 %str to double - store double %conv, double* inttoptr (i64 9999900 to double*), align 8 + store double %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -7980,6 +7903,6 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i32 %str to double - store double %conv, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } Index: llvm/test/CodeGen/PowerPC/scalar-i64-ldst.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar-i64-ldst.ll +++ llvm/test/CodeGen/PowerPC/scalar-i64-ldst.ll @@ -27,14 +27,14 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_int64_t_float(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_int64_t_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int64_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f0, 8(r3) @@ -42,15 +42,14 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_int64_t_float(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_int64_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 99999000(r3), 0 @@ -67,15 +66,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_int64_t_float(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_int64_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -95,15 +93,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_int64_t_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_int64_t_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int64_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f0, r3, r4 @@ -111,10 +108,9 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i64 ret i64 %conv } @@ -130,8 +126,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptosi float %1 to i64 ret i64 %conv1 } @@ -147,8 +143,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i64 ret i64 %conv } @@ -165,8 +161,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 %conv = fptosi float %1 to i64 ret i64 %conv } @@ -183,8 +179,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i64 ret i64 %conv } @@ -224,8 +220,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 %conv = fptosi float %1 to i64 ret i64 %conv } @@ -256,8 +252,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i64 ret i64 %conv } @@ -287,8 +283,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 %conv = fptosi float %1 to i64 ret i64 %conv } @@ -302,7 +298,7 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptosi float %0 to i64 ret i64 %conv } @@ -317,7 +313,7 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = fptosi float %0 to i64 ret i64 %conv } @@ -343,7 +339,7 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptosi float %0 to i64 ret i64 %conv } @@ -357,14 +353,14 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_int64_t_double(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_int64_t_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int64_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) @@ -372,15 +368,14 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_int64_t_double(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_int64_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -397,15 +392,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_int64_t_double(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_int64_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -425,15 +419,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_int64_t_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_int64_t_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int64_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 @@ -441,10 +434,9 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i64 ret i64 %conv } @@ -460,8 +452,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptosi double %1 to i64 ret i64 %conv1 } @@ -477,8 +469,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i64 ret i64 %conv } @@ -495,8 +487,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i64 ret i64 %conv } @@ -513,8 +505,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i64 ret i64 %conv } @@ -554,8 +546,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 %conv = fptosi double %1 to i64 ret i64 %conv } @@ -586,8 +578,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i64 ret i64 %conv } @@ -617,8 +609,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 %conv = fptosi double %1 to i64 ret i64 %conv } @@ -632,7 +624,7 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptosi double %0 to i64 ret i64 %conv } @@ -647,7 +639,7 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = fptosi double %0 to i64 ret i64 %conv } @@ -673,7 +665,7 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptosi double %0 to i64 ret i64 %conv } @@ -685,40 +677,40 @@ ; CHECK-NEXT: lbz r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign16_uint64_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign16_uint64_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_unalign16_uint64_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 1(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_uint64_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_uint64_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint64_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign32_uint64_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign32_uint64_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign32_uint64_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999(r3), 0 @@ -731,14 +723,14 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_uint64_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_uint64_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint64_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -751,14 +743,14 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign64_uint64_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign64_uint64_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint64_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -776,14 +768,14 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_uint64_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_uint64_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint64_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -799,21 +791,21 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_uint64_t_uint8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_uint64_t_uint8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint64_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = zext i8 %0 to i64 ret i64 %conv } @@ -828,8 +820,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = zext i8 %1 to i64 ret i64 %conv1 } @@ -845,8 +837,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = zext i8 %1 to i64 ret i64 %conv1 } @@ -860,8 +852,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i64 ret i64 %conv } @@ -876,8 +868,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 2 %conv = zext i8 %1 to i64 ret i64 %conv } @@ -892,8 +884,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = zext i8 %1 to i64 ret i64 %conv } @@ -908,8 +900,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i64 ret i64 %conv } @@ -932,8 +924,8 @@ entry: %and = and i64 %ptr, -1048576 %or = or i64 %and, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i64 ret i64 %conv } @@ -967,8 +959,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = zext i8 %1 to i64 ret i64 %conv } @@ -995,8 +987,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i64 ret i64 %conv } @@ -1024,8 +1016,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = zext i8 %1 to i64 ret i64 %conv } @@ -1051,8 +1043,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = zext i8 %1 to i64 ret i64 %conv } @@ -1064,7 +1056,7 @@ ; CHECK-NEXT: lbz r3, 255(0) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 255 to i8*), align 1 + %0 = load i8, ptr inttoptr (i64 255 to ptr), align 1 %conv = zext i8 %0 to i64 ret i64 %conv } @@ -1076,7 +1068,7 @@ ; CHECK-NEXT: lbz r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = zext i8 %0 to i64 ret i64 %conv } @@ -1089,7 +1081,7 @@ ; CHECK-NEXT: lbz r3, -31073(r3) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 99999 to i8*), align 1 + %0 = load i8, ptr inttoptr (i64 99999 to ptr), align 1 %conv = zext i8 %0 to i64 ret i64 %conv } @@ -1102,7 +1094,7 @@ ; CHECK-NEXT: lbz r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = zext i8 %0 to i64 ret i64 %conv } @@ -1126,7 +1118,7 @@ ; CHECK-PREP10-NEXT: lbz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000001 to i8*), align 1 + %0 = load i8, ptr inttoptr (i64 1000000000001 to ptr), align 1 %conv = zext i8 %0 to i64 ret i64 %conv } @@ -1148,7 +1140,7 @@ ; CHECK-PREP10-NEXT: lbz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = zext i8 %0 to i64 ret i64 %conv } @@ -1161,42 +1153,42 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign16_uint64_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign16_uint64_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_unalign16_uint64_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 1(r3) ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_uint64_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_uint64_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint64_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign32_uint64_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign32_uint64_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign32_uint64_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999(r3), 0 @@ -1211,14 +1203,14 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_uint64_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_uint64_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint64_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -1233,14 +1225,14 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign64_uint64_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign64_uint64_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint64_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -1260,14 +1252,14 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_uint64_t_int8_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_uint64_t_int8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint64_t_int8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1285,22 +1277,22 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_uint64_t_int8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_uint64_t_int8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint64_t_int8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 %conv = sext i8 %0 to i64 ret i64 %conv } @@ -1316,8 +1308,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = sext i8 %1 to i64 ret i64 %conv1 } @@ -1334,8 +1326,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv1 = sext i8 %1 to i64 ret i64 %conv1 } @@ -1350,8 +1342,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i64 ret i64 %conv } @@ -1367,8 +1359,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 2 %conv = sext i8 %1 to i64 ret i64 %conv } @@ -1384,8 +1376,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 %conv = sext i8 %1 to i64 ret i64 %conv } @@ -1401,8 +1393,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i64 ret i64 %conv } @@ -1427,8 +1419,8 @@ entry: %and = and i64 %ptr, -1048576 %or = or i64 %and, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i64 ret i64 %conv } @@ -1465,8 +1457,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 %conv = sext i8 %1 to i64 ret i64 %conv } @@ -1495,8 +1487,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i64 ret i64 %conv } @@ -1526,8 +1518,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 %conv = sext i8 %1 to i64 ret i64 %conv } @@ -1555,8 +1547,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 %conv = sext i8 %1 to i64 ret i64 %conv } @@ -1569,7 +1561,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 255 to i8*), align 1 + %0 = load i8, ptr inttoptr (i64 255 to ptr), align 1 %conv = sext i8 %0 to i64 ret i64 %conv } @@ -1582,7 +1574,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sext i8 %0 to i64 ret i64 %conv } @@ -1596,7 +1588,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 99999 to i8*), align 1 + %0 = load i8, ptr inttoptr (i64 99999 to ptr), align 1 %conv = sext i8 %0 to i64 ret i64 %conv } @@ -1610,7 +1602,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sext i8 %0 to i64 ret i64 %conv } @@ -1636,7 +1628,7 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000001 to i8*), align 1 + %0 = load i8, ptr inttoptr (i64 1000000000001 to ptr), align 1 %conv = sext i8 %0 to i64 ret i64 %conv } @@ -1660,7 +1652,7 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sext i8 %0 to i64 ret i64 %conv } @@ -1672,42 +1664,40 @@ ; CHECK-NEXT: lhz r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign16_uint64_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign16_uint64_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_unalign16_uint64_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhz r3, 1(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_uint64_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_uint64_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint64_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhz r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign32_uint64_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign32_uint64_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign32_uint64_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plhz r3, 99999(r3), 0 @@ -1720,15 +1710,14 @@ ; CHECK-PREP10-NEXT: lhzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999 + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_uint64_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_uint64_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint64_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plhz r3, 99999000(r3), 0 @@ -1741,15 +1730,14 @@ ; CHECK-PREP10-NEXT: lhzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign64_uint64_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign64_uint64_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint64_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -1767,15 +1755,14 @@ ; CHECK-PREP10-NEXT: lhzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_uint64_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_uint64_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint64_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -1791,24 +1778,22 @@ ; CHECK-PREP10-NEXT: lhzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_uint64_t_uint16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_uint64_t_uint16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint64_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhzx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = zext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = zext i16 %0 to i64 ret i64 %conv } @@ -1822,8 +1807,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = zext i16 %1 to i64 ret i64 %conv1 } @@ -1839,8 +1824,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = zext i16 %1 to i64 ret i64 %conv1 } @@ -1854,8 +1839,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i64 ret i64 %conv } @@ -1870,8 +1855,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i64 ret i64 %conv } @@ -1886,8 +1871,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = zext i16 %1 to i64 ret i64 %conv } @@ -1902,8 +1887,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i64 ret i64 %conv } @@ -1926,8 +1911,8 @@ entry: %and = and i64 %ptr, -1048576 %or = or i64 %and, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i64 ret i64 %conv } @@ -1961,8 +1946,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = zext i16 %1 to i64 ret i64 %conv } @@ -1989,8 +1974,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i64 ret i64 %conv } @@ -2018,8 +2003,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = zext i16 %1 to i64 ret i64 %conv } @@ -2045,8 +2030,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = zext i16 %1 to i64 ret i64 %conv } @@ -2058,7 +2043,7 @@ ; CHECK-NEXT: lhz r3, 255(0) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 255 to i16*), align 2 + %0 = load i16, ptr inttoptr (i64 255 to ptr), align 2 %conv = zext i16 %0 to i64 ret i64 %conv } @@ -2070,7 +2055,7 @@ ; CHECK-NEXT: lhz r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = zext i16 %0 to i64 ret i64 %conv } @@ -2083,7 +2068,7 @@ ; CHECK-NEXT: lhz r3, -31073(r3) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 99999 to i16*), align 2 + %0 = load i16, ptr inttoptr (i64 99999 to ptr), align 2 %conv = zext i16 %0 to i64 ret i64 %conv } @@ -2096,7 +2081,7 @@ ; CHECK-NEXT: lhz r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = zext i16 %0 to i64 ret i64 %conv } @@ -2120,7 +2105,7 @@ ; CHECK-PREP10-NEXT: lhz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000001 to i16*), align 2 + %0 = load i16, ptr inttoptr (i64 1000000000001 to ptr), align 2 %conv = zext i16 %0 to i64 ret i64 %conv } @@ -2142,7 +2127,7 @@ ; CHECK-PREP10-NEXT: lhz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = zext i16 %0 to i64 ret i64 %conv } @@ -2154,42 +2139,40 @@ ; CHECK-NEXT: lha r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign16_uint64_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign16_uint64_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_unalign16_uint64_t_int16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lha r3, 1(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_uint64_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_uint64_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint64_t_int16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lha r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign32_uint64_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign32_uint64_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign32_uint64_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plha r3, 99999(r3), 0 @@ -2202,15 +2185,14 @@ ; CHECK-PREP10-NEXT: lhax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_uint64_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_uint64_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint64_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plha r3, 99999000(r3), 0 @@ -2223,15 +2205,14 @@ ; CHECK-PREP10-NEXT: lhax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign64_uint64_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign64_uint64_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint64_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -2249,15 +2230,14 @@ ; CHECK-PREP10-NEXT: lhax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_uint64_t_int16_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_uint64_t_int16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint64_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2273,24 +2253,22 @@ ; CHECK-PREP10-NEXT: lhax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_uint64_t_int16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_uint64_t_int16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint64_t_int16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lhax r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = sext i16 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = sext i16 %0 to i64 ret i64 %conv } @@ -2304,8 +2282,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = sext i16 %1 to i64 ret i64 %conv1 } @@ -2321,8 +2299,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = sext i16 %1 to i64 ret i64 %conv1 } @@ -2336,8 +2314,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i64 ret i64 %conv } @@ -2352,8 +2330,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i64 ret i64 %conv } @@ -2368,8 +2346,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = sext i16 %1 to i64 ret i64 %conv } @@ -2384,8 +2362,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i64 ret i64 %conv } @@ -2408,8 +2386,8 @@ entry: %and = and i64 %ptr, -1048576 %or = or i64 %and, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i64 ret i64 %conv } @@ -2443,8 +2421,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = sext i16 %1 to i64 ret i64 %conv } @@ -2471,8 +2449,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i64 ret i64 %conv } @@ -2500,8 +2478,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = sext i16 %1 to i64 ret i64 %conv } @@ -2527,8 +2505,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = sext i16 %1 to i64 ret i64 %conv } @@ -2540,7 +2518,7 @@ ; CHECK-NEXT: lha r3, 255(0) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 255 to i16*), align 2 + %0 = load i16, ptr inttoptr (i64 255 to ptr), align 2 %conv = sext i16 %0 to i64 ret i64 %conv } @@ -2552,7 +2530,7 @@ ; CHECK-NEXT: lha r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sext i16 %0 to i64 ret i64 %conv } @@ -2565,7 +2543,7 @@ ; CHECK-NEXT: lha r3, -31073(r3) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 99999 to i16*), align 2 + %0 = load i16, ptr inttoptr (i64 99999 to ptr), align 2 %conv = sext i16 %0 to i64 ret i64 %conv } @@ -2578,7 +2556,7 @@ ; CHECK-NEXT: lha r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sext i16 %0 to i64 ret i64 %conv } @@ -2602,7 +2580,7 @@ ; CHECK-PREP10-NEXT: lha r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000001 to i16*), align 2 + %0 = load i16, ptr inttoptr (i64 1000000000001 to ptr), align 2 %conv = sext i16 %0 to i64 ret i64 %conv } @@ -2624,7 +2602,7 @@ ; CHECK-PREP10-NEXT: lha r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sext i16 %0 to i64 ret i64 %conv } @@ -2636,42 +2614,40 @@ ; CHECK-NEXT: lwz r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = zext i32 %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign16_uint64_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign16_uint64_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_unalign16_uint64_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwz r3, 1(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = zext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load i32, ptr %add.ptr, align 4 + %conv = zext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_uint64_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_uint64_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint64_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwz r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = zext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = zext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign32_uint64_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign32_uint64_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign32_uint64_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plwz r3, 99999(r3), 0 @@ -2684,15 +2660,14 @@ ; CHECK-PREP10-NEXT: lwzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = zext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999 + %0 = load i32, ptr %add.ptr, align 4 + %conv = zext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_uint64_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_uint64_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint64_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plwz r3, 99999000(r3), 0 @@ -2705,15 +2680,14 @@ ; CHECK-PREP10-NEXT: lwzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = zext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = zext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign64_uint64_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign64_uint64_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint64_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -2731,15 +2705,14 @@ ; CHECK-PREP10-NEXT: lwzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = zext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i32, ptr %add.ptr, align 4 + %conv = zext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_uint64_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_uint64_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint64_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2755,24 +2728,22 @@ ; CHECK-PREP10-NEXT: lwzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = zext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = zext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_uint64_t_uint32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_uint64_t_uint32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint64_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwzx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = zext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = zext i32 %0 to i64 ret i64 %conv } @@ -2786,8 +2757,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = zext i32 %1 to i64 ret i64 %conv1 } @@ -2803,8 +2774,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = zext i32 %1 to i64 ret i64 %conv1 } @@ -2818,8 +2789,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = zext i32 %1 to i64 ret i64 %conv } @@ -2834,8 +2805,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = zext i32 %1 to i64 ret i64 %conv } @@ -2850,8 +2821,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = zext i32 %1 to i64 ret i64 %conv } @@ -2866,8 +2837,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = zext i32 %1 to i64 ret i64 %conv } @@ -2890,8 +2861,8 @@ entry: %and = and i64 %ptr, -1048576 %or = or i64 %and, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = zext i32 %1 to i64 ret i64 %conv } @@ -2925,8 +2896,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = zext i32 %1 to i64 ret i64 %conv } @@ -2953,8 +2924,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = zext i32 %1 to i64 ret i64 %conv } @@ -2982,8 +2953,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = zext i32 %1 to i64 ret i64 %conv } @@ -3009,8 +2980,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = zext i32 %1 to i64 ret i64 %conv } @@ -3022,7 +2993,7 @@ ; CHECK-NEXT: lwz r3, 255(0) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 255 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 255 to ptr), align 4 %conv = zext i32 %0 to i64 ret i64 %conv } @@ -3034,7 +3005,7 @@ ; CHECK-NEXT: lwz r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = zext i32 %0 to i64 ret i64 %conv } @@ -3047,7 +3018,7 @@ ; CHECK-NEXT: lwz r3, -31073(r3) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 99999 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 99999 to ptr), align 4 %conv = zext i32 %0 to i64 ret i64 %conv } @@ -3060,7 +3031,7 @@ ; CHECK-NEXT: lwz r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = zext i32 %0 to i64 ret i64 %conv } @@ -3084,7 +3055,7 @@ ; CHECK-PREP10-NEXT: lwz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000001 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 1000000000001 to ptr), align 4 %conv = zext i32 %0 to i64 ret i64 %conv } @@ -3106,7 +3077,7 @@ ; CHECK-PREP10-NEXT: lwz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = zext i32 %0 to i64 ret i64 %conv } @@ -3118,14 +3089,14 @@ ; CHECK-NEXT: lwa r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = sext i32 %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign16_uint64_t_int32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign16_uint64_t_int32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign16_uint64_t_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plwa r3, 1(r3), 0 @@ -3137,29 +3108,27 @@ ; CHECK-PREP10-NEXT: lwax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_uint64_t_int32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_uint64_t_int32_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint64_t_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwa r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign32_uint64_t_int32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign32_uint64_t_int32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign32_uint64_t_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plwa r3, 99999(r3), 0 @@ -3172,15 +3141,14 @@ ; CHECK-PREP10-NEXT: lwax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_uint64_t_int32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_uint64_t_int32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint64_t_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plwa r3, 99999000(r3), 0 @@ -3193,15 +3161,14 @@ ; CHECK-PREP10-NEXT: lwax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign64_uint64_t_int32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign64_uint64_t_int32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint64_t_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -3219,15 +3186,14 @@ ; CHECK-PREP10-NEXT: lwax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_uint64_t_int32_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_uint64_t_int32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint64_t_int32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3243,24 +3209,22 @@ ; CHECK-PREP10-NEXT: lwax r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = sext i32 %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_uint64_t_int32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_uint64_t_int32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint64_t_int32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwax r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = sext i32 %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = sext i32 %0 to i64 ret i64 %conv } @@ -3274,8 +3238,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = sext i32 %1 to i64 ret i64 %conv1 } @@ -3291,8 +3255,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = sext i32 %1 to i64 ret i64 %conv1 } @@ -3306,8 +3270,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sext i32 %1 to i64 ret i64 %conv } @@ -3336,8 +3300,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sext i32 %1 to i64 ret i64 %conv } @@ -3352,8 +3316,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = sext i32 %1 to i64 ret i64 %conv } @@ -3368,8 +3332,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sext i32 %1 to i64 ret i64 %conv } @@ -3392,8 +3356,8 @@ entry: %and = and i64 %ptr, -1048576 %or = or i64 %and, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sext i32 %1 to i64 ret i64 %conv } @@ -3427,8 +3391,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = sext i32 %1 to i64 ret i64 %conv } @@ -3455,8 +3419,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sext i32 %1 to i64 ret i64 %conv } @@ -3484,8 +3448,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = sext i32 %1 to i64 ret i64 %conv } @@ -3511,8 +3475,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = sext i32 %1 to i64 ret i64 %conv } @@ -3525,7 +3489,7 @@ ; CHECK-NEXT: lwa r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 255 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 255 to ptr), align 4 %conv = sext i32 %0 to i64 ret i64 %conv } @@ -3537,7 +3501,7 @@ ; CHECK-NEXT: lwa r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = sext i32 %0 to i64 ret i64 %conv } @@ -3557,7 +3521,7 @@ ; CHECK-PREP10-NEXT: lwa r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 99999 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 99999 to ptr), align 4 %conv = sext i32 %0 to i64 ret i64 %conv } @@ -3570,7 +3534,7 @@ ; CHECK-NEXT: lwa r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = sext i32 %0 to i64 ret i64 %conv } @@ -3594,7 +3558,7 @@ ; CHECK-PREP10-NEXT: lwa r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000001 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 1000000000001 to ptr), align 4 %conv = sext i32 %0 to i64 ret i64 %conv } @@ -3616,7 +3580,7 @@ ; CHECK-PREP10-NEXT: lwa r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = sext i32 %0 to i64 ret i64 %conv } @@ -3628,13 +3592,13 @@ ; CHECK-NEXT: ld r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign16_uint64_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign16_uint64_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign16_uint64_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pld r3, 1(r3), 0 @@ -3646,27 +3610,25 @@ ; CHECK-PREP10-NEXT: ldx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - ret i64 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load i64, ptr %add.ptr, align 8 + ret i64 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_uint64_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_uint64_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint64_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: ld r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - ret i64 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + ret i64 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign32_uint64_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign32_uint64_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign32_uint64_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pld r3, 99999(r3), 0 @@ -3679,14 +3641,13 @@ ; CHECK-PREP10-NEXT: ldx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - ret i64 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999 + %0 = load i64, ptr %add.ptr, align 8 + ret i64 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_uint64_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_uint64_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint64_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pld r3, 99999000(r3), 0 @@ -3699,14 +3660,13 @@ ; CHECK-PREP10-NEXT: ldx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - ret i64 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + ret i64 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign64_uint64_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign64_uint64_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint64_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -3724,14 +3684,13 @@ ; CHECK-PREP10-NEXT: ldx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - ret i64 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i64, ptr %add.ptr, align 8 + ret i64 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_uint64_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_uint64_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint64_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -3747,23 +3706,21 @@ ; CHECK-PREP10-NEXT: ldx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - ret i64 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + ret i64 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_uint64_t_uint64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_uint64_t_uint64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint64_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: ldx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - ret i64 %1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + ret i64 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn @@ -3776,8 +3733,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } @@ -3792,8 +3749,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } @@ -3806,8 +3763,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } @@ -3835,8 +3792,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } @@ -3850,8 +3807,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } @@ -3865,8 +3822,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } @@ -3888,8 +3845,8 @@ entry: %and = and i64 %ptr, -1048576 %or = or i64 %and, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } @@ -3922,8 +3879,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 ret i64 %1 } @@ -3949,8 +3906,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } @@ -3977,8 +3934,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 ret i64 %1 } @@ -4003,8 +3960,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 ret i64 %1 } @@ -4016,7 +3973,7 @@ ; CHECK-NEXT: ld r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 255 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 255 to ptr), align 8 ret i64 %0 } @@ -4027,7 +3984,7 @@ ; CHECK-NEXT: ld r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 ret i64 %0 } @@ -4046,7 +4003,7 @@ ; CHECK-PREP10-NEXT: ld r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 99999 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 99999 to ptr), align 8 ret i64 %0 } @@ -4058,7 +4015,7 @@ ; CHECK-NEXT: ld r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 ret i64 %0 } @@ -4081,7 +4038,7 @@ ; CHECK-PREP10-NEXT: ld r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000001 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 1000000000001 to ptr), align 8 ret i64 %0 } @@ -4102,7 +4059,7 @@ ; CHECK-PREP10-NEXT: ld r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret i64 %0 } @@ -4115,14 +4072,14 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign16_uint64_t_float(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign16_uint64_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign16_uint64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 1(r3), 0 @@ -4137,15 +4094,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_uint64_t_float(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_uint64_t_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint64_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f0, 8(r3) @@ -4153,15 +4109,14 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign32_uint64_t_float(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign32_uint64_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign32_uint64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 99999(r3), 0 @@ -4178,15 +4133,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_uint64_t_float(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_uint64_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 99999000(r3), 0 @@ -4203,15 +4157,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign64_uint64_t_float(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign64_uint64_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -4233,15 +4186,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_uint64_t_float(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_uint64_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -4261,15 +4213,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_uint64_t_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_uint64_t_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint64_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f0, r3, r4 @@ -4277,10 +4228,9 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i64 ret i64 %conv } @@ -4296,8 +4246,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptoui float %1 to i64 ret i64 %conv1 } @@ -4315,8 +4265,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptoui float %1 to i64 ret i64 %conv1 } @@ -4332,8 +4282,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i64 ret i64 %conv } @@ -4358,8 +4308,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i64 ret i64 %conv } @@ -4376,8 +4326,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 %conv = fptoui float %1 to i64 ret i64 %conv } @@ -4394,8 +4344,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i64 ret i64 %conv } @@ -4422,8 +4372,8 @@ entry: %and = and i64 %ptr, -1048576 %or = or i64 %and, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i64 ret i64 %conv } @@ -4463,8 +4413,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 %conv = fptoui float %1 to i64 ret i64 %conv } @@ -4495,8 +4445,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i64 ret i64 %conv } @@ -4528,8 +4478,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i64 ret i64 %conv } @@ -4559,8 +4509,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 %conv = fptoui float %1 to i64 ret i64 %conv } @@ -4590,7 +4540,7 @@ ; CHECK-P8-NEXT: mffprd r3, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 255 to float*), align 4 + %0 = load float, ptr inttoptr (i64 255 to ptr), align 4 %conv = fptoui float %0 to i64 ret i64 %conv } @@ -4604,7 +4554,7 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptoui float %0 to i64 ret i64 %conv } @@ -4636,7 +4586,7 @@ ; CHECK-P8-NEXT: mffprd r3, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 99999 to float*), align 4 + %0 = load float, ptr inttoptr (i64 99999 to ptr), align 4 %conv = fptoui float %0 to i64 ret i64 %conv } @@ -4651,7 +4601,7 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = fptoui float %0 to i64 ret i64 %conv } @@ -4679,7 +4629,7 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000001 to float*), align 4 + %0 = load float, ptr inttoptr (i64 1000000000001 to ptr), align 4 %conv = fptoui float %0 to i64 ret i64 %conv } @@ -4705,7 +4655,7 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptoui float %0 to i64 ret i64 %conv } @@ -4719,14 +4669,14 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign16_uint64_t_double(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign16_uint64_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign16_uint64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 1(r3), 0 @@ -4741,15 +4691,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align16_uint64_t_double(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align16_uint64_t_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint64_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) @@ -4757,15 +4706,14 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign32_uint64_t_double(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign32_uint64_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign32_uint64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999(r3), 0 @@ -4782,15 +4730,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align32_uint64_t_double(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align32_uint64_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -4807,15 +4754,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_unalign64_uint64_t_double(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_unalign64_uint64_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -4837,15 +4783,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_align64_uint64_t_double(i8* nocapture readonly %ptr) { +define dso_local i64 @ld_align64_uint64_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -4865,15 +4810,14 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i64 ret i64 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local i64 @ld_reg_uint64_t_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local i64 @ld_reg_uint64_t_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint64_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 @@ -4881,10 +4825,9 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i64 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i64 ret i64 %conv } @@ -4900,8 +4843,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptoui double %1 to i64 ret i64 %conv1 } @@ -4919,8 +4862,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptoui double %1 to i64 ret i64 %conv1 } @@ -4936,8 +4879,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i64 ret i64 %conv } @@ -4962,8 +4905,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i64 ret i64 %conv } @@ -4980,8 +4923,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i64 ret i64 %conv } @@ -4998,8 +4941,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i64 ret i64 %conv } @@ -5026,8 +4969,8 @@ entry: %and = and i64 %ptr, -1048576 %or = or i64 %and, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i64 ret i64 %conv } @@ -5067,8 +5010,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 %conv = fptoui double %1 to i64 ret i64 %conv } @@ -5099,8 +5042,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i64 ret i64 %conv } @@ -5132,8 +5075,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i64 ret i64 %conv } @@ -5163,8 +5106,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 %conv = fptoui double %1 to i64 ret i64 %conv } @@ -5194,7 +5137,7 @@ ; CHECK-P8-NEXT: mffprd r3, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 255 to double*), align 8 + %0 = load double, ptr inttoptr (i64 255 to ptr), align 8 %conv = fptoui double %0 to i64 ret i64 %conv } @@ -5208,7 +5151,7 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptoui double %0 to i64 ret i64 %conv } @@ -5240,7 +5183,7 @@ ; CHECK-P8-NEXT: mffprd r3, f0 ; CHECK-P8-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 99999 to double*), align 8 + %0 = load double, ptr inttoptr (i64 99999 to ptr), align 8 %conv = fptoui double %0 to i64 ret i64 %conv } @@ -5255,7 +5198,7 @@ ; CHECK-NEXT: mffprd r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = fptoui double %0 to i64 ret i64 %conv } @@ -5283,7 +5226,7 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000001 to double*), align 8 + %0 = load double, ptr inttoptr (i64 1000000000001 to ptr), align 8 %conv = fptoui double %0 to i64 ret i64 %conv } @@ -5309,7 +5252,7 @@ ; CHECK-PREP10-NEXT: mffprd r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptoui double %0 to i64 ret i64 %conv } @@ -5322,26 +5265,26 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i8 - %0 = inttoptr i64 %ptr to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + store i8 %conv, ptr %0, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint64_t_uint8_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align16_uint64_t_uint8_t(ptr nocapture %ptr, i64 %str) { ; CHECK-LABEL: st_align16_uint64_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stb r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint64_t_uint8_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align32_uint64_t_uint8_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align32_uint64_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstb r4, 99999000(r3), 0 @@ -5355,13 +5298,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint64_t_uint8_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align64_uint64_t_uint8_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align64_uint64_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5378,21 +5321,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i8 %conv, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint64_t_uint8_t(i8* nocapture %ptr, i64 %off, i64 %str) { +define dso_local void @st_reg_uint64_t_uint8_t(ptr nocapture %ptr, i64 %off, i64 %str) { ; CHECK-LABEL: st_reg_uint64_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stbx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i8 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - store i8 %conv, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i8 %conv, ptr %add.ptr, align 1 ret void } @@ -5407,8 +5350,8 @@ %conv = trunc i64 %str to i8 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5424,8 +5367,8 @@ %conv = trunc i64 %str to i8 %conv1 = zext i8 %off to i64 %or = or i64 %and, %conv1 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5439,8 +5382,8 @@ entry: %conv = trunc i64 %str to i8 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5455,8 +5398,8 @@ %and = and i64 %ptr, -4096 %conv = trunc i64 %str to i8 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 8 ret void } @@ -5471,8 +5414,8 @@ entry: %conv = trunc i64 %str to i8 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5506,8 +5449,8 @@ %and = and i64 %ptr, -1000341504 %conv = trunc i64 %str to i8 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 16 ret void } @@ -5534,8 +5477,8 @@ entry: %conv = trunc i64 %str to i8 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 1 ret void } @@ -5561,8 +5504,8 @@ %and = and i64 %ptr, -1099511627776 %conv = trunc i64 %str to i8 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - store i8 %conv, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i8 %conv, ptr %0, align 4096 ret void } @@ -5574,7 +5517,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i8 - store i8 %conv, i8* inttoptr (i64 4080 to i8*), align 16 + store i8 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5587,7 +5530,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i8 - store i8 %conv, i8* inttoptr (i64 9999900 to i8*), align 4 + store i8 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5609,7 +5552,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i8 - store i8 %conv, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + store i8 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5621,27 +5564,26 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - %0 = inttoptr i64 %ptr to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %conv, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint64_t_uint16_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align16_uint64_t_uint16_t(ptr nocapture %ptr, i64 %str) { ; CHECK-LABEL: st_align16_uint64_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sth r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint64_t_uint16_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align32_uint64_t_uint16_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align32_uint64_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: psth r4, 99999000(r3), 0 @@ -5655,14 +5597,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint64_t_uint16_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align64_uint64_t_uint16_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align64_uint64_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5679,23 +5620,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint64_t_uint16_t(i8* nocapture %ptr, i64 %off, i64 %str) { +define dso_local void @st_reg_uint64_t_uint16_t(ptr nocapture %ptr, i64 %off, i64 %str) { ; CHECK-LABEL: st_reg_uint64_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sthx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %conv, ptr %add.ptr, align 2 ret void } @@ -5710,8 +5649,8 @@ %conv = trunc i64 %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5727,8 +5666,8 @@ %conv = trunc i64 %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %and, %conv1 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5742,8 +5681,8 @@ entry: %conv = trunc i64 %str to i16 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5758,8 +5697,8 @@ %and = and i64 %ptr, -4096 %conv = trunc i64 %str to i16 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 8 ret void } @@ -5774,8 +5713,8 @@ entry: %conv = trunc i64 %str to i16 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5809,8 +5748,8 @@ %and = and i64 %ptr, -1000341504 %conv = trunc i64 %str to i16 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 16 ret void } @@ -5837,8 +5776,8 @@ entry: %conv = trunc i64 %str to i16 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -5864,8 +5803,8 @@ %and = and i64 %ptr, -1099511627776 %conv = trunc i64 %str to i16 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 4096 ret void } @@ -5877,7 +5816,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - store i16 %conv, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -5890,7 +5829,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - store i16 %conv, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -5912,7 +5851,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i16 - store i16 %conv, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -5924,27 +5863,26 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - %0 = inttoptr i64 %ptr to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %conv, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint64_t_int16_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align16_uint64_t_int16_t(ptr nocapture %ptr, i64 %str) { ; CHECK-LABEL: st_align16_uint64_t_int16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sth r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint64_t_int16_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align32_uint64_t_int16_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align32_uint64_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: psth r4, 99999000(r3), 0 @@ -5958,14 +5896,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint64_t_int16_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align64_uint64_t_int16_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align64_uint64_t_int16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -5982,23 +5919,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint64_t_int16_t(i8* nocapture %ptr, i64 %off, i64 %str) { +define dso_local void @st_reg_uint64_t_int16_t(ptr nocapture %ptr, i64 %off, i64 %str) { ; CHECK-LABEL: st_reg_uint64_t_int16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sthx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %conv, ptr %add.ptr, align 2 ret void } @@ -6013,8 +5948,8 @@ %conv = trunc i64 %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -6030,8 +5965,8 @@ %conv = trunc i64 %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %and, %conv1 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -6045,8 +5980,8 @@ entry: %conv = trunc i64 %str to i16 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -6061,8 +5996,8 @@ %and = and i64 %ptr, -4096 %conv = trunc i64 %str to i16 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 8 ret void } @@ -6077,8 +6012,8 @@ entry: %conv = trunc i64 %str to i16 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -6112,8 +6047,8 @@ %and = and i64 %ptr, -1000341504 %conv = trunc i64 %str to i16 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 16 ret void } @@ -6140,8 +6075,8 @@ entry: %conv = trunc i64 %str to i16 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -6167,8 +6102,8 @@ %and = and i64 %ptr, -1099511627776 %conv = trunc i64 %str to i16 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 4096 ret void } @@ -6180,7 +6115,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - store i16 %conv, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6193,7 +6128,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i16 - store i16 %conv, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -6215,7 +6150,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i16 - store i16 %conv, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6227,27 +6162,26 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i32 - %0 = inttoptr i64 %ptr to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint64_t_uint32_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align16_uint64_t_uint32_t(ptr nocapture %ptr, i64 %str) { ; CHECK-LABEL: st_align16_uint64_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint64_t_uint32_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align32_uint64_t_uint32_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align32_uint64_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstw r4, 99999000(r3), 0 @@ -6261,14 +6195,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint64_t_uint32_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align64_uint64_t_uint32_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align64_uint64_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -6285,23 +6218,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint64_t_uint32_t(i8* nocapture %ptr, i64 %off, i64 %str) { +define dso_local void @st_reg_uint64_t_uint32_t(ptr nocapture %ptr, i64 %off, i64 %str) { ; CHECK-LABEL: st_reg_uint64_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stwx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %conv, ptr %add.ptr, align 4 ret void } @@ -6316,8 +6247,8 @@ %conv = trunc i64 %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6333,8 +6264,8 @@ %conv = trunc i64 %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %and, %conv1 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6348,8 +6279,8 @@ entry: %conv = trunc i64 %str to i32 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6364,8 +6295,8 @@ %and = and i64 %ptr, -4096 %conv = trunc i64 %str to i32 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 8 ret void } @@ -6380,8 +6311,8 @@ entry: %conv = trunc i64 %str to i32 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6415,8 +6346,8 @@ %and = and i64 %ptr, -1000341504 %conv = trunc i64 %str to i32 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 16 ret void } @@ -6443,8 +6374,8 @@ entry: %conv = trunc i64 %str to i32 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6470,8 +6401,8 @@ %and = and i64 %ptr, -1099511627776 %conv = trunc i64 %str to i32 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4096 ret void } @@ -6483,7 +6414,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i32 - store i32 %conv, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6496,7 +6427,7 @@ ; CHECK-NEXT: blr entry: %conv = trunc i64 %str to i32 - store i32 %conv, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -6518,7 +6449,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = trunc i64 %str to i32 - store i32 %conv, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6529,26 +6460,25 @@ ; CHECK-NEXT: std r4, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - store i64 %str, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %str, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint64_t_uint64_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align16_uint64_t_uint64_t(ptr nocapture %ptr, i64 %str) { ; CHECK-LABEL: st_align16_uint64_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: std r4, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %str, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %str, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint64_t_uint64_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align32_uint64_t_uint64_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align32_uint64_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstd r4, 99999000(r3), 0 @@ -6561,14 +6491,13 @@ ; CHECK-PREP10-NEXT: stdx r4, r3, r5 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %str, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %str, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint64_t_uint64_t(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align64_uint64_t_uint64_t(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align64_uint64_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -6584,22 +6513,20 @@ ; CHECK-PREP10-NEXT: stdx r4, r3, r5 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %str, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %str, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint64_t_uint64_t(i8* nocapture %ptr, i64 %off, i64 %str) { +define dso_local void @st_reg_uint64_t_uint64_t(ptr nocapture %ptr, i64 %off, i64 %str) { ; CHECK-LABEL: st_reg_uint64_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stdx r5, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %str, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %str, ptr %add.ptr, align 8 ret void } @@ -6613,8 +6540,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %str, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %str, ptr %0, align 8 ret void } @@ -6629,8 +6556,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %off to i64 %or = or i64 %and, %conv - %0 = inttoptr i64 %or to i64* - store i64 %str, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %str, ptr %0, align 8 ret void } @@ -6643,8 +6570,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %str, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %str, ptr %0, align 8 ret void } @@ -6658,8 +6585,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %str, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %str, ptr %0, align 8 ret void } @@ -6673,8 +6600,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %str, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %str, ptr %0, align 8 ret void } @@ -6707,8 +6634,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %str, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %str, ptr %0, align 16 ret void } @@ -6734,8 +6661,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %str, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %str, ptr %0, align 8 ret void } @@ -6760,8 +6687,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %str, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %str, ptr %0, align 4096 ret void } @@ -6772,7 +6699,7 @@ ; CHECK-NEXT: std r3, 4080(0) ; CHECK-NEXT: blr entry: - store i64 %str, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %str, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6784,7 +6711,7 @@ ; CHECK-NEXT: std r3, -27108(r4) ; CHECK-NEXT: blr entry: - store i64 %str, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %str, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -6805,7 +6732,7 @@ ; CHECK-PREP10-NEXT: std r3, 0(r4) ; CHECK-PREP10-NEXT: blr entry: - store i64 %str, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %str, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6819,13 +6746,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to float - %0 = inttoptr i64 %ptr to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint64_t_float(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align16_uint64_t_float(ptr nocapture %ptr, i64 %str) { ; CHECK-LABEL: st_align16_uint64_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprd f0, r4 @@ -6834,14 +6761,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint64_t_float(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align32_uint64_t_float(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align32_uint64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprd f0, r4 @@ -6868,14 +6794,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i64 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint64_t_float(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align64_uint64_t_float(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align64_uint64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprd f0, r4 @@ -6906,14 +6831,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i64 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint64_t_float(i8* nocapture %ptr, i64 %off, i64 %str) { +define dso_local void @st_reg_uint64_t_float(ptr nocapture %ptr, i64 %off, i64 %str) { ; CHECK-LABEL: st_reg_uint64_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprd f0, r5 @@ -6922,9 +6846,8 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %conv, ptr %add.ptr, align 4 ret void } @@ -6941,8 +6864,8 @@ %conv = uitofp i64 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6960,8 +6883,8 @@ %conv = uitofp i64 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %and, %conv1 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6977,8 +6900,8 @@ entry: %conv = uitofp i64 %str to float %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -6995,8 +6918,8 @@ %and = and i64 %ptr, -4096 %conv = uitofp i64 %str to float %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 8 ret void } @@ -7031,8 +6954,8 @@ entry: %conv = uitofp i64 %str to float %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7072,8 +6995,8 @@ %and = and i64 %ptr, -1000341504 %conv = uitofp i64 %str to float %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 16 ret void } @@ -7104,8 +7027,8 @@ entry: %conv = uitofp i64 %str to float %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7146,8 +7069,8 @@ %and = and i64 %ptr, -1099511627776 %conv = uitofp i64 %str to float %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4096 ret void } @@ -7161,7 +7084,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to float - store float %conv, float* inttoptr (i64 4080 to float*), align 16 + store float %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7176,7 +7099,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to float - store float %conv, float* inttoptr (i64 9999900 to float*), align 4 + store float %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -7212,7 +7135,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i64 %str to float - store float %conv, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7226,13 +7149,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to double - %0 = inttoptr i64 %ptr to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint64_t_double(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align16_uint64_t_double(ptr nocapture %ptr, i64 %str) { ; CHECK-LABEL: st_align16_uint64_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprd f0, r4 @@ -7241,14 +7164,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint64_t_double(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align32_uint64_t_double(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align32_uint64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprd f0, r4 @@ -7275,14 +7197,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i64 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint64_t_double(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align64_uint64_t_double(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align64_uint64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprd f0, r4 @@ -7313,14 +7234,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i64 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint64_t_double(i8* nocapture %ptr, i64 %off, i64 %str) { +define dso_local void @st_reg_uint64_t_double(ptr nocapture %ptr, i64 %off, i64 %str) { ; CHECK-LABEL: st_reg_uint64_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprd f0, r5 @@ -7329,9 +7249,8 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %conv, ptr %add.ptr, align 8 ret void } @@ -7348,8 +7267,8 @@ %conv = uitofp i64 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7367,8 +7286,8 @@ %conv = uitofp i64 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %and, %conv1 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7384,8 +7303,8 @@ entry: %conv = uitofp i64 %str to double %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7402,8 +7321,8 @@ %and = and i64 %ptr, -4096 %conv = uitofp i64 %str to double %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7438,8 +7357,8 @@ entry: %conv = uitofp i64 %str to double %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7479,8 +7398,8 @@ %and = and i64 %ptr, -1000341504 %conv = uitofp i64 %str to double %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 16 ret void } @@ -7511,8 +7430,8 @@ entry: %conv = uitofp i64 %str to double %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7553,8 +7472,8 @@ %and = and i64 %ptr, -1099511627776 %conv = uitofp i64 %str to double %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 4096 ret void } @@ -7568,7 +7487,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to double - store double %conv, double* inttoptr (i64 4080 to double*), align 16 + store double %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7583,7 +7502,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i64 %str to double - store double %conv, double* inttoptr (i64 9999900 to double*), align 8 + store double %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -7619,7 +7538,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i64 %str to double - store double %conv, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7633,13 +7552,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to float - %0 = inttoptr i64 %ptr to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int64_t_float(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align16_int64_t_float(ptr nocapture %ptr, i64 %str) { ; CHECK-LABEL: st_align16_int64_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprd f0, r4 @@ -7648,14 +7567,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int64_t_float(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align32_int64_t_float(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align32_int64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprd f0, r4 @@ -7682,14 +7600,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i64 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int64_t_float(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align64_int64_t_float(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align64_int64_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprd f0, r4 @@ -7720,14 +7637,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i64 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int64_t_float(i8* nocapture %ptr, i64 %off, i64 %str) { +define dso_local void @st_reg_int64_t_float(ptr nocapture %ptr, i64 %off, i64 %str) { ; CHECK-LABEL: st_reg_int64_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprd f0, r5 @@ -7736,9 +7652,8 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %conv, ptr %add.ptr, align 4 ret void } @@ -7755,8 +7670,8 @@ %conv = sitofp i64 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7774,8 +7689,8 @@ %conv = sitofp i64 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %and, %conv1 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7791,8 +7706,8 @@ entry: %conv = sitofp i64 %str to float %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7809,8 +7724,8 @@ %and = and i64 %ptr, -4096 %conv = sitofp i64 %str to float %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 8 ret void } @@ -7845,8 +7760,8 @@ entry: %conv = sitofp i64 %str to float %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7886,8 +7801,8 @@ %and = and i64 %ptr, -1000341504 %conv = sitofp i64 %str to float %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 16 ret void } @@ -7918,8 +7833,8 @@ entry: %conv = sitofp i64 %str to float %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7960,8 +7875,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sitofp i64 %str to float %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4096 ret void } @@ -7975,7 +7890,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to float - store float %conv, float* inttoptr (i64 4080 to float*), align 16 + store float %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7990,7 +7905,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to float - store float %conv, float* inttoptr (i64 9999900 to float*), align 4 + store float %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -8026,7 +7941,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i64 %str to float - store float %conv, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -8040,13 +7955,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to double - %0 = inttoptr i64 %ptr to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int64_t_double(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align16_int64_t_double(ptr nocapture %ptr, i64 %str) { ; CHECK-LABEL: st_align16_int64_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprd f0, r4 @@ -8055,14 +7970,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int64_t_double(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align32_int64_t_double(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align32_int64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprd f0, r4 @@ -8089,14 +8003,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i64 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int64_t_double(i8* nocapture %ptr, i64 %str) { +define dso_local void @st_align64_int64_t_double(ptr nocapture %ptr, i64 %str) { ; CHECK-P10-LABEL: st_align64_int64_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprd f0, r4 @@ -8127,14 +8040,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i64 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int64_t_double(i8* nocapture %ptr, i64 %off, i64 %str) { +define dso_local void @st_reg_int64_t_double(ptr nocapture %ptr, i64 %off, i64 %str) { ; CHECK-LABEL: st_reg_int64_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprd f0, r5 @@ -8143,9 +8055,8 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %conv, ptr %add.ptr, align 8 ret void } @@ -8162,8 +8073,8 @@ %conv = sitofp i64 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -8181,8 +8092,8 @@ %conv = sitofp i64 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %and, %conv1 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -8198,8 +8109,8 @@ entry: %conv = sitofp i64 %str to double %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -8216,8 +8127,8 @@ %and = and i64 %ptr, -4096 %conv = sitofp i64 %str to double %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -8252,8 +8163,8 @@ entry: %conv = sitofp i64 %str to double %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -8293,8 +8204,8 @@ %and = and i64 %ptr, -1000341504 %conv = sitofp i64 %str to double %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 16 ret void } @@ -8325,8 +8236,8 @@ entry: %conv = sitofp i64 %str to double %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -8367,8 +8278,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sitofp i64 %str to double %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 4096 ret void } @@ -8382,7 +8293,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to double - store double %conv, double* inttoptr (i64 4080 to double*), align 16 + store double %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -8397,7 +8308,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i64 %str to double - store double %conv, double* inttoptr (i64 9999900 to double*), align 8 + store double %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -8433,6 +8344,6 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i64 %str to double - store double %conv, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } Index: llvm/test/CodeGen/PowerPC/scalar-i8-ldst.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar-i8-ldst.ll +++ llvm/test/CodeGen/PowerPC/scalar-i8-ldst.ll @@ -26,26 +26,26 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align16_int8_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align16_int8_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int8_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 ret i8 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align32_int8_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align32_int8_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int8_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -60,13 +60,13 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 ret i8 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align64_int8_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align64_int8_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int8_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -84,21 +84,21 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 ret i8 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_reg_int8_t_uint8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i8 @ld_reg_int8_t_uint8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int8_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 ret i8 %0 } @@ -113,8 +113,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } @@ -128,8 +128,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } @@ -144,8 +144,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 ret i8 %1 } @@ -160,8 +160,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } @@ -197,8 +197,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 ret i8 %1 } @@ -226,8 +226,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } @@ -254,8 +254,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 ret i8 %1 } @@ -267,7 +267,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 ret i8 %0 } @@ -280,7 +280,7 @@ ; CHECK-NEXT: extsb r3, r3 ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 ret i8 %0 } @@ -303,7 +303,7 @@ ; CHECK-PREP10-NEXT: extsb r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret i8 %0 } @@ -321,14 +321,14 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = trunc i16 %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align16_int8_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align16_int8_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_int8_t_uint16_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbz r3, 8(r3) @@ -341,15 +341,14 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = trunc i16 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = trunc i16 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align32_int8_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align32_int8_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_int8_t_uint16_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plbz r3, 99999000(r3), 0 @@ -394,15 +393,14 @@ ; CHECK-P8-BE-NEXT: extsb r3, r3 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = trunc i16 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = trunc i16 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align64_int8_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align64_int8_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_int8_t_uint16_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -458,15 +456,14 @@ ; CHECK-P8-BE-NEXT: extsb r3, r3 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = trunc i16 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = trunc i16 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_reg_int8_t_uint16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i8 @ld_reg_int8_t_uint16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_int8_t_uint16_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbzx r3, r3, r4 @@ -480,10 +477,9 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = trunc i16 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = trunc i16 %0 to i8 ret i8 %conv } @@ -505,8 +501,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = trunc i16 %1 to i8 ret i8 %conv1 } @@ -528,8 +524,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -552,8 +548,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -577,8 +573,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -643,8 +639,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -716,8 +712,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -787,8 +783,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -807,7 +803,7 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i16 %0 to i8 ret i8 %conv } @@ -828,7 +824,7 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = trunc i16 %0 to i8 ret i8 %conv } @@ -890,7 +886,7 @@ ; CHECK-P8-BE-NEXT: extsb r3, r3 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i16 %0 to i8 ret i8 %conv } @@ -909,14 +905,14 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align16_int8_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align16_int8_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_int8_t_uint32_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbz r3, 8(r3) @@ -929,15 +925,14 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align32_int8_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align32_int8_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_int8_t_uint32_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plbz r3, 99999000(r3), 0 @@ -982,15 +977,14 @@ ; CHECK-P8-BE-NEXT: extsb r3, r3 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align64_int8_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align64_int8_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_int8_t_uint32_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -1046,15 +1040,14 @@ ; CHECK-P8-BE-NEXT: extsb r3, r3 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_reg_int8_t_uint32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i8 @ld_reg_int8_t_uint32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_int8_t_uint32_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbzx r3, r3, r4 @@ -1068,10 +1061,9 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i8 ret i8 %conv } @@ -1093,8 +1085,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = trunc i32 %1 to i8 ret i8 %conv1 } @@ -1116,8 +1108,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -1140,8 +1132,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -1165,8 +1157,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -1231,8 +1223,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -1304,8 +1296,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -1375,8 +1367,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -1395,7 +1387,7 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i32 %0 to i8 ret i8 %conv } @@ -1416,7 +1408,7 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = trunc i32 %0 to i8 ret i8 %conv } @@ -1478,7 +1470,7 @@ ; CHECK-P8-BE-NEXT: extsb r3, r3 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i32 %0 to i8 ret i8 %conv } @@ -1497,14 +1489,14 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align16_int8_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align16_int8_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_int8_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbz r3, 8(r3) @@ -1517,15 +1509,14 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align32_int8_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align32_int8_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_int8_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plbz r3, 99999000(r3), 0 @@ -1570,15 +1561,14 @@ ; CHECK-P8-BE-NEXT: extsb r3, r3 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align64_int8_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align64_int8_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_int8_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -1634,15 +1624,14 @@ ; CHECK-P8-BE-NEXT: extsb r3, r3 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_reg_int8_t_uint64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i8 @ld_reg_int8_t_uint64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_int8_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbzx r3, r3, r4 @@ -1656,10 +1645,9 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i8 ret i8 %conv } @@ -1681,8 +1669,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = trunc i64 %1 to i8 ret i8 %conv1 } @@ -1704,8 +1692,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -1728,8 +1716,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -1753,8 +1741,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -1819,8 +1807,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -1892,8 +1880,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -1963,8 +1951,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -1983,7 +1971,7 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i64 %0 to i8 ret i8 %conv } @@ -2004,7 +1992,7 @@ ; CHECK-BE-NEXT: extsb r3, r3 ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = trunc i64 %0 to i8 ret i8 %conv } @@ -2066,7 +2054,7 @@ ; CHECK-P8-BE-NEXT: extsb r3, r3 ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i64 %0 to i8 ret i8 %conv } @@ -2081,14 +2069,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align16_int8_t_float(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align16_int8_t_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int8_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f0, 8(r3) @@ -2097,15 +2085,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align32_int8_t_float(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align32_int8_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int8_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 99999000(r3), 0 @@ -2124,15 +2111,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align64_int8_t_float(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align64_int8_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int8_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2154,15 +2140,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_reg_int8_t_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i8 @ld_reg_int8_t_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int8_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f0, r3, r4 @@ -2171,10 +2156,9 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptosi float %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + %conv = fptosi float %0 to i8 ret i8 %conv } @@ -2191,8 +2175,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptosi float %1 to i8 ret i8 %conv1 } @@ -2209,8 +2193,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i8 ret i8 %conv } @@ -2228,8 +2212,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 %conv = fptosi float %1 to i8 ret i8 %conv } @@ -2247,8 +2231,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i8 ret i8 %conv } @@ -2291,8 +2275,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 %conv = fptosi float %1 to i8 ret i8 %conv } @@ -2325,8 +2309,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptosi float %1 to i8 ret i8 %conv } @@ -2358,8 +2342,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 %conv = fptosi float %1 to i8 ret i8 %conv } @@ -2374,7 +2358,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptosi float %0 to i8 ret i8 %conv } @@ -2390,7 +2374,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = fptosi float %0 to i8 ret i8 %conv } @@ -2418,7 +2402,7 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptosi float %0 to i8 ret i8 %conv } @@ -2433,14 +2417,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align16_int8_t_double(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align16_int8_t_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_int8_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) @@ -2449,15 +2433,14 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align32_int8_t_double(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align32_int8_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_int8_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -2476,15 +2459,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_align64_int8_t_double(i8* nocapture readonly %ptr) { +define dso_local signext i8 @ld_align64_int8_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_int8_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2506,15 +2488,14 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local signext i8 @ld_reg_int8_t_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local signext i8 @ld_reg_int8_t_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_int8_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 @@ -2523,10 +2504,9 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptosi double %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + %conv = fptosi double %0 to i8 ret i8 %conv } @@ -2543,8 +2523,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptosi double %1 to i8 ret i8 %conv1 } @@ -2561,8 +2541,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i8 ret i8 %conv } @@ -2580,8 +2560,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i8 ret i8 %conv } @@ -2599,8 +2579,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i8 ret i8 %conv } @@ -2643,8 +2623,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 %conv = fptosi double %1 to i8 ret i8 %conv } @@ -2677,8 +2657,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptosi double %1 to i8 ret i8 %conv } @@ -2710,8 +2690,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 %conv = fptosi double %1 to i8 ret i8 %conv } @@ -2726,7 +2706,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptosi double %0 to i8 ret i8 %conv } @@ -2742,7 +2722,7 @@ ; CHECK-NEXT: extsw r3, r3 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = fptosi double %0 to i8 ret i8 %conv } @@ -2770,7 +2750,7 @@ ; CHECK-PREP10-NEXT: extsw r3, r3 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptosi double %0 to i8 ret i8 %conv } @@ -2782,25 +2762,25 @@ ; CHECK-NEXT: lbz r3, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align16_uint8_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align16_uint8_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint8_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbz r3, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i8, ptr %add.ptr, align 1 ret i8 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align32_uint8_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align32_uint8_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint8_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plbz r3, 99999000(r3), 0 @@ -2813,13 +2793,13 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i8, ptr %add.ptr, align 1 ret i8 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_unalign64_uint8_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_unalign64_uint8_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint8_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -2837,13 +2817,13 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i8, ptr %add.ptr, align 1 ret i8 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align64_uint8_t_uint8_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align64_uint8_t_uint8_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint8_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -2859,20 +2839,20 @@ ; CHECK-PREP10-NEXT: lbzx r3, r3, r4 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i8, ptr %add.ptr, align 1 ret i8 %0 } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_reg_uint8_t_uint8_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i8 @ld_reg_uint8_t_uint8_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint8_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lbzx r3, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = load i8, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i8, ptr %add.ptr, align 1 ret i8 %0 } @@ -2886,8 +2866,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } @@ -2900,8 +2880,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } @@ -2915,8 +2895,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 8 ret i8 %1 } @@ -2930,8 +2910,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } @@ -2964,8 +2944,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 16 ret i8 %1 } @@ -2991,8 +2971,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } @@ -3019,8 +2999,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 1 ret i8 %1 } @@ -3045,8 +3025,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - %1 = load i8, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i8, ptr %0, align 4096 ret i8 %1 } @@ -3057,7 +3037,7 @@ ; CHECK-NEXT: lbz r3, 4080(0) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 4080 to i8*), align 16 + %0 = load i8, ptr inttoptr (i64 4080 to ptr), align 16 ret i8 %0 } @@ -3069,7 +3049,7 @@ ; CHECK-NEXT: lbz r3, -27108(r3) ; CHECK-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 9999900 to i8*), align 4 + %0 = load i8, ptr inttoptr (i64 9999900 to ptr), align 4 ret i8 %0 } @@ -3092,7 +3072,7 @@ ; CHECK-PREP10-NEXT: lbz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000001 to i8*), align 1 + %0 = load i8, ptr inttoptr (i64 1000000000001 to ptr), align 1 ret i8 %0 } @@ -3113,7 +3093,7 @@ ; CHECK-PREP10-NEXT: lbz r3, 0(r3) ; CHECK-PREP10-NEXT: blr entry: - %0 = load i8, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + %0 = load i8, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret i8 %0 } @@ -3129,14 +3109,14 @@ ; CHECK-BE-NEXT: lbz r3, 1(r3) ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + %1 = load i16, ptr %0, align 2 %conv = trunc i16 %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align16_uint8_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align16_uint8_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_uint8_t_uint16_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbz r3, 8(r3) @@ -3147,15 +3127,14 @@ ; CHECK-BE-NEXT: lbz r3, 9(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = trunc i16 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i16, ptr %add.ptr, align 2 + %conv = trunc i16 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align32_uint8_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align32_uint8_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_uint8_t_uint16_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plbz r3, 99999000(r3), 0 @@ -3194,15 +3173,14 @@ ; CHECK-P8-BE-NEXT: lbzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = trunc i16 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = trunc i16 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_unalign64_uint8_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_unalign64_uint8_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_unalign64_uint8_t_uint16_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 232 @@ -3255,15 +3233,14 @@ ; CHECK-P8-BE-NEXT: lbzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = trunc i16 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i16, ptr %add.ptr, align 2 + %conv = trunc i16 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align64_uint8_t_uint16_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align64_uint8_t_uint16_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_uint8_t_uint16_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -3313,15 +3290,14 @@ ; CHECK-P8-BE-NEXT: lbzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = trunc i16 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i16, ptr %add.ptr, align 2 + %conv = trunc i16 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_reg_uint8_t_uint16_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i8 @ld_reg_uint8_t_uint16_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_uint8_t_uint16_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbzx r3, r3, r4 @@ -3333,10 +3309,9 @@ ; CHECK-BE-NEXT: lbz r3, 1(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - %1 = load i16, i16* %0, align 2 - %conv = trunc i16 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i16, ptr %add.ptr, align 2 + %conv = trunc i16 %0 to i8 ret i8 %conv } @@ -3356,8 +3331,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv1 = trunc i16 %1 to i8 ret i8 %conv1 } @@ -3377,8 +3352,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -3399,8 +3374,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 8 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -3422,8 +3397,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -3482,8 +3457,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 16 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -3549,8 +3524,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -3617,8 +3592,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 2 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -3682,8 +3657,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - %1 = load i16, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i16, ptr %0, align 4096 %conv = trunc i16 %1 to i8 ret i8 %conv } @@ -3700,7 +3675,7 @@ ; CHECK-BE-NEXT: lbz r3, 4081(0) ; CHECK-BE-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 4080 to i16*), align 16 + %0 = load i16, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i16 %0 to i8 ret i8 %conv } @@ -3719,7 +3694,7 @@ ; CHECK-BE-NEXT: lbz r3, -27107(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 9999900 to i16*), align 4 + %0 = load i16, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = trunc i16 %0 to i8 ret i8 %conv } @@ -3778,7 +3753,7 @@ ; CHECK-P8-BE-NEXT: lbz r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000001 to i16*), align 2 + %0 = load i16, ptr inttoptr (i64 1000000000001 to ptr), align 2 %conv = trunc i16 %0 to i8 ret i8 %conv } @@ -3834,7 +3809,7 @@ ; CHECK-P8-BE-NEXT: lbz r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i16, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + %0 = load i16, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i16 %0 to i8 ret i8 %conv } @@ -3851,14 +3826,14 @@ ; CHECK-BE-NEXT: lbz r3, 3(r3) ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align16_uint8_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align16_uint8_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_uint8_t_uint32_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbz r3, 8(r3) @@ -3869,15 +3844,14 @@ ; CHECK-BE-NEXT: lbz r3, 11(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align32_uint8_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align32_uint8_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_uint8_t_uint32_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plbz r3, 99999000(r3), 0 @@ -3916,15 +3890,14 @@ ; CHECK-P8-BE-NEXT: lbzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_unalign64_uint8_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_unalign64_uint8_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_unalign64_uint8_t_uint32_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 232 @@ -3977,15 +3950,14 @@ ; CHECK-P8-BE-NEXT: lbzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align64_uint8_t_uint32_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align64_uint8_t_uint32_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_uint8_t_uint32_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -4035,15 +4007,14 @@ ; CHECK-P8-BE-NEXT: lbzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_reg_uint8_t_uint32_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i8 @ld_reg_uint8_t_uint32_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_uint8_t_uint32_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbzx r3, r3, r4 @@ -4055,10 +4026,9 @@ ; CHECK-BE-NEXT: lbz r3, 3(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - %1 = load i32, i32* %0, align 4 - %conv = trunc i32 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i32, ptr %add.ptr, align 4 + %conv = trunc i32 %0 to i8 ret i8 %conv } @@ -4078,8 +4048,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv1 = trunc i32 %1 to i8 ret i8 %conv1 } @@ -4099,8 +4069,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -4121,8 +4091,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 8 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -4144,8 +4114,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -4204,8 +4174,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 16 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -4271,8 +4241,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -4339,8 +4309,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -4404,8 +4374,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - %1 = load i32, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i32, ptr %0, align 4096 %conv = trunc i32 %1 to i8 ret i8 %conv } @@ -4422,7 +4392,7 @@ ; CHECK-BE-NEXT: lbz r3, 4083(0) ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 4080 to i32*), align 16 + %0 = load i32, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i32 %0 to i8 ret i8 %conv } @@ -4441,7 +4411,7 @@ ; CHECK-BE-NEXT: lbz r3, -27105(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 9999900 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = trunc i32 %0 to i8 ret i8 %conv } @@ -4500,7 +4470,7 @@ ; CHECK-P8-BE-NEXT: lbz r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000001 to i32*), align 4 + %0 = load i32, ptr inttoptr (i64 1000000000001 to ptr), align 4 %conv = trunc i32 %0 to i8 ret i8 %conv } @@ -4556,7 +4526,7 @@ ; CHECK-P8-BE-NEXT: lbz r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i32, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + %0 = load i32, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i32 %0 to i8 ret i8 %conv } @@ -4573,14 +4543,14 @@ ; CHECK-BE-NEXT: lbz r3, 7(r3) ; CHECK-BE-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align16_uint8_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align16_uint8_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-LE-LABEL: ld_align16_uint8_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbz r3, 8(r3) @@ -4591,15 +4561,14 @@ ; CHECK-BE-NEXT: lbz r3, 15(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align32_uint8_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align32_uint8_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align32_uint8_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: plbz r3, 99999000(r3), 0 @@ -4638,15 +4607,14 @@ ; CHECK-P8-BE-NEXT: lbzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_unalign64_uint8_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_unalign64_uint8_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_unalign64_uint8_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 232 @@ -4699,15 +4667,14 @@ ; CHECK-P8-BE-NEXT: lbzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align64_uint8_t_uint64_t(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align64_uint8_t_uint64_t(ptr nocapture readonly %ptr) { ; CHECK-P10-LE-LABEL: ld_align64_uint8_t_uint64_t: ; CHECK-P10-LE: # %bb.0: # %entry ; CHECK-P10-LE-NEXT: pli r4, 244140625 @@ -4757,15 +4724,14 @@ ; CHECK-P8-BE-NEXT: lbzx r3, r3, r4 ; CHECK-P8-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_reg_uint8_t_uint64_t(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i8 @ld_reg_uint8_t_uint64_t(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LE-LABEL: ld_reg_uint8_t_uint64_t: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: lbzx r3, r3, r4 @@ -4777,10 +4743,9 @@ ; CHECK-BE-NEXT: lbz r3, 7(r3) ; CHECK-BE-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - %1 = load i64, i64* %0, align 8 - %conv = trunc i64 %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load i64, ptr %add.ptr, align 8 + %conv = trunc i64 %0 to i8 ret i8 %conv } @@ -4800,8 +4765,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv1 = trunc i64 %1 to i8 ret i8 %conv1 } @@ -4821,8 +4786,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -4843,8 +4808,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -4866,8 +4831,8 @@ ; CHECK-BE-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -4926,8 +4891,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 16 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -4993,8 +4958,8 @@ ; CHECK-P8-BE-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -5061,8 +5026,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 8 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -5126,8 +5091,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - %1 = load i64, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load i64, ptr %0, align 4096 %conv = trunc i64 %1 to i8 ret i8 %conv } @@ -5144,7 +5109,7 @@ ; CHECK-BE-NEXT: lbz r3, 4087(0) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 4080 to i64*), align 16 + %0 = load i64, ptr inttoptr (i64 4080 to ptr), align 16 %conv = trunc i64 %0 to i8 ret i8 %conv } @@ -5163,7 +5128,7 @@ ; CHECK-BE-NEXT: lbz r3, -27101(r3) ; CHECK-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 9999900 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = trunc i64 %0 to i8 ret i8 %conv } @@ -5222,7 +5187,7 @@ ; CHECK-P8-BE-NEXT: lbz r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000001 to i64*), align 8 + %0 = load i64, ptr inttoptr (i64 1000000000001 to ptr), align 8 %conv = trunc i64 %0 to i8 ret i8 %conv } @@ -5278,7 +5243,7 @@ ; CHECK-P8-BE-NEXT: lbz r3, 0(r3) ; CHECK-P8-BE-NEXT: blr entry: - %0 = load i64, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + %0 = load i64, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = trunc i64 %0 to i8 ret i8 %conv } @@ -5292,14 +5257,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align16_uint8_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align16_uint8_t_float(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint8_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs f0, 8(r3) @@ -5307,15 +5272,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align32_uint8_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align32_uint8_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint8_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfs f0, 99999000(r3), 0 @@ -5332,15 +5296,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_unalign64_uint8_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_unalign64_uint8_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint8_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -5362,15 +5325,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align64_uint8_t_float(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align64_uint8_t_float(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint8_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -5390,15 +5352,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_reg_uint8_t_float(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i8 @ld_reg_uint8_t_float(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint8_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfsx f0, r3, r4 @@ -5406,10 +5367,9 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - %1 = load float, float* %0, align 4 - %conv = fptoui float %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load float, ptr %add.ptr, align 4 + %conv = fptoui float %0 to i8 ret i8 %conv } @@ -5425,8 +5385,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv1 = fptoui float %1 to i8 ret i8 %conv1 } @@ -5442,8 +5402,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i8 ret i8 %conv } @@ -5460,8 +5420,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 8 %conv = fptoui float %1 to i8 ret i8 %conv } @@ -5478,8 +5438,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i8 ret i8 %conv } @@ -5519,8 +5479,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 16 %conv = fptoui float %1 to i8 ret i8 %conv } @@ -5551,8 +5511,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i8 ret i8 %conv } @@ -5584,8 +5544,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4 %conv = fptoui float %1 to i8 ret i8 %conv } @@ -5615,8 +5575,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - %1 = load float, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load float, ptr %0, align 4096 %conv = fptoui float %1 to i8 ret i8 %conv } @@ -5630,7 +5590,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 4080 to float*), align 16 + %0 = load float, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptoui float %0 to i8 ret i8 %conv } @@ -5645,7 +5605,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 9999900 to float*), align 4 + %0 = load float, ptr inttoptr (i64 9999900 to ptr), align 4 %conv = fptoui float %0 to i8 ret i8 %conv } @@ -5673,7 +5633,7 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000001 to float*), align 4 + %0 = load float, ptr inttoptr (i64 1000000000001 to ptr), align 4 %conv = fptoui float %0 to i8 ret i8 %conv } @@ -5699,7 +5659,7 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load float, float* inttoptr (i64 1000000000000 to float*), align 4096 + %0 = load float, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptoui float %0 to i8 ret i8 %conv } @@ -5713,14 +5673,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align16_uint8_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align16_uint8_t_double(ptr nocapture readonly %ptr) { ; CHECK-LABEL: ld_align16_uint8_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd f0, 8(r3) @@ -5728,15 +5688,14 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align32_uint8_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align32_uint8_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align32_uint8_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: plfd f0, 99999000(r3), 0 @@ -5753,15 +5712,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_unalign64_uint8_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_unalign64_uint8_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_unalign64_uint8_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 232 @@ -5783,15 +5741,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000001 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000001 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_align64_uint8_t_double(i8* nocapture readonly %ptr) { +define dso_local zeroext i8 @ld_align64_uint8_t_double(ptr nocapture readonly %ptr) { ; CHECK-P10-LABEL: ld_align64_uint8_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r4, 244140625 @@ -5811,15 +5768,14 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i8 ret i8 %conv } ; Function Attrs: norecurse nounwind readonly uwtable willreturn -define dso_local zeroext i8 @ld_reg_uint8_t_double(i8* nocapture readonly %ptr, i64 %off) { +define dso_local zeroext i8 @ld_reg_uint8_t_double(ptr nocapture readonly %ptr, i64 %off) { ; CHECK-LABEL: ld_reg_uint8_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfdx f0, r3, r4 @@ -5827,10 +5783,9 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - %1 = load double, double* %0, align 8 - %conv = fptoui double %1 to i8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + %0 = load double, ptr %add.ptr, align 8 + %conv = fptoui double %0 to i8 ret i8 %conv } @@ -5846,8 +5801,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv1 = fptoui double %1 to i8 ret i8 %conv1 } @@ -5863,8 +5818,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i8 ret i8 %conv } @@ -5881,8 +5836,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i8 ret i8 %conv } @@ -5899,8 +5854,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i8 ret i8 %conv } @@ -5940,8 +5895,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 16 %conv = fptoui double %1 to i8 ret i8 %conv } @@ -5972,8 +5927,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i8 ret i8 %conv } @@ -6005,8 +5960,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000001 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 8 %conv = fptoui double %1 to i8 ret i8 %conv } @@ -6036,8 +5991,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - %1 = load double, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + %1 = load double, ptr %0, align 4096 %conv = fptoui double %1 to i8 ret i8 %conv } @@ -6051,7 +6006,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 4080 to double*), align 16 + %0 = load double, ptr inttoptr (i64 4080 to ptr), align 16 %conv = fptoui double %0 to i8 ret i8 %conv } @@ -6066,7 +6021,7 @@ ; CHECK-NEXT: mffprwz r3, f0 ; CHECK-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 9999900 to double*), align 8 + %0 = load double, ptr inttoptr (i64 9999900 to ptr), align 8 %conv = fptoui double %0 to i8 ret i8 %conv } @@ -6094,7 +6049,7 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000001 to double*), align 8 + %0 = load double, ptr inttoptr (i64 1000000000001 to ptr), align 8 %conv = fptoui double %0 to i8 ret i8 %conv } @@ -6120,7 +6075,7 @@ ; CHECK-PREP10-NEXT: mffprwz r3, f0 ; CHECK-PREP10-NEXT: blr entry: - %0 = load double, double* inttoptr (i64 1000000000000 to double*), align 4096 + %0 = load double, ptr inttoptr (i64 1000000000000 to ptr), align 4096 %conv = fptoui double %0 to i8 ret i8 %conv } @@ -6132,25 +6087,25 @@ ; CHECK-NEXT: stb r4, 0(r3) ; CHECK-NEXT: blr entry: - %0 = inttoptr i64 %ptr to i8* - store i8 %str, i8* %0, align 1 + %0 = inttoptr i64 %ptr to ptr + store i8 %str, ptr %0, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint8_t_uint8_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align16_uint8_t_uint8_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-LABEL: st_align16_uint8_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stb r4, 8(r3) ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - store i8 %str, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i8 %str, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint8_t_uint8_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align32_uint8_t_uint8_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint8_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstb r4, 99999000(r3), 0 @@ -6163,13 +6118,13 @@ ; CHECK-PREP10-NEXT: stbx r4, r3, r5 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - store i8 %str, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i8 %str, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint8_t_uint8_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align64_uint8_t_uint8_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint8_t_uint8_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -6185,20 +6140,20 @@ ; CHECK-PREP10-NEXT: stbx r4, r3, r5 ; CHECK-PREP10-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - store i8 %str, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i8 %str, ptr %add.ptr, align 1 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint8_t_uint8_t(i8* nocapture %ptr, i64 %off, i8 zeroext %str) { +define dso_local void @st_reg_uint8_t_uint8_t(ptr nocapture %ptr, i64 %off, i8 zeroext %str) { ; CHECK-LABEL: st_reg_uint8_t_uint8_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stbx r5, r3, r4 ; CHECK-NEXT: blr entry: - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - store i8 %str, i8* %add.ptr, align 1 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i8 %str, ptr %add.ptr, align 1 ret void } @@ -6212,8 +6167,8 @@ entry: %conv = zext i8 %off to i64 %or = or i64 %conv, %ptr - %0 = inttoptr i64 %or to i8* - store i8 %str, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %str, ptr %0, align 1 ret void } @@ -6226,8 +6181,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i8* - store i8 %str, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %str, ptr %0, align 1 ret void } @@ -6241,8 +6196,8 @@ entry: %and = and i64 %ptr, -4096 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i8* - store i8 %str, i8* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i8 %str, ptr %0, align 8 ret void } @@ -6256,8 +6211,8 @@ ; CHECK-NEXT: blr entry: %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i8* - store i8 %str, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %str, ptr %0, align 1 ret void } @@ -6290,8 +6245,8 @@ entry: %and = and i64 %ptr, -1000341504 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i8* - store i8 %str, i8* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i8 %str, ptr %0, align 16 ret void } @@ -6317,8 +6272,8 @@ ; CHECK-PREP10-NEXT: blr entry: %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i8* - store i8 %str, i8* %0, align 1 + %0 = inttoptr i64 %or to ptr + store i8 %str, ptr %0, align 1 ret void } @@ -6343,8 +6298,8 @@ entry: %and = and i64 %ptr, -1099511627776 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i8* - store i8 %str, i8* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i8 %str, ptr %0, align 4096 ret void } @@ -6355,7 +6310,7 @@ ; CHECK-NEXT: stb r3, 4080(0) ; CHECK-NEXT: blr entry: - store i8 %str, i8* inttoptr (i64 4080 to i8*), align 16 + store i8 %str, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6367,7 +6322,7 @@ ; CHECK-NEXT: stb r3, -27108(r4) ; CHECK-NEXT: blr entry: - store i8 %str, i8* inttoptr (i64 9999900 to i8*), align 4 + store i8 %str, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -6388,7 +6343,7 @@ ; CHECK-PREP10-NEXT: stb r3, 0(r4) ; CHECK-PREP10-NEXT: blr entry: - store i8 %str, i8* inttoptr (i64 1000000000000 to i8*), align 4096 + store i8 %str, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6400,27 +6355,26 @@ ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i16 - %0 = inttoptr i64 %ptr to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %conv, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint8_t_uint16_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align16_uint8_t_uint16_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-LABEL: st_align16_uint8_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sth r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint8_t_uint16_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align32_uint8_t_uint16_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint8_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: psth r4, 99999000(r3), 0 @@ -6434,14 +6388,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i8 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint8_t_uint16_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align64_uint8_t_uint16_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint8_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -6458,23 +6411,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i8 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint8_t_uint16_t(i8* nocapture %ptr, i64 %off, i8 zeroext %str) { +define dso_local void @st_reg_uint8_t_uint16_t(ptr nocapture %ptr, i64 %off, i8 zeroext %str) { ; CHECK-LABEL: st_reg_uint8_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sthx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %conv, ptr %add.ptr, align 2 ret void } @@ -6489,8 +6440,8 @@ %conv = zext i8 %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -6504,8 +6455,8 @@ entry: %conv = zext i8 %str to i16 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -6520,8 +6471,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %str to i16 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 8 ret void } @@ -6536,8 +6487,8 @@ entry: %conv = zext i8 %str to i16 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -6571,8 +6522,8 @@ %and = and i64 %ptr, -1000341504 %conv = zext i8 %str to i16 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 16 ret void } @@ -6599,8 +6550,8 @@ entry: %conv = zext i8 %str to i16 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -6626,8 +6577,8 @@ %and = and i64 %ptr, -1099511627776 %conv = zext i8 %str to i16 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 4096 ret void } @@ -6639,7 +6590,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i16 - store i16 %conv, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6652,7 +6603,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i16 - store i16 %conv, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -6674,7 +6625,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i8 %str to i16 - store i16 %conv, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6686,27 +6637,26 @@ ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i32 - %0 = inttoptr i64 %ptr to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint8_t_uint32_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align16_uint8_t_uint32_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-LABEL: st_align16_uint8_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint8_t_uint32_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align32_uint8_t_uint32_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint8_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstw r4, 99999000(r3), 0 @@ -6720,14 +6670,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i8 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint8_t_uint32_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align64_uint8_t_uint32_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint8_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -6744,23 +6693,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i8 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint8_t_uint32_t(i8* nocapture %ptr, i64 %off, i8 zeroext %str) { +define dso_local void @st_reg_uint8_t_uint32_t(ptr nocapture %ptr, i64 %off, i8 zeroext %str) { ; CHECK-LABEL: st_reg_uint8_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stwx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %conv, ptr %add.ptr, align 4 ret void } @@ -6775,8 +6722,8 @@ %conv = zext i8 %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6790,8 +6737,8 @@ entry: %conv = zext i8 %str to i32 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6806,8 +6753,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %str to i32 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 8 ret void } @@ -6822,8 +6769,8 @@ entry: %conv = zext i8 %str to i32 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6857,8 +6804,8 @@ %and = and i64 %ptr, -1000341504 %conv = zext i8 %str to i32 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 16 ret void } @@ -6885,8 +6832,8 @@ entry: %conv = zext i8 %str to i32 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -6912,8 +6859,8 @@ %and = and i64 %ptr, -1099511627776 %conv = zext i8 %str to i32 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4096 ret void } @@ -6925,7 +6872,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i32 - store i32 %conv, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -6938,7 +6885,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i32 - store i32 %conv, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -6960,7 +6907,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i8 %str to i32 - store i32 %conv, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -6972,27 +6919,26 @@ ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint8_t_uint64_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align16_uint8_t_uint64_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-LABEL: st_align16_uint8_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: std r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint8_t_uint64_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align32_uint8_t_uint64_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint8_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstd r4, 99999000(r3), 0 @@ -7006,14 +6952,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i8 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint8_t_uint64_t(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align64_uint8_t_uint64_t(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint8_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -7030,23 +6975,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i8 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint8_t_uint64_t(i8* nocapture %ptr, i64 %off, i8 zeroext %str) { +define dso_local void @st_reg_uint8_t_uint64_t(ptr nocapture %ptr, i64 %off, i8 zeroext %str) { ; CHECK-LABEL: st_reg_uint8_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stdx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -7061,8 +7004,8 @@ %conv = zext i8 %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7076,8 +7019,8 @@ entry: %conv = zext i8 %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7092,8 +7035,8 @@ %and = and i64 %ptr, -4096 %conv = zext i8 %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7108,8 +7051,8 @@ entry: %conv = zext i8 %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7143,8 +7086,8 @@ %and = and i64 %ptr, -1000341504 %conv = zext i8 %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -7171,8 +7114,8 @@ entry: %conv = zext i8 %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -7198,8 +7141,8 @@ %and = and i64 %ptr, -1099511627776 %conv = zext i8 %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -7211,7 +7154,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7224,7 +7167,7 @@ ; CHECK-NEXT: blr entry: %conv = zext i8 %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -7246,7 +7189,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = zext i8 %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7260,13 +7203,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to float - %0 = inttoptr i64 %ptr to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint8_t_float(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align16_uint8_t_float(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-LABEL: st_align16_uint8_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r4 @@ -7275,14 +7218,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint8_t_float(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align32_uint8_t_float(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint8_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -7309,14 +7251,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i8 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint8_t_float(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align64_uint8_t_float(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint8_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -7347,14 +7288,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i8 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint8_t_float(i8* nocapture %ptr, i64 %off, i8 zeroext %str) { +define dso_local void @st_reg_uint8_t_float(ptr nocapture %ptr, i64 %off, i8 zeroext %str) { ; CHECK-LABEL: st_reg_uint8_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r5 @@ -7363,9 +7303,8 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %conv, ptr %add.ptr, align 4 ret void } @@ -7382,8 +7321,8 @@ %conv = uitofp i8 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7399,8 +7338,8 @@ entry: %conv = uitofp i8 %str to float %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7417,8 +7356,8 @@ %and = and i64 %ptr, -4096 %conv = uitofp i8 %str to float %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 8 ret void } @@ -7453,8 +7392,8 @@ entry: %conv = uitofp i8 %str to float %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7494,8 +7433,8 @@ %and = and i64 %ptr, -1000341504 %conv = uitofp i8 %str to float %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 16 ret void } @@ -7526,8 +7465,8 @@ entry: %conv = uitofp i8 %str to float %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -7568,8 +7507,8 @@ %and = and i64 %ptr, -1099511627776 %conv = uitofp i8 %str to float %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4096 ret void } @@ -7583,7 +7522,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to float - store float %conv, float* inttoptr (i64 4080 to float*), align 16 + store float %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7598,7 +7537,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to float - store float %conv, float* inttoptr (i64 9999900 to float*), align 4 + store float %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -7634,7 +7573,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i8 %str to float - store float %conv, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -7648,13 +7587,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to double - %0 = inttoptr i64 %ptr to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_uint8_t_double(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align16_uint8_t_double(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-LABEL: st_align16_uint8_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r4 @@ -7663,14 +7602,13 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_uint8_t_double(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align32_uint8_t_double(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align32_uint8_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -7697,14 +7635,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i8 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_uint8_t_double(i8* nocapture %ptr, i8 zeroext %str) { +define dso_local void @st_align64_uint8_t_double(ptr nocapture %ptr, i8 zeroext %str) { ; CHECK-P10-LABEL: st_align64_uint8_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwz f0, r4 @@ -7735,14 +7672,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i8 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_uint8_t_double(i8* nocapture %ptr, i64 %off, i8 zeroext %str) { +define dso_local void @st_reg_uint8_t_double(ptr nocapture %ptr, i64 %off, i8 zeroext %str) { ; CHECK-LABEL: st_reg_uint8_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwz f0, r5 @@ -7751,9 +7687,8 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %conv, ptr %add.ptr, align 8 ret void } @@ -7770,8 +7705,8 @@ %conv = uitofp i8 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7787,8 +7722,8 @@ entry: %conv = uitofp i8 %str to double %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7805,8 +7740,8 @@ %and = and i64 %ptr, -4096 %conv = uitofp i8 %str to double %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7841,8 +7776,8 @@ entry: %conv = uitofp i8 %str to double %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7882,8 +7817,8 @@ %and = and i64 %ptr, -1000341504 %conv = uitofp i8 %str to double %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 16 ret void } @@ -7914,8 +7849,8 @@ entry: %conv = uitofp i8 %str to double %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -7956,8 +7891,8 @@ %and = and i64 %ptr, -1099511627776 %conv = uitofp i8 %str to double %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 4096 ret void } @@ -7971,7 +7906,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to double - store double %conv, double* inttoptr (i64 4080 to double*), align 16 + store double %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -7986,7 +7921,7 @@ ; CHECK-NEXT: blr entry: %conv = uitofp i8 %str to double - store double %conv, double* inttoptr (i64 9999900 to double*), align 8 + store double %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -8022,7 +7957,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = uitofp i8 %str to double - store double %conv, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -8034,27 +7969,26 @@ ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i16 - %0 = inttoptr i64 %ptr to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %ptr to ptr + store i16 %conv, ptr %0, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int8_t_uint16_t(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align16_int8_t_uint16_t(ptr nocapture %ptr, i8 signext %str) { ; CHECK-LABEL: st_align16_int8_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sth r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int8_t_uint16_t(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align32_int8_t_uint16_t(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align32_int8_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: psth r4, 99999000(r3), 0 @@ -8068,14 +8002,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i8 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int8_t_uint16_t(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align64_int8_t_uint16_t(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align64_int8_t_uint16_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -8092,23 +8025,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i8 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i16 %conv, ptr %add.ptr, align 2 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int8_t_uint16_t(i8* nocapture %ptr, i64 %off, i8 signext %str) { +define dso_local void @st_reg_int8_t_uint16_t(ptr nocapture %ptr, i64 %off, i8 signext %str) { ; CHECK-LABEL: st_reg_int8_t_uint16_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: sthx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i16 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i16* - store i16 %conv, i16* %0, align 2 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i16 %conv, ptr %add.ptr, align 2 ret void } @@ -8123,8 +8054,8 @@ %conv = sext i8 %str to i16 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -8138,8 +8069,8 @@ entry: %conv = sext i8 %str to i16 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -8154,8 +8085,8 @@ %and = and i64 %ptr, -4096 %conv = sext i8 %str to i16 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 8 ret void } @@ -8170,8 +8101,8 @@ entry: %conv = sext i8 %str to i16 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -8205,8 +8136,8 @@ %and = and i64 %ptr, -1000341504 %conv = sext i8 %str to i16 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 16 ret void } @@ -8233,8 +8164,8 @@ entry: %conv = sext i8 %str to i16 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 2 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 2 ret void } @@ -8260,8 +8191,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sext i8 %str to i16 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i16* - store i16 %conv, i16* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i16 %conv, ptr %0, align 4096 ret void } @@ -8273,7 +8204,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i16 - store i16 %conv, i16* inttoptr (i64 4080 to i16*), align 16 + store i16 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -8286,7 +8217,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i16 - store i16 %conv, i16* inttoptr (i64 9999900 to i16*), align 4 + store i16 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -8308,7 +8239,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i8 %str to i16 - store i16 %conv, i16* inttoptr (i64 1000000000000 to i16*), align 4096 + store i16 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -8320,27 +8251,26 @@ ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i32 - %0 = inttoptr i64 %ptr to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store i32 %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int8_t_uint32_t(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align16_int8_t_uint32_t(ptr nocapture %ptr, i8 signext %str) { ; CHECK-LABEL: st_align16_int8_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int8_t_uint32_t(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align32_int8_t_uint32_t(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align32_int8_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstw r4, 99999000(r3), 0 @@ -8354,14 +8284,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i8 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int8_t_uint32_t(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align64_int8_t_uint32_t(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align64_int8_t_uint32_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -8378,23 +8307,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i8 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i32 %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int8_t_uint32_t(i8* nocapture %ptr, i64 %off, i8 signext %str) { +define dso_local void @st_reg_int8_t_uint32_t(ptr nocapture %ptr, i64 %off, i8 signext %str) { ; CHECK-LABEL: st_reg_int8_t_uint32_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stwx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i32 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i32* - store i32 %conv, i32* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i32 %conv, ptr %add.ptr, align 4 ret void } @@ -8409,8 +8336,8 @@ %conv = sext i8 %str to i32 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -8424,8 +8351,8 @@ entry: %conv = sext i8 %str to i32 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -8440,8 +8367,8 @@ %and = and i64 %ptr, -4096 %conv = sext i8 %str to i32 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 8 ret void } @@ -8456,8 +8383,8 @@ entry: %conv = sext i8 %str to i32 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -8491,8 +8418,8 @@ %and = and i64 %ptr, -1000341504 %conv = sext i8 %str to i32 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 16 ret void } @@ -8519,8 +8446,8 @@ entry: %conv = sext i8 %str to i32 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4 ret void } @@ -8546,8 +8473,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sext i8 %str to i32 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i32* - store i32 %conv, i32* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i32 %conv, ptr %0, align 4096 ret void } @@ -8559,7 +8486,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i32 - store i32 %conv, i32* inttoptr (i64 4080 to i32*), align 16 + store i32 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -8572,7 +8499,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i32 - store i32 %conv, i32* inttoptr (i64 9999900 to i32*), align 4 + store i32 %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -8594,7 +8521,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i8 %str to i32 - store i32 %conv, i32* inttoptr (i64 1000000000000 to i32*), align 4096 + store i32 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -8606,27 +8533,26 @@ ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i64 - %0 = inttoptr i64 %ptr to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store i64 %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int8_t_uint64_t(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align16_int8_t_uint64_t(ptr nocapture %ptr, i8 signext %str) { ; CHECK-LABEL: st_align16_int8_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: std r4, 8(r3) ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int8_t_uint64_t(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align32_int8_t_uint64_t(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align32_int8_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pstd r4, 99999000(r3), 0 @@ -8640,14 +8566,13 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i8 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int8_t_uint64_t(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align64_int8_t_uint64_t(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align64_int8_t_uint64_t: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: pli r5, 244140625 @@ -8664,23 +8589,21 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i8 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store i64 %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int8_t_uint64_t(i8* nocapture %ptr, i64 %off, i8 signext %str) { +define dso_local void @st_reg_int8_t_uint64_t(ptr nocapture %ptr, i64 %off, i8 signext %str) { ; CHECK-LABEL: st_reg_int8_t_uint64_t: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stdx r5, r3, r4 ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i64 - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to i64* - store i64 %conv, i64* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store i64 %conv, ptr %add.ptr, align 8 ret void } @@ -8695,8 +8618,8 @@ %conv = sext i8 %str to i64 %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -8710,8 +8633,8 @@ entry: %conv = sext i8 %str to i64 %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -8726,8 +8649,8 @@ %and = and i64 %ptr, -4096 %conv = sext i8 %str to i64 %or = or i64 %and, 24 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -8742,8 +8665,8 @@ entry: %conv = sext i8 %str to i64 %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -8777,8 +8700,8 @@ %and = and i64 %ptr, -1000341504 %conv = sext i8 %str to i64 %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 16 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 16 ret void } @@ -8805,8 +8728,8 @@ entry: %conv = sext i8 %str to i64 %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 8 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 8 ret void } @@ -8832,8 +8755,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sext i8 %str to i64 %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to i64* - store i64 %conv, i64* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store i64 %conv, ptr %0, align 4096 ret void } @@ -8845,7 +8768,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i64 - store i64 %conv, i64* inttoptr (i64 4080 to i64*), align 16 + store i64 %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -8858,7 +8781,7 @@ ; CHECK-NEXT: blr entry: %conv = sext i8 %str to i64 - store i64 %conv, i64* inttoptr (i64 9999900 to i64*), align 8 + store i64 %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -8880,7 +8803,7 @@ ; CHECK-PREP10-NEXT: blr entry: %conv = sext i8 %str to i64 - store i64 %conv, i64* inttoptr (i64 1000000000000 to i64*), align 4096 + store i64 %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -8894,13 +8817,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to float - %0 = inttoptr i64 %ptr to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %ptr to ptr + store float %conv, ptr %0, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int8_t_float(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align16_int8_t_float(ptr nocapture %ptr, i8 signext %str) { ; CHECK-LABEL: st_align16_int8_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r4 @@ -8909,14 +8832,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int8_t_float(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align32_int8_t_float(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align32_int8_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -8943,14 +8865,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i8 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int8_t_float(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align64_int8_t_float(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align64_int8_t_float: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -8981,14 +8902,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i8 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store float %conv, ptr %add.ptr, align 4 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int8_t_float(i8* nocapture %ptr, i64 %off, i8 signext %str) { +define dso_local void @st_reg_int8_t_float(ptr nocapture %ptr, i64 %off, i8 signext %str) { ; CHECK-LABEL: st_reg_int8_t_float: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r5 @@ -8997,9 +8917,8 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to float - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to float* - store float %conv, float* %0, align 4 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store float %conv, ptr %add.ptr, align 4 ret void } @@ -9016,8 +8935,8 @@ %conv = sitofp i8 %str to float %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -9033,8 +8952,8 @@ entry: %conv = sitofp i8 %str to float %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -9051,8 +8970,8 @@ %and = and i64 %ptr, -4096 %conv = sitofp i8 %str to float %or = or i64 %and, 24 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 8 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 8 ret void } @@ -9087,8 +9006,8 @@ entry: %conv = sitofp i8 %str to float %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -9128,8 +9047,8 @@ %and = and i64 %ptr, -1000341504 %conv = sitofp i8 %str to float %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 16 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 16 ret void } @@ -9160,8 +9079,8 @@ entry: %conv = sitofp i8 %str to float %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4 ret void } @@ -9202,8 +9121,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sitofp i8 %str to float %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to float* - store float %conv, float* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store float %conv, ptr %0, align 4096 ret void } @@ -9217,7 +9136,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to float - store float %conv, float* inttoptr (i64 4080 to float*), align 16 + store float %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -9232,7 +9151,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to float - store float %conv, float* inttoptr (i64 9999900 to float*), align 4 + store float %conv, ptr inttoptr (i64 9999900 to ptr), align 4 ret void } @@ -9268,7 +9187,7 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i8 %str to float - store float %conv, float* inttoptr (i64 1000000000000 to float*), align 4096 + store float %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } @@ -9282,13 +9201,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to double - %0 = inttoptr i64 %ptr to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %ptr to ptr + store double %conv, ptr %0, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align16_int8_t_double(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align16_int8_t_double(ptr nocapture %ptr, i8 signext %str) { ; CHECK-LABEL: st_align16_int8_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r4 @@ -9297,14 +9216,13 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 8 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 8 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align32_int8_t_double(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align32_int8_t_double(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align32_int8_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -9331,14 +9249,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i8 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 99999000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 99999000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_align64_int8_t_double(i8* nocapture %ptr, i8 signext %str) { +define dso_local void @st_align64_int8_t_double(ptr nocapture %ptr, i8 signext %str) { ; CHECK-P10-LABEL: st_align64_int8_t_double: ; CHECK-P10: # %bb.0: # %entry ; CHECK-P10-NEXT: mtfprwa f0, r4 @@ -9369,14 +9286,13 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i8 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 1000000000000 - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 1000000000000 + store double %conv, ptr %add.ptr, align 8 ret void } ; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly -define dso_local void @st_reg_int8_t_double(i8* nocapture %ptr, i64 %off, i8 signext %str) { +define dso_local void @st_reg_int8_t_double(ptr nocapture %ptr, i64 %off, i8 signext %str) { ; CHECK-LABEL: st_reg_int8_t_double: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mtfprwa f0, r5 @@ -9385,9 +9301,8 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to double - %add.ptr = getelementptr inbounds i8, i8* %ptr, i64 %off - %0 = bitcast i8* %add.ptr to double* - store double %conv, double* %0, align 8 + %add.ptr = getelementptr inbounds i8, ptr %ptr, i64 %off + store double %conv, ptr %add.ptr, align 8 ret void } @@ -9404,8 +9319,8 @@ %conv = sitofp i8 %str to double %conv1 = zext i8 %off to i64 %or = or i64 %conv1, %ptr - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -9421,8 +9336,8 @@ entry: %conv = sitofp i8 %str to double %or = or i64 %ptr, 6 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -9439,8 +9354,8 @@ %and = and i64 %ptr, -4096 %conv = sitofp i8 %str to double %or = or i64 %and, 24 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -9475,8 +9390,8 @@ entry: %conv = sitofp i8 %str to double %or = or i64 %ptr, 99999 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -9516,8 +9431,8 @@ %and = and i64 %ptr, -1000341504 %conv = sitofp i8 %str to double %or = or i64 %and, 999990000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 16 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 16 ret void } @@ -9548,8 +9463,8 @@ entry: %conv = sitofp i8 %str to double %or = or i64 %ptr, 1000000000001 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 8 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 8 ret void } @@ -9590,8 +9505,8 @@ %and = and i64 %ptr, -1099511627776 %conv = sitofp i8 %str to double %or = or i64 %and, 1000000000000 - %0 = inttoptr i64 %or to double* - store double %conv, double* %0, align 4096 + %0 = inttoptr i64 %or to ptr + store double %conv, ptr %0, align 4096 ret void } @@ -9605,7 +9520,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to double - store double %conv, double* inttoptr (i64 4080 to double*), align 16 + store double %conv, ptr inttoptr (i64 4080 to ptr), align 16 ret void } @@ -9620,7 +9535,7 @@ ; CHECK-NEXT: blr entry: %conv = sitofp i8 %str to double - store double %conv, double* inttoptr (i64 9999900 to double*), align 8 + store double %conv, ptr inttoptr (i64 9999900 to ptr), align 8 ret void } @@ -9656,6 +9571,6 @@ ; CHECK-P8-NEXT: blr entry: %conv = sitofp i8 %str to double - store double %conv, double* inttoptr (i64 1000000000000 to double*), align 4096 + store double %conv, ptr inttoptr (i64 1000000000000 to ptr), align 4096 ret void } Index: llvm/test/CodeGen/PowerPC/scalar_vector_test_1.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar_vector_test_1.ll +++ llvm/test/CodeGen/PowerPC/scalar_vector_test_1.ll @@ -10,7 +10,7 @@ ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test1(i64* nocapture readonly %int64, <2 x i64> %vec) { +define <2 x i64> @s2v_test1(ptr nocapture readonly %int64, <2 x i64> %vec) { ; P9LE-LABEL: s2v_test1: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfd f0, 0(r3) @@ -36,13 +36,13 @@ ; P8BE-NEXT: blr entry: - %0 = load i64, i64* %int64, align 8 + %0 = load i64, ptr %int64, align 8 %vecins = insertelement <2 x i64> %vec, i64 %0, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test2(i64* nocapture readonly %int64, <2 x i64> %vec) { +define <2 x i64> @s2v_test2(ptr nocapture readonly %int64, <2 x i64> %vec) { ; P9LE-LABEL: s2v_test2: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfd f0, 8(r3) @@ -68,14 +68,14 @@ ; P8BE-NEXT: blr entry: - %arrayidx = getelementptr inbounds i64, i64* %int64, i64 1 - %0 = load i64, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %int64, i64 1 + %0 = load i64, ptr %arrayidx, align 8 %vecins = insertelement <2 x i64> %vec, i64 %0, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test3(i64* nocapture readonly %int64, <2 x i64> %vec, i32 signext %Idx) { +define <2 x i64> @s2v_test3(ptr nocapture readonly %int64, <2 x i64> %vec, i32 signext %Idx) { ; P9LE-LABEL: s2v_test3: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: sldi r4, r7, 3 @@ -106,14 +106,14 @@ entry: %idxprom = sext i32 %Idx to i64 - %arrayidx = getelementptr inbounds i64, i64* %int64, i64 %idxprom - %0 = load i64, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %int64, i64 %idxprom + %0 = load i64, ptr %arrayidx, align 8 %vecins = insertelement <2 x i64> %vec, i64 %0, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test4(i64* nocapture readonly %int64, <2 x i64> %vec) { +define <2 x i64> @s2v_test4(ptr nocapture readonly %int64, <2 x i64> %vec) { ; P9LE-LABEL: s2v_test4: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfd f0, 8(r3) @@ -139,14 +139,14 @@ ; P8BE-NEXT: blr entry: - %arrayidx = getelementptr inbounds i64, i64* %int64, i64 1 - %0 = load i64, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %int64, i64 1 + %0 = load i64, ptr %arrayidx, align 8 %vecins = insertelement <2 x i64> %vec, i64 %0, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test5(<2 x i64> %vec, i64* nocapture readonly %ptr1) { +define <2 x i64> @s2v_test5(<2 x i64> %vec, ptr nocapture readonly %ptr1) { ; P9LE-LABEL: s2v_test5: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfd f0, 0(r5) @@ -172,13 +172,13 @@ ; P8BE-NEXT: blr entry: - %0 = load i64, i64* %ptr1, align 8 + %0 = load i64, ptr %ptr1, align 8 %vecins = insertelement <2 x i64> %vec, i64 %0, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x double> @s2v_test_f1(double* nocapture readonly %f64, <2 x double> %vec) { +define <2 x double> @s2v_test_f1(ptr nocapture readonly %f64, <2 x double> %vec) { ; P9LE-LABEL: s2v_test_f1: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfd f0, 0(r3) @@ -206,13 +206,13 @@ entry: - %0 = load double, double* %f64, align 8 + %0 = load double, ptr %f64, align 8 %vecins = insertelement <2 x double> %vec, double %0, i32 0 ret <2 x double> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x double> @s2v_test_f2(double* nocapture readonly %f64, <2 x double> %vec) { +define <2 x double> @s2v_test_f2(ptr nocapture readonly %f64, <2 x double> %vec) { ; P9LE-LABEL: s2v_test_f2: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfd f0, 8(r3) @@ -240,14 +240,14 @@ entry: - %arrayidx = getelementptr inbounds double, double* %f64, i64 1 - %0 = load double, double* %arrayidx, align 8 + %arrayidx = getelementptr inbounds double, ptr %f64, i64 1 + %0 = load double, ptr %arrayidx, align 8 %vecins = insertelement <2 x double> %vec, double %0, i32 0 ret <2 x double> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x double> @s2v_test_f3(double* nocapture readonly %f64, <2 x double> %vec, i32 signext %Idx) { +define <2 x double> @s2v_test_f3(ptr nocapture readonly %f64, <2 x double> %vec, i32 signext %Idx) { ; P9LE-LABEL: s2v_test_f3: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: sldi r4, r7, 3 @@ -280,14 +280,14 @@ entry: %idxprom = sext i32 %Idx to i64 - %arrayidx = getelementptr inbounds double, double* %f64, i64 %idxprom - %0 = load double, double* %arrayidx, align 8 + %arrayidx = getelementptr inbounds double, ptr %f64, i64 %idxprom + %0 = load double, ptr %arrayidx, align 8 %vecins = insertelement <2 x double> %vec, double %0, i32 0 ret <2 x double> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x double> @s2v_test_f4(double* nocapture readonly %f64, <2 x double> %vec) { +define <2 x double> @s2v_test_f4(ptr nocapture readonly %f64, <2 x double> %vec) { ; P9LE-LABEL: s2v_test_f4: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfd f0, 8(r3) @@ -315,14 +315,14 @@ entry: - %arrayidx = getelementptr inbounds double, double* %f64, i64 1 - %0 = load double, double* %arrayidx, align 8 + %arrayidx = getelementptr inbounds double, ptr %f64, i64 1 + %0 = load double, ptr %arrayidx, align 8 %vecins = insertelement <2 x double> %vec, double %0, i32 0 ret <2 x double> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x double> @s2v_test_f5(<2 x double> %vec, double* nocapture readonly %ptr1) { +define <2 x double> @s2v_test_f5(<2 x double> %vec, ptr nocapture readonly %ptr1) { ; P9LE-LABEL: s2v_test_f5: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfd f0, 0(r5) @@ -350,7 +350,7 @@ entry: - %0 = load double, double* %ptr1, align 8 + %0 = load double, ptr %ptr1, align 8 %vecins = insertelement <2 x double> %vec, double %0, i32 0 ret <2 x double> %vecins } Index: llvm/test/CodeGen/PowerPC/scalar_vector_test_2.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar_vector_test_2.ll +++ llvm/test/CodeGen/PowerPC/scalar_vector_test_2.ll @@ -8,7 +8,7 @@ ; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \ ; RUN: -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P8BE -define void @test_liwzx1(<1 x float>* %A, <1 x float>* %B, <1 x float>* %C) { +define void @test_liwzx1(ptr %A, ptr %B, ptr %C) { ; P9LE-LABEL: test_liwzx1: ; P9LE: # %bb.0: ; P9LE-NEXT: lfs f0, 0(r3) @@ -43,14 +43,14 @@ - %a = load <1 x float>, <1 x float>* %A - %b = load <1 x float>, <1 x float>* %B + %a = load <1 x float>, ptr %A + %b = load <1 x float>, ptr %B %X = fadd <1 x float> %a, %b - store <1 x float> %X, <1 x float>* %C + store <1 x float> %X, ptr %C ret void } -define <1 x float>* @test_liwzx2(<1 x float>* %A, <1 x float>* %B, <1 x float>* %C) { +define ptr @test_liwzx2(ptr %A, ptr %B, ptr %C) { ; P9LE-LABEL: test_liwzx2: ; P9LE: # %bb.0: ; P9LE-NEXT: lfs f0, 0(r3) @@ -91,9 +91,9 @@ - %a = load <1 x float>, <1 x float>* %A - %b = load <1 x float>, <1 x float>* %B + %a = load <1 x float>, ptr %A + %b = load <1 x float>, ptr %B %X = fsub <1 x float> %a, %b - store <1 x float> %X, <1 x float>* %C - ret <1 x float>* %C + store <1 x float> %X, ptr %C + ret ptr %C } Index: llvm/test/CodeGen/PowerPC/scalar_vector_test_3.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar_vector_test_3.ll +++ llvm/test/CodeGen/PowerPC/scalar_vector_test_3.ll @@ -9,7 +9,7 @@ ; RUN: -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P8BE ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test1(i32* nocapture readonly %int32, <2 x i64> %vec) { +define <2 x i64> @s2v_test1(ptr nocapture readonly %int32, <2 x i64> %vec) { ; P9LE-LABEL: s2v_test1: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfiwax f0, 0, r3 @@ -37,14 +37,14 @@ entry: - %0 = load i32, i32* %int32, align 4 + %0 = load i32, ptr %int32, align 4 %conv = sext i32 %0 to i64 %vecins = insertelement <2 x i64> %vec, i64 %conv, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test2(i32* nocapture readonly %int32, <2 x i64> %vec) { +define <2 x i64> @s2v_test2(ptr nocapture readonly %int32, <2 x i64> %vec) { ; P9LE-LABEL: s2v_test2: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: addi r3, r3, 4 @@ -76,15 +76,15 @@ entry: - %arrayidx = getelementptr inbounds i32, i32* %int32, i64 1 - %0 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %int32, i64 1 + %0 = load i32, ptr %arrayidx, align 4 %conv = sext i32 %0 to i64 %vecins = insertelement <2 x i64> %vec, i64 %conv, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test3(i32* nocapture readonly %int32, <2 x i64> %vec, i32 signext %Idx) { +define <2 x i64> @s2v_test3(ptr nocapture readonly %int32, <2 x i64> %vec, i32 signext %Idx) { ; P9LE-LABEL: s2v_test3: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: sldi r4, r7, 2 @@ -117,15 +117,15 @@ entry: %idxprom = sext i32 %Idx to i64 - %arrayidx = getelementptr inbounds i32, i32* %int32, i64 %idxprom - %0 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %int32, i64 %idxprom + %0 = load i32, ptr %arrayidx, align 4 %conv = sext i32 %0 to i64 %vecins = insertelement <2 x i64> %vec, i64 %conv, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test4(i32* nocapture readonly %int32, <2 x i64> %vec) { +define <2 x i64> @s2v_test4(ptr nocapture readonly %int32, <2 x i64> %vec) { ; P9LE-LABEL: s2v_test4: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: addi r3, r3, 4 @@ -157,15 +157,15 @@ entry: - %arrayidx = getelementptr inbounds i32, i32* %int32, i64 1 - %0 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %int32, i64 1 + %0 = load i32, ptr %arrayidx, align 4 %conv = sext i32 %0 to i64 %vecins = insertelement <2 x i64> %vec, i64 %conv, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test5(<2 x i64> %vec, i32* nocapture readonly %ptr1) { +define <2 x i64> @s2v_test5(<2 x i64> %vec, ptr nocapture readonly %ptr1) { ; P9LE-LABEL: s2v_test5: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfiwax f0, 0, r5 @@ -193,14 +193,14 @@ entry: - %0 = load i32, i32* %ptr1, align 4 + %0 = load i32, ptr %ptr1, align 4 %conv = sext i32 %0 to i64 %vecins = insertelement <2 x i64> %vec, i64 %conv, i32 0 ret <2 x i64> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test6(i32* nocapture readonly %ptr) { +define <2 x i64> @s2v_test6(ptr nocapture readonly %ptr) { ; P9LE-LABEL: s2v_test6: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfiwax f0, 0, r3 @@ -228,7 +228,7 @@ entry: - %0 = load i32, i32* %ptr, align 4 + %0 = load i32, ptr %ptr, align 4 %conv = sext i32 %0 to i64 %splat.splatinsert = insertelement <2 x i64> undef, i64 %conv, i32 0 %splat.splat = shufflevector <2 x i64> %splat.splatinsert, <2 x i64> undef, <2 x i32> zeroinitializer @@ -236,7 +236,7 @@ } ; Function Attrs: norecurse nounwind readonly -define <2 x i64> @s2v_test7(i32* nocapture readonly %ptr) { +define <2 x i64> @s2v_test7(ptr nocapture readonly %ptr) { ; P9LE-LABEL: s2v_test7: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfiwax f0, 0, r3 @@ -264,7 +264,7 @@ entry: - %0 = load i32, i32* %ptr, align 4 + %0 = load i32, ptr %ptr, align 4 %conv = sext i32 %0 to i64 %splat.splatinsert = insertelement <2 x i64> undef, i64 %conv, i32 0 %splat.splat = shufflevector <2 x i64> %splat.splatinsert, <2 x i64> undef, <2 x i32> zeroinitializer Index: llvm/test/CodeGen/PowerPC/scalar_vector_test_4.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar_vector_test_4.ll +++ llvm/test/CodeGen/PowerPC/scalar_vector_test_4.ll @@ -22,7 +22,7 @@ ; RUN: --check-prefixes=AIX,P8-AIX-32 ; Function Attrs: norecurse nounwind readonly -define <4 x i32> @s2v_test1(i32* nocapture readonly %int32, <4 x i32> %vec) { +define <4 x i32> @s2v_test1(ptr nocapture readonly %int32, <4 x i32> %vec) { ; P9LE-LABEL: s2v_test1: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lwz r3, 0(r3) @@ -82,13 +82,13 @@ ; P8-AIX-32-NEXT: vperm v2, v4, v2, v3 ; P8-AIX-32-NEXT: blr entry: - %0 = load i32, i32* %int32, align 4 + %0 = load i32, ptr %int32, align 4 %vecins = insertelement <4 x i32> %vec, i32 %0, i32 0 ret <4 x i32> %vecins } ; Function Attrs: norecurse nounwind readonly -define <4 x i32> @s2v_test2(i32* nocapture readonly %int32, <4 x i32> %vec) { +define <4 x i32> @s2v_test2(ptr nocapture readonly %int32, <4 x i32> %vec) { ; P9LE-LABEL: s2v_test2: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lwz r3, 4(r3) @@ -151,14 +151,14 @@ ; P8-AIX-32-NEXT: vperm v2, v4, v2, v3 ; P8-AIX-32-NEXT: blr entry: - %arrayidx = getelementptr inbounds i32, i32* %int32, i64 1 - %0 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %int32, i64 1 + %0 = load i32, ptr %arrayidx, align 4 %vecins = insertelement <4 x i32> %vec, i32 %0, i32 0 ret <4 x i32> %vecins } ; Function Attrs: norecurse nounwind readonly -define <4 x i32> @s2v_test3(i32* nocapture readonly %int32, <4 x i32> %vec, i32 signext %Idx) { +define <4 x i32> @s2v_test3(ptr nocapture readonly %int32, <4 x i32> %vec, i32 signext %Idx) { ; P9LE-LABEL: s2v_test3: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: sldi r4, r7, 2 @@ -234,14 +234,14 @@ ; P8-AIX-32-NEXT: blr entry: %idxprom = sext i32 %Idx to i64 - %arrayidx = getelementptr inbounds i32, i32* %int32, i64 %idxprom - %0 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %int32, i64 %idxprom + %0 = load i32, ptr %arrayidx, align 4 %vecins = insertelement <4 x i32> %vec, i32 %0, i32 0 ret <4 x i32> %vecins } ; Function Attrs: norecurse nounwind readonly -define <4 x i32> @s2v_test4(i32* nocapture readonly %int32, <4 x i32> %vec) { +define <4 x i32> @s2v_test4(ptr nocapture readonly %int32, <4 x i32> %vec) { ; P9LE-LABEL: s2v_test4: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lwz r3, 4(r3) @@ -304,14 +304,14 @@ ; P8-AIX-32-NEXT: vperm v2, v4, v2, v3 ; P8-AIX-32-NEXT: blr entry: - %arrayidx = getelementptr inbounds i32, i32* %int32, i64 1 - %0 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %int32, i64 1 + %0 = load i32, ptr %arrayidx, align 4 %vecins = insertelement <4 x i32> %vec, i32 %0, i32 0 ret <4 x i32> %vecins } ; Function Attrs: norecurse nounwind readonly -define <4 x i32> @s2v_test5(<4 x i32> %vec, i32* nocapture readonly %ptr1) { +define <4 x i32> @s2v_test5(<4 x i32> %vec, ptr nocapture readonly %ptr1) { ; P9LE-LABEL: s2v_test5: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lwz r3, 0(r5) @@ -371,13 +371,13 @@ ; P8-AIX-32-NEXT: vperm v2, v4, v2, v3 ; P8-AIX-32-NEXT: blr entry: - %0 = load i32, i32* %ptr1, align 4 + %0 = load i32, ptr %ptr1, align 4 %vecins = insertelement <4 x i32> %vec, i32 %0, i32 0 ret <4 x i32> %vecins } ; Function Attrs: norecurse nounwind readonly -define <4 x float> @s2v_test_f1(float* nocapture readonly %f64, <4 x float> %vec) { +define <4 x float> @s2v_test_f1(ptr nocapture readonly %f64, <4 x float> %vec) { ; P9LE-LABEL: s2v_test_f1: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lwz r3, 0(r3) @@ -434,13 +434,13 @@ ; P8-AIX-32-NEXT: vperm v2, v3, v2, v4 ; P8-AIX-32-NEXT: blr entry: - %0 = load float, float* %f64, align 4 + %0 = load float, ptr %f64, align 4 %vecins = insertelement <4 x float> %vec, float %0, i32 0 ret <4 x float> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x float> @s2v_test_f2(float* nocapture readonly %f64, <2 x float> %vec) { +define <2 x float> @s2v_test_f2(ptr nocapture readonly %f64, <2 x float> %vec) { ; P9LE-LABEL: s2v_test_f2: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: addi r3, r3, 4 @@ -478,14 +478,14 @@ ; AIX-NEXT: vmrgow v2, v3, v2 ; AIX-NEXT: blr entry: - %arrayidx = getelementptr inbounds float, float* %f64, i64 1 - %0 = load float, float* %arrayidx, align 8 + %arrayidx = getelementptr inbounds float, ptr %f64, i64 1 + %0 = load float, ptr %arrayidx, align 8 %vecins = insertelement <2 x float> %vec, float %0, i32 0 ret <2 x float> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x float> @s2v_test_f3(float* nocapture readonly %f64, <2 x float> %vec, i32 signext %Idx) { +define <2 x float> @s2v_test_f3(ptr nocapture readonly %f64, <2 x float> %vec, i32 signext %Idx) { ; P9LE-LABEL: s2v_test_f3: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: sldi r4, r7, 2 @@ -545,14 +545,14 @@ ; P8-AIX-32-NEXT: blr entry: %idxprom = sext i32 %Idx to i64 - %arrayidx = getelementptr inbounds float, float* %f64, i64 %idxprom - %0 = load float, float* %arrayidx, align 8 + %arrayidx = getelementptr inbounds float, ptr %f64, i64 %idxprom + %0 = load float, ptr %arrayidx, align 8 %vecins = insertelement <2 x float> %vec, float %0, i32 0 ret <2 x float> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x float> @s2v_test_f4(float* nocapture readonly %f64, <2 x float> %vec) { +define <2 x float> @s2v_test_f4(ptr nocapture readonly %f64, <2 x float> %vec) { ; P9LE-LABEL: s2v_test_f4: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: addi r3, r3, 4 @@ -590,14 +590,14 @@ ; AIX-NEXT: vmrgow v2, v3, v2 ; AIX-NEXT: blr entry: - %arrayidx = getelementptr inbounds float, float* %f64, i64 1 - %0 = load float, float* %arrayidx, align 8 + %arrayidx = getelementptr inbounds float, ptr %f64, i64 1 + %0 = load float, ptr %arrayidx, align 8 %vecins = insertelement <2 x float> %vec, float %0, i32 0 ret <2 x float> %vecins } ; Function Attrs: norecurse nounwind readonly -define <2 x float> @s2v_test_f5(<2 x float> %vec, float* nocapture readonly %ptr1) { +define <2 x float> @s2v_test_f5(<2 x float> %vec, ptr nocapture readonly %ptr1) { ; P9LE-LABEL: s2v_test_f5: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lfiwzx f0, 0, r5 @@ -630,7 +630,7 @@ ; AIX-NEXT: vmrgow v2, v3, v2 ; AIX-NEXT: blr entry: - %0 = load float, float* %ptr1, align 8 + %0 = load float, ptr %ptr1, align 8 %vecins = insertelement <2 x float> %vec, float %0, i32 0 ret <2 x float> %vecins } Index: llvm/test/CodeGen/PowerPC/scalar_vector_test_5.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalar_vector_test_5.ll +++ llvm/test/CodeGen/PowerPC/scalar_vector_test_5.ll @@ -8,7 +8,7 @@ ; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \ ; RUN: -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P8BE -define i8 @scalar_to_vector_half(i16* nocapture readonly %ad) { +define i8 @scalar_to_vector_half(ptr nocapture readonly %ad) { ; P9LE-LABEL: scalar_to_vector_half: ; P9LE: # %bb.0: # %entry ; P9LE-NEXT: lhz r3, 0(r3) @@ -36,9 +36,8 @@ ; P8BE-NEXT: rldicl r3, r3, 8, 56 ; P8BE-NEXT: blr entry: - %0 = bitcast i16* %ad to <2 x i8>* - %1 = load <2 x i8>, <2 x i8>* %0, align 1 - %2 = extractelement <2 x i8> %1, i32 0 - ret i8 %2 + %0 = load <2 x i8>, ptr %ad, align 1 + %1 = extractelement <2 x i8> %0, i32 0 + ret i8 %1 } Index: llvm/test/CodeGen/PowerPC/scalars-in-altivec-regs.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scalars-in-altivec-regs.ll +++ llvm/test/CodeGen/PowerPC/scalars-in-altivec-regs.ll @@ -8,7 +8,7 @@ ; RUN: llc -mtriple=powerpc64le-- -verify-machineinstrs \ ; RUN: -ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck --check-prefix=LE %s -define dso_local void @test1(<2 x double>* %v, i64 %a) local_unnamed_addr #0 { +define dso_local void @test1(ptr %v, i64 %a) local_unnamed_addr #0 { ; AIX64-LABEL: test1: ; AIX64: # %bb.0: # %entry ; AIX64-NEXT: mtvsrd vs34, r4 @@ -36,11 +36,11 @@ ; LE-NEXT: #NO_APP ; LE-NEXT: blr entry: - tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i64 %a, <2 x double>* %v) + tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i64 %a, ptr %v) ret void } -define dso_local void @test2(<2 x double>* %v, i32 signext %a) local_unnamed_addr #0 { +define dso_local void @test2(ptr %v, i32 signext %a) local_unnamed_addr #0 { ; AIX64-LABEL: test2: ; AIX64: # %bb.0: # %entry ; AIX64-NEXT: clrldi r4, r4, 32 @@ -71,11 +71,11 @@ ; LE-NEXT: #NO_APP ; LE-NEXT: blr entry: - tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i32 %a, <2 x double>* %v) + tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i32 %a, ptr %v) ret void } -define dso_local void @test3(<2 x double>* %v, i16 signext %a) local_unnamed_addr #0 { +define dso_local void @test3(ptr %v, i16 signext %a) local_unnamed_addr #0 { ; AIX64-LABEL: test3: ; AIX64: # %bb.0: # %entry ; AIX64-NEXT: clrldi r4, r4, 48 @@ -107,11 +107,11 @@ ; LE-NEXT: #NO_APP ; LE-NEXT: blr entry: - tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i16 %a, <2 x double>* %v) + tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i16 %a, ptr %v) ret void } -define dso_local void @test4(<2 x double>* %v, i8 signext %a) local_unnamed_addr #0 { +define dso_local void @test4(ptr %v, i8 signext %a) local_unnamed_addr #0 { ; AIX64-LABEL: test4: ; AIX64: # %bb.0: # %entry ; AIX64-NEXT: clrldi r4, r4, 56 @@ -143,11 +143,11 @@ ; LE-NEXT: #NO_APP ; LE-NEXT: blr entry: - tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i8 %a, <2 x double>* %v) + tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i8 %a, ptr %v) ret void } -define dso_local void @test6(<2 x double>* %v, i32 zeroext %a) local_unnamed_addr #0 { +define dso_local void @test6(ptr %v, i32 zeroext %a) local_unnamed_addr #0 { ; AIX64-LABEL: test6: ; AIX64: # %bb.0: # %entry ; AIX64-NEXT: mtvsrd vs34, r4 @@ -176,11 +176,11 @@ ; LE-NEXT: #NO_APP ; LE-NEXT: blr entry: - tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i32 %a, <2 x double>* %v) + tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i32 %a, ptr %v) ret void } -define dso_local void @test7(<2 x double>* %v, i16 zeroext %a) local_unnamed_addr #0 { +define dso_local void @test7(ptr %v, i16 zeroext %a) local_unnamed_addr #0 { ; AIX64-LABEL: test7: ; AIX64: # %bb.0: # %entry ; AIX64-NEXT: mtvsrd vs34, r4 @@ -209,11 +209,11 @@ ; LE-NEXT: #NO_APP ; LE-NEXT: blr entry: - tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i16 %a, <2 x double>* %v) + tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i16 %a, ptr %v) ret void } -define dso_local void @test8(<2 x double>* %v, i8 zeroext %a) local_unnamed_addr #0 { +define dso_local void @test8(ptr %v, i8 zeroext %a) local_unnamed_addr #0 { ; AIX64-LABEL: test8: ; AIX64: # %bb.0: # %entry ; AIX64-NEXT: mtvsrd vs34, r4 @@ -242,7 +242,7 @@ ; LE-NEXT: #NO_APP ; LE-NEXT: blr entry: - tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i8 %a, <2 x double>* %v) + tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i8 %a, ptr %v) ret void } Index: llvm/test/CodeGen/PowerPC/sched-addi.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sched-addi.ll +++ llvm/test/CodeGen/PowerPC/sched-addi.ll @@ -9,7 +9,7 @@ @scalars = common dso_local local_unnamed_addr global %_type_of_scalars zeroinitializer, align 16 -define dso_local void @test([0 x %_elem_type_of_x]* noalias %.x, [0 x %_elem_type_of_a]* %.a, i64* noalias %.n) { +define dso_local void @test(ptr noalias %.x, ptr %.a, ptr noalias %.n) { ; CHECK-P9-LABEL: test: ; CHECK-P9: # %bb.0: # %entry ; CHECK-P9-NEXT: ld 5, 0(5) @@ -88,10 +88,10 @@ ; CHECK-P9-NO-HEURISTIC-NEXT: # %bb.2: # %return.block ; CHECK-P9-NO-HEURISTIC-NEXT: blr entry: - %x_rvo_based_addr_3 = getelementptr inbounds [0 x %_elem_type_of_x], [0 x %_elem_type_of_x]* %.x, i64 0, i64 -1 - %a_rvo_based_addr_5 = getelementptr inbounds [0 x %_elem_type_of_a], [0 x %_elem_type_of_a]* %.a, i64 0, i64 -1 - %_val_n_ = load i64, i64* %.n, align 8 - %_val_c1_ = load double, double* getelementptr inbounds (%_type_of_scalars, %_type_of_scalars* @scalars, i64 0, i32 1), align 16 + %x_rvo_based_addr_3 = getelementptr inbounds [0 x %_elem_type_of_x], ptr %.x, i64 0, i64 -1 + %a_rvo_based_addr_5 = getelementptr inbounds [0 x %_elem_type_of_a], ptr %.a, i64 0, i64 -1 + %_val_n_ = load i64, ptr %.n, align 8 + %_val_c1_ = load double, ptr getelementptr inbounds (%_type_of_scalars, ptr @scalars, i64 0, i32 1), align 16 %n.vec = and i64 %_val_n_, -32 %broadcast.splatinsert26 = insertelement <4 x double> undef, double %_val_c1_, i32 0 %broadcast.splat27 = shufflevector <4 x double> %broadcast.splatinsert26, <4 x double> undef, <4 x i32> zeroinitializer @@ -100,57 +100,41 @@ vector.body: %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ] %offset.idx = or i64 %index, 1 - %0 = getelementptr %_elem_type_of_x, %_elem_type_of_x* %x_rvo_based_addr_3, i64 %offset.idx, i32 0 - %1 = getelementptr %_elem_type_of_a, %_elem_type_of_a* %a_rvo_based_addr_5, i64 %offset.idx, i32 0 - %2 = bitcast double* %1 to <4 x double>* - %wide.load = load <4 x double>, <4 x double>* %2, align 8 - %3 = getelementptr double, double* %1, i64 4 - %4 = bitcast double* %3 to <4 x double>* - %wide.load19 = load <4 x double>, <4 x double>* %4, align 8 - %5 = getelementptr double, double* %1, i64 8 - %6 = bitcast double* %5 to <4 x double>* - %wide.load20 = load <4 x double>, <4 x double>* %6, align 8 - %7 = getelementptr double, double* %1, i64 12 - %8 = bitcast double* %7 to <4 x double>* - %wide.load21 = load <4 x double>, <4 x double>* %8, align 8 - %9 = getelementptr double, double* %1, i64 16 - %10 = bitcast double* %9 to <4 x double>* - %wide.load22 = load <4 x double>, <4 x double>* %10, align 8 - %11 = getelementptr double, double* %1, i64 20 - %12 = bitcast double* %11 to <4 x double>* - %wide.load23 = load <4 x double>, <4 x double>* %12, align 8 - %13 = getelementptr double, double* %1, i64 24 - %14 = bitcast double* %13 to <4 x double>* - %wide.load24 = load <4 x double>, <4 x double>* %14, align 8 - %15 = getelementptr double, double* %1, i64 28 - %16 = bitcast double* %15 to <4 x double>* - %wide.load25 = load <4 x double>, <4 x double>* %16, align 8 - %17 = fmul fast <4 x double> %wide.load, %broadcast.splat27 - %18 = fmul fast <4 x double> %wide.load19, %broadcast.splat27 - %19 = fmul fast <4 x double> %wide.load20, %broadcast.splat27 - %20 = fmul fast <4 x double> %wide.load21, %broadcast.splat27 - %21 = fmul fast <4 x double> %wide.load22, %broadcast.splat27 - %22 = fmul fast <4 x double> %wide.load23, %broadcast.splat27 - %23 = fmul fast <4 x double> %wide.load24, %broadcast.splat27 - %24 = fmul fast <4 x double> %wide.load25, %broadcast.splat27 - %25 = bitcast double* %0 to <4 x double>* - store <4 x double> %17, <4 x double>* %25, align 8 - %26 = getelementptr double, double* %0, i64 4 - %27 = bitcast double* %26 to <4 x double>* - store <4 x double> %18, <4 x double>* %27, align 8 - %28 = getelementptr double, double* %0, i64 8 - %29 = bitcast double* %28 to <4 x double>* - %30 = getelementptr double, double* %0, i64 12 - %31 = bitcast double* %30 to <4 x double>* - %32 = getelementptr double, double* %0, i64 16 - %33 = bitcast double* %32 to <4 x double>* - %34 = getelementptr double, double* %0, i64 20 - %35 = bitcast double* %34 to <4 x double>* - %36 = getelementptr double, double* %0, i64 24 - %37 = bitcast double* %36 to <4 x double>* - %38 = getelementptr double, double* %0, i64 28 - %39 = bitcast double* %38 to <4 x double>* - store <4 x double> %24, <4 x double>* %39, align 8 + %0 = getelementptr %_elem_type_of_x, ptr %x_rvo_based_addr_3, i64 %offset.idx, i32 0 + %1 = getelementptr %_elem_type_of_a, ptr %a_rvo_based_addr_5, i64 %offset.idx, i32 0 + %wide.load = load <4 x double>, ptr %1, align 8 + %2 = getelementptr double, ptr %1, i64 4 + %wide.load19 = load <4 x double>, ptr %2, align 8 + %3 = getelementptr double, ptr %1, i64 8 + %wide.load20 = load <4 x double>, ptr %3, align 8 + %4 = getelementptr double, ptr %1, i64 12 + %wide.load21 = load <4 x double>, ptr %4, align 8 + %5 = getelementptr double, ptr %1, i64 16 + %wide.load22 = load <4 x double>, ptr %5, align 8 + %6 = getelementptr double, ptr %1, i64 20 + %wide.load23 = load <4 x double>, ptr %6, align 8 + %7 = getelementptr double, ptr %1, i64 24 + %wide.load24 = load <4 x double>, ptr %7, align 8 + %8 = getelementptr double, ptr %1, i64 28 + %wide.load25 = load <4 x double>, ptr %8, align 8 + %9 = fmul fast <4 x double> %wide.load, %broadcast.splat27 + %10 = fmul fast <4 x double> %wide.load19, %broadcast.splat27 + %11 = fmul fast <4 x double> %wide.load20, %broadcast.splat27 + %12 = fmul fast <4 x double> %wide.load21, %broadcast.splat27 + %13 = fmul fast <4 x double> %wide.load22, %broadcast.splat27 + %14 = fmul fast <4 x double> %wide.load23, %broadcast.splat27 + %15 = fmul fast <4 x double> %wide.load24, %broadcast.splat27 + %16 = fmul fast <4 x double> %wide.load25, %broadcast.splat27 + store <4 x double> %9, ptr %0, align 8 + %17 = getelementptr double, ptr %0, i64 4 + store <4 x double> %10, ptr %17, align 8 + %18 = getelementptr double, ptr %0, i64 8 + %19 = getelementptr double, ptr %0, i64 12 + %20 = getelementptr double, ptr %0, i64 16 + %21 = getelementptr double, ptr %0, i64 20 + %22 = getelementptr double, ptr %0, i64 24 + %23 = getelementptr double, ptr %0, i64 28 + store <4 x double> %16, ptr %23, align 8 %index.next = add i64 %index, 32 %cm = icmp eq i64 %index.next, %n.vec br i1 %cm, label %return.block, label %vector.body Index: llvm/test/CodeGen/PowerPC/scheduling-mem-dependency.ll =================================================================== --- llvm/test/CodeGen/PowerPC/scheduling-mem-dependency.ll +++ llvm/test/CodeGen/PowerPC/scheduling-mem-dependency.ll @@ -2,7 +2,7 @@ ; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -verify-misched -debug-only=machine-scheduler -o - 2>&1 > /dev/null | FileCheck %s ; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 -verify-misched -debug-only=machine-scheduler -o - 2>&1 > /dev/null | FileCheck %s --check-prefix=CHECK-P9 -define i64 @store_disjoint_memory(i64* nocapture %P, i64 %v) { +define i64 @store_disjoint_memory(ptr nocapture %P, i64 %v) { entry: ; CHECK: ********** MI Scheduling ********** ; CHECK-LABEL: store_disjoint_memory:%bb.0 @@ -12,10 +12,10 @@ ; CHECK:SU([[REG3:[0-9]+]]): STD renamable $x{{[0-9]+}}, 16, renamable $x[[REG5]] ; CHECK: Predecessors: ; CHECK-NOT: SU([[REG2]]): Ord Latency=0 Memory - %arrayidx = getelementptr inbounds i64, i64* %P, i64 3 - store i64 %v, i64* %arrayidx - %arrayidx1 = getelementptr inbounds i64, i64* %P, i64 2 - store i64 %v, i64* %arrayidx1 + %arrayidx = getelementptr inbounds i64, ptr %P, i64 3 + store i64 %v, ptr %arrayidx + %arrayidx1 = getelementptr inbounds i64, ptr %P, i64 2 + store i64 %v, ptr %arrayidx1 ret i64 %v } @@ -25,11 +25,11 @@ define double @test_lxsd_no_barrier(double %a, double %b, double %c, double %d, double %e, double %f, double %g, double %h, double %i, double %j, double %k, double %l, double %m) { entry: - %0 = load double, double* getelementptr inbounds ([500 x double], [500 x double]* @gd, i64 0, i64 10), align 8 - %1 = load double, double* getelementptr inbounds ([500 x double], [500 x double]* @gd, i64 0, i64 17), align 8 - %2 = load double, double* getelementptr inbounds ([500 x double], [500 x double]* @gd, i64 0, i64 87), align 8 - %3 = load double, double* getelementptr inbounds ([500 x double], [500 x double]* @gd, i64 0, i64 97), align 8 - %4 = load double, double* getelementptr inbounds ([500 x double], [500 x double]* @gd, i64 0, i64 77), align 8 + %0 = load double, ptr getelementptr inbounds ([500 x double], ptr @gd, i64 0, i64 10), align 8 + %1 = load double, ptr getelementptr inbounds ([500 x double], ptr @gd, i64 0, i64 17), align 8 + %2 = load double, ptr getelementptr inbounds ([500 x double], ptr @gd, i64 0, i64 87), align 8 + %3 = load double, ptr getelementptr inbounds ([500 x double], ptr @gd, i64 0, i64 97), align 8 + %4 = load double, ptr getelementptr inbounds ([500 x double], ptr @gd, i64 0, i64 77), align 8 %add = fadd double %a, %b %add1 = fadd double %add, %c %add2 = fadd double %add1, %d Index: llvm/test/CodeGen/PowerPC/sdag-ppcf128.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sdag-ppcf128.ll +++ llvm/test/CodeGen/PowerPC/sdag-ppcf128.ll @@ -7,7 +7,7 @@ br i1 undef, label %if, label %else ; CHECK: cmplwi 3, 0 if: ; preds = %entry - store { ppc_fp128, ppc_fp128 } zeroinitializer, { ppc_fp128, ppc_fp128 }* undef + store { ppc_fp128, ppc_fp128 } zeroinitializer, ptr undef ret void else: ; preds = %entry Index: llvm/test/CodeGen/PowerPC/select-addrRegRegOnly.ll =================================================================== --- llvm/test/CodeGen/PowerPC/select-addrRegRegOnly.ll +++ llvm/test/CodeGen/PowerPC/select-addrRegRegOnly.ll @@ -2,7 +2,7 @@ ; RUN: llc -mcpu=pwr8 -mtriple=powerpc64-unknown-unknown -verify-machineinstrs < %s | FileCheck %s ; Function Attrs: norecurse nounwind readonly -define float @testSingleAccess(i32* nocapture readonly %arr) local_unnamed_addr #0 { +define float @testSingleAccess(ptr nocapture readonly %arr) local_unnamed_addr #0 { ; CHECK-LABEL: testSingleAccess: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: addi 3, 3, 8 @@ -10,14 +10,14 @@ ; CHECK-NEXT: xscvsxdsp 1, 0 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds i32, i32* %arr, i64 2 - %0 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %arr, i64 2 + %0 = load i32, ptr %arrayidx, align 4 %conv = sitofp i32 %0 to float ret float %conv } ; Function Attrs: norecurse nounwind readonly -define float @testMultipleAccess(i32* nocapture readonly %arr) local_unnamed_addr #0 { +define float @testMultipleAccess(ptr nocapture readonly %arr) local_unnamed_addr #0 { ; CHECK-LABEL: testMultipleAccess: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwz 4, 8(3) @@ -27,10 +27,10 @@ ; CHECK-NEXT: xscvsxdsp 1, 0 ; CHECK-NEXT: blr entry: - %arrayidx = getelementptr inbounds i32, i32* %arr, i64 2 - %0 = load i32, i32* %arrayidx, align 4 - %arrayidx1 = getelementptr inbounds i32, i32* %arr, i64 3 - %1 = load i32, i32* %arrayidx1, align 4 + %arrayidx = getelementptr inbounds i32, ptr %arr, i64 2 + %0 = load i32, ptr %arrayidx, align 4 + %arrayidx1 = getelementptr inbounds i32, ptr %arr, i64 3 + %1 = load i32, ptr %arrayidx1, align 4 %add = add nsw i32 %1, %0 %conv = sitofp i32 %add to float ret float %conv Index: llvm/test/CodeGen/PowerPC/selectiondag-extload-computeknownbits.ll =================================================================== --- llvm/test/CodeGen/PowerPC/selectiondag-extload-computeknownbits.ll +++ llvm/test/CodeGen/PowerPC/selectiondag-extload-computeknownbits.ll @@ -2,9 +2,9 @@ ; Check that llc does not crash due to an illegal APInt operation -define i1 @f(i8* %ptr) { +define i1 @f(ptr %ptr) { entry: - %val = load i8, i8* %ptr, align 8, !range !0 + %val = load i8, ptr %ptr, align 8, !range !0 %tobool = icmp eq i8 %val, 0 ret i1 %tobool } Index: llvm/test/CodeGen/PowerPC/selectiondag-sextload.ll =================================================================== --- llvm/test/CodeGen/PowerPC/selectiondag-sextload.ll +++ llvm/test/CodeGen/PowerPC/selectiondag-sextload.ll @@ -5,12 +5,12 @@ declare void @g(i32 signext) -define void @foo(i8* %p) { +define void @foo(ptr %p) { entry: br label %while.body while.body: - %0 = load i8, i8* %p, align 1 + %0 = load i8, ptr %p, align 1 %conv = zext i8 %0 to i32 %cmp = icmp sgt i8 %0, 0 br i1 %cmp, label %if.then, label %while.body Index: llvm/test/CodeGen/PowerPC/setcc-logic.ll =================================================================== --- llvm/test/CodeGen/PowerPC/setcc-logic.ll +++ llvm/test/CodeGen/PowerPC/setcc-logic.ll @@ -110,7 +110,7 @@ } ; PR3351 - (P == 0) & (Q == 0) -> (P|Q) == 0 -define i32 @all_bits_clear_branch(i32* %P, i32* %Q) { +define i32 @all_bits_clear_branch(ptr %P, ptr %Q) { ; CHECK-LABEL: all_bits_clear_branch: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: or. 3, 3, 4 @@ -122,8 +122,8 @@ ; CHECK-NEXT: li 3, 192 ; CHECK-NEXT: blr entry: - %a = icmp eq i32* %P, null - %b = icmp eq i32* %Q, null + %a = icmp eq ptr %P, null + %b = icmp eq ptr %Q, null %c = and i1 %a, %b br i1 %c, label %bb1, label %return @@ -210,7 +210,7 @@ } ; PR3351 - (P != 0) | (Q != 0) -> (P|Q) != 0 -define i32 @any_bits_set_branch(i32* %P, i32* %Q) { +define i32 @any_bits_set_branch(ptr %P, ptr %Q) { ; CHECK-LABEL: any_bits_set_branch: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: or. 3, 3, 4 @@ -222,8 +222,8 @@ ; CHECK-NEXT: li 3, 192 ; CHECK-NEXT: blr entry: - %a = icmp ne i32* %P, null - %b = icmp ne i32* %Q, null + %a = icmp ne ptr %P, null + %b = icmp ne ptr %Q, null %c = or i1 %a, %b br i1 %c, label %bb1, label %return Index: llvm/test/CodeGen/PowerPC/setcc-to-sub.ll =================================================================== --- llvm/test/CodeGen/PowerPC/setcc-to-sub.ll +++ llvm/test/CodeGen/PowerPC/setcc-to-sub.ll @@ -4,11 +4,11 @@ ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-ibm-aix-xcoff -mcpu=pwr8 \ ; RUN: < %s -vec-extabi | FileCheck %s -%class.PB2 = type { [1 x i32], %class.PB1* } +%class.PB2 = type { [1 x i32], ptr } %class.PB1 = type { [1 x i32], i64, i64, i32 } ; Function Attrs: norecurse nounwind readonly -define zeroext i1 @test1(%class.PB2* %s_a, %class.PB2* %s_b) local_unnamed_addr #0 { +define zeroext i1 @test1(ptr %s_a, ptr %s_b) local_unnamed_addr #0 { ; CHECK-LABEL: test1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwz 3, 0(3) @@ -19,18 +19,16 @@ ; CHECK-NEXT: rldicl 3, 3, 1, 63 ; CHECK-NEXT: blr entry: - %arrayidx.i6 = bitcast %class.PB2* %s_a to i32* - %0 = load i32, i32* %arrayidx.i6, align 8, !tbaa !1 + %0 = load i32, ptr %s_a, align 8, !tbaa !1 %and.i = and i32 %0, 8 - %arrayidx.i37 = bitcast %class.PB2* %s_b to i32* - %1 = load i32, i32* %arrayidx.i37, align 8, !tbaa !1 + %1 = load i32, ptr %s_b, align 8, !tbaa !1 %and.i4 = and i32 %1, 8 %cmp.i5 = icmp ult i32 %and.i, %and.i4 ret i1 %cmp.i5 } ; Function Attrs: norecurse nounwind readonly -define zeroext i1 @test2(%class.PB2* %s_a, %class.PB2* %s_b) local_unnamed_addr #0 { +define zeroext i1 @test2(ptr %s_a, ptr %s_b) local_unnamed_addr #0 { ; CHECK-LABEL: test2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwz 3, 0(3) @@ -42,18 +40,16 @@ ; CHECK-NEXT: rldicl 3, 3, 1, 63 ; CHECK-NEXT: blr entry: - %arrayidx.i6 = bitcast %class.PB2* %s_a to i32* - %0 = load i32, i32* %arrayidx.i6, align 8, !tbaa !1 + %0 = load i32, ptr %s_a, align 8, !tbaa !1 %and.i = and i32 %0, 8 - %arrayidx.i37 = bitcast %class.PB2* %s_b to i32* - %1 = load i32, i32* %arrayidx.i37, align 8, !tbaa !1 + %1 = load i32, ptr %s_b, align 8, !tbaa !1 %and.i4 = and i32 %1, 8 %cmp.i5 = icmp ule i32 %and.i, %and.i4 ret i1 %cmp.i5 } ; Function Attrs: norecurse nounwind readonly -define zeroext i1 @test3(%class.PB2* %s_a, %class.PB2* %s_b) local_unnamed_addr #0 { +define zeroext i1 @test3(ptr %s_a, ptr %s_b) local_unnamed_addr #0 { ; CHECK-LABEL: test3: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwz 3, 0(3) @@ -64,18 +60,16 @@ ; CHECK-NEXT: rldicl 3, 3, 1, 63 ; CHECK-NEXT: blr entry: - %arrayidx.i6 = bitcast %class.PB2* %s_a to i32* - %0 = load i32, i32* %arrayidx.i6, align 8, !tbaa !1 + %0 = load i32, ptr %s_a, align 8, !tbaa !1 %and.i = and i32 %0, 8 - %arrayidx.i37 = bitcast %class.PB2* %s_b to i32* - %1 = load i32, i32* %arrayidx.i37, align 8, !tbaa !1 + %1 = load i32, ptr %s_b, align 8, !tbaa !1 %and.i4 = and i32 %1, 8 %cmp.i5 = icmp ugt i32 %and.i, %and.i4 ret i1 %cmp.i5 } ; Function Attrs: norecurse nounwind readonly -define zeroext i1 @test4(%class.PB2* %s_a, %class.PB2* %s_b) local_unnamed_addr #0 { +define zeroext i1 @test4(ptr %s_a, ptr %s_b) local_unnamed_addr #0 { ; CHECK-LABEL: test4: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lwz 3, 0(3) @@ -87,11 +81,9 @@ ; CHECK-NEXT: rldicl 3, 3, 1, 63 ; CHECK-NEXT: blr entry: - %arrayidx.i6 = bitcast %class.PB2* %s_a to i32* - %0 = load i32, i32* %arrayidx.i6, align 8, !tbaa !1 + %0 = load i32, ptr %s_a, align 8, !tbaa !1 %and.i = and i32 %0, 8 - %arrayidx.i37 = bitcast %class.PB2* %s_b to i32* - %1 = load i32, i32* %arrayidx.i37, align 8, !tbaa !1 + %1 = load i32, ptr %s_b, align 8, !tbaa !1 %and.i4 = and i32 %1, 8 %cmp.i5 = icmp uge i32 %and.i, %and.i4 ret i1 %cmp.i5 Index: llvm/test/CodeGen/PowerPC/setcc_no_zext.ll =================================================================== --- llvm/test/CodeGen/PowerPC/setcc_no_zext.ll +++ llvm/test/CodeGen/PowerPC/setcc_no_zext.ll @@ -4,9 +4,9 @@ ; default at the default CodeOpt level. ; XFAIL: * -define i32 @setcc_one_or_zero(i32* %a) { +define i32 @setcc_one_or_zero(ptr %a) { entry: - %tmp.1 = icmp ne i32* %a, null ; [#uses=1] + %tmp.1 = icmp ne ptr %a, null ; [#uses=1] %inc.1 = zext i1 %tmp.1 to i32 ; [#uses=1] ret i32 %inc.1 } Index: llvm/test/CodeGen/PowerPC/setcclike-or-comb.ll =================================================================== --- llvm/test/CodeGen/PowerPC/setcclike-or-comb.ll +++ llvm/test/CodeGen/PowerPC/setcclike-or-comb.ll @@ -8,17 +8,17 @@ ; Function Attrs: nounwind define void @fn1() #0 { entry: - %0 = load i32, i32* @a, align 4 + %0 = load i32, ptr @a, align 4 %cmp = icmp ne i32 %0, 1 %conv = zext i1 %cmp to i32 - %1 = load i32, i32* @b, align 4 + %1 = load i32, ptr @b, align 4 %cmp1 = icmp ne i32 0, %1 %conv2 = zext i1 %cmp1 to i32 %or = or i32 %conv, %conv2 %xor = xor i32 1, %or %call = call signext i32 @fn2(i32 signext %xor) %conv4 = zext i1 undef to i32 - store i32 %conv4, i32* @b, align 4 + store i32 %conv4, ptr @b, align 4 ret void ; CHECK-LABEL: @fn1 Index: llvm/test/CodeGen/PowerPC/sign-ext-atomics.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sign-ext-atomics.ll +++ llvm/test/CodeGen/PowerPC/sign-ext-atomics.ll @@ -26,10 +26,9 @@ ; CHECK-NEXT: blr top: %1 = alloca i16, align 4 - %2 = bitcast i16* %1 to i8* - store i16 0, i16* %1, align 4 - %rv.i = atomicrmw min i16* %1, i16 %0 acq_rel - %rv.i2 = load atomic i16, i16* %1 acquire, align 16 + store i16 0, ptr %1, align 4 + %rv.i = atomicrmw min ptr %1, i16 %0 acq_rel + %rv.i2 = load atomic i16, ptr %1 acquire, align 16 ret i16 %rv.i2 } @@ -60,14 +59,13 @@ ; CHECK-NEXT: blr top: %1 = alloca i16, align 4 - %2 = bitcast i16* %1 to i8* - store i16 0, i16* %1, align 4 - %rv.i = atomicrmw min i16* %1, i16 %0 acq_rel - %rv.i2 = load atomic i16, i16* %1 acquire, align 16 + store i16 0, ptr %1, align 4 + %rv.i = atomicrmw min ptr %1, i16 %0 acq_rel + %rv.i2 = load atomic i16, ptr %1 acquire, align 16 ret i16 %rv.i2 } -define i16 @noSEXTLoad(i16 *%p) #0 { +define i16 @noSEXTLoad(ptr %p) #0 { ; CHECK-LABEL: noSEXTLoad: ; CHECK: # %bb.0: # %top ; CHECK-NEXT: lha 3, 0(3) @@ -93,12 +91,11 @@ ; CHECK-NEXT: isync ; CHECK-NEXT: blr top: - %0 = load i16, i16* %p, align 2 + %0 = load i16, ptr %p, align 2 %1 = alloca i16, align 4 - %2 = bitcast i16* %1 to i8* - store i16 0, i16* %1, align 4 - %rv.i = atomicrmw min i16* %1, i16 %0 acq_rel - %rv.i2 = load atomic i16, i16* %1 acquire, align 16 + store i16 0, ptr %1, align 4 + %rv.i = atomicrmw min ptr %1, i16 %0 acq_rel + %rv.i2 = load atomic i16, ptr %1 acquire, align 16 ret i16 %rv.i2 } attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/simplifyConstCmpToISEL.ll =================================================================== --- llvm/test/CodeGen/PowerPC/simplifyConstCmpToISEL.ll +++ llvm/test/CodeGen/PowerPC/simplifyConstCmpToISEL.ll @@ -33,11 +33,11 @@ test2.exit.us.unr-lcssa: ; preds = %if.end.i.us.1, %for.body.i62.us.preheader %c.addr.036.i.us.unr = phi i64 [ 0, %for.body.i62.us.preheader ], [ %c.addr.1.i.us.1, %if.end.i.us.1 ] - %1 = load i64, i64* undef, align 8 + %1 = load i64, ptr undef, align 8 %tobool.i61.us.epil = icmp eq i64 %c.addr.036.i.us.unr, 0 %add.neg.i.us.epil.pn = select i1 %tobool.i61.us.epil, i64 %1, i64 0 %storemerge269 = sub i64 %add.neg.i.us.epil.pn, 0 - store i64 %storemerge269, i64* undef, align 8 + store i64 %storemerge269, ptr undef, align 8 unreachable test3.exit.split: ; preds = %cond.end.i Index: llvm/test/CodeGen/PowerPC/sink-side-effect.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sink-side-effect.ll +++ llvm/test/CodeGen/PowerPC/sink-side-effect.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=powerpc64le -mcpu=pwr9 -verify-machineinstrs < %s | FileCheck %s -define double @zot(i32* %arg, float* %arg1, i16* %arg2) { +define double @zot(ptr %arg, ptr %arg1, ptr %arg2) { ; CHECK-LABEL: zot: ; CHECK: # %bb.0: # %bb ; CHECK-NEXT: bc 12, 20, .LBB0_2 @@ -26,11 +26,11 @@ ; CHECK-NEXT: xsmuldp 1, 1, 0 ; CHECK-NEXT: b .LBB0_3 bb: - %tmp = load i32, i32* %arg, align 8 + %tmp = load i32, ptr %arg, align 8 br i1 undef, label %bb9, label %bb3 bb3: - %tmp4 = load i16, i16* %arg2, align 4 + %tmp4 = load i16, ptr %arg2, align 4 %tmp5 = lshr i16 %tmp4, 4 %tmp6 = and i16 %tmp5, 3 %tmp7 = zext i16 %tmp6 to i32 @@ -46,7 +46,7 @@ br label %bb13 bb13: - %tmp14 = load float, float* %arg1, align 4 + %tmp14 = load float, ptr %arg1, align 4 %tmp15 = fpext float %tmp14 to double br label %bb16 Index: llvm/test/CodeGen/PowerPC/sj-ctr-loop.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sj-ctr-loop.ll +++ llvm/test/CodeGen/PowerPC/sj-ctr-loop.ll @@ -30,7 +30,7 @@ for.body: ; preds = %for.cond, %for.body.lr.ph %i.032 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.cond ] - %0 = call i32 @llvm.eh.sjlj.setjmp(i8* bitcast ([1 x %struct.__jmp_buf_tag.1.15.17.21.25.49.53.55]* @env_sigill to i8*)) + %0 = call i32 @llvm.eh.sjlj.setjmp(ptr @env_sigill) %inc = add nsw i32 %i.032, 1 br i1 false, label %if.else, label %for.cond @@ -45,6 +45,6 @@ } ; Function Attrs: nounwind -declare i32 @llvm.eh.sjlj.setjmp(i8*) #0 +declare i32 @llvm.eh.sjlj.setjmp(ptr) #0 attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/sjlj.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sjlj.ll +++ llvm/test/CodeGen/PowerPC/sjlj.ll @@ -11,7 +11,7 @@ define void @foo() #0 { entry: - call void @llvm.eh.sjlj.longjmp(i8* bitcast ([1 x %struct.__jmp_buf_tag]* @env_sigill to i8*)) + call void @llvm.eh.sjlj.longjmp(ptr @env_sigill) unreachable ; CHECK: @foo @@ -29,22 +29,22 @@ ret void } -declare void @llvm.eh.sjlj.longjmp(i8*) #1 +declare void @llvm.eh.sjlj.longjmp(ptr) #1 define signext i32 @main() #0 { entry: %retval = alloca i32, align 4 - store i32 0, i32* %retval - %0 = call i8* @llvm.frameaddress(i32 0) - store i8* %0, i8** bitcast ([1 x %struct.__jmp_buf_tag]* @env_sigill to i8**) - %1 = call i8* @llvm.stacksave() - store i8* %1, i8** getelementptr (i8*, i8** bitcast ([1 x %struct.__jmp_buf_tag]* @env_sigill to i8**), i32 2) - %2 = call i32 @llvm.eh.sjlj.setjmp(i8* bitcast ([1 x %struct.__jmp_buf_tag]* @env_sigill to i8*)) + store i32 0, ptr %retval + %0 = call ptr @llvm.frameaddress(i32 0) + store ptr %0, ptr @env_sigill + %1 = call ptr @llvm.stacksave() + store ptr %1, ptr getelementptr (ptr, ptr @env_sigill, i32 2) + %2 = call i32 @llvm.eh.sjlj.setjmp(ptr @env_sigill) %tobool = icmp ne i32 %2, 0 br i1 %tobool, label %if.then, label %if.else if.then: ; preds = %entry - store i32 1, i32* %retval + store i32 1, ptr %retval br label %return if.else: ; preds = %entry @@ -52,11 +52,11 @@ br label %if.end if.end: ; preds = %if.else - store i32 0, i32* %retval + store i32 0, ptr %retval br label %return return: ; preds = %if.end, %if.then - %3 = load i32, i32* %retval + %3 = load i32, ptr %retval ret i32 %3 @@ -104,19 +104,19 @@ define signext i32 @main2() #0 { entry: %a = alloca i8, align 64 - call void @bar(i8* %a) + call void @bar(ptr %a) %retval = alloca i32, align 4 - store i32 0, i32* %retval - %0 = call i8* @llvm.frameaddress(i32 0) - store i8* %0, i8** bitcast ([1 x %struct.__jmp_buf_tag]* @env_sigill to i8**) - %1 = call i8* @llvm.stacksave() - store i8* %1, i8** getelementptr (i8*, i8** bitcast ([1 x %struct.__jmp_buf_tag]* @env_sigill to i8**), i32 2) - %2 = call i32 @llvm.eh.sjlj.setjmp(i8* bitcast ([1 x %struct.__jmp_buf_tag]* @env_sigill to i8*)) + store i32 0, ptr %retval + %0 = call ptr @llvm.frameaddress(i32 0) + store ptr %0, ptr @env_sigill + %1 = call ptr @llvm.stacksave() + store ptr %1, ptr getelementptr (ptr, ptr @env_sigill, i32 2) + %2 = call i32 @llvm.eh.sjlj.setjmp(ptr @env_sigill) %tobool = icmp ne i32 %2, 0 br i1 %tobool, label %if.then, label %if.else if.then: ; preds = %entry - store i32 1, i32* %retval + store i32 1, ptr %retval br label %return if.else: ; preds = %entry @@ -124,11 +124,11 @@ br label %if.end if.end: ; preds = %if.else - store i32 0, i32* %retval + store i32 0, ptr %retval br label %return return: ; preds = %if.end, %if.then - %3 = load i32, i32* %retval + %3 = load i32, ptr %retval ret i32 %3 ; CHECK-LABEL: main2: @@ -147,12 +147,12 @@ define void @test_sjlj_setjmp() #0 { entry: - %0 = load i8, i8* @cond, align 1 + %0 = load i8, ptr @cond, align 1 %tobool = trunc i8 %0 to i1 br i1 %tobool, label %return, label %end end: - %1 = call i32 @llvm.eh.sjlj.setjmp(i8* bitcast ([1 x %struct.__jmp_buf_tag]* @env_sigill to i8*)) + %1 = call i32 @llvm.eh.sjlj.setjmp(ptr @env_sigill) br label %return return: @@ -163,13 +163,13 @@ ; CHECK-NOT: bl _setjmp } -declare void @bar(i8*) #3 +declare void @bar(ptr) #3 -declare i8* @llvm.frameaddress(i32) #2 +declare ptr @llvm.frameaddress(i32) #2 -declare i8* @llvm.stacksave() #3 +declare ptr @llvm.stacksave() #3 -declare i32 @llvm.eh.sjlj.setjmp(i8*) #3 +declare i32 @llvm.eh.sjlj.setjmp(ptr) #3 attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { noreturn nounwind } Index: llvm/test/CodeGen/PowerPC/sjlj_no0x.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sjlj_no0x.ll +++ llvm/test/CodeGen/PowerPC/sjlj_no0x.ll @@ -8,7 +8,7 @@ ; Function Attrs: noinline nounwind define void @_Z23BuiltinLongJmpFunc1_bufv() #0 { entry: - call void @llvm.eh.sjlj.longjmp(i8* bitcast (void ()* @_Z23BuiltinLongJmpFunc1_bufv to i8*)) + call void @llvm.eh.sjlj.longjmp(ptr @_Z23BuiltinLongJmpFunc1_bufv) unreachable ; CHECK: @_Z23BuiltinLongJmpFunc1_bufv @@ -26,4 +26,4 @@ } ; Function Attrs: noreturn nounwind -declare void @llvm.eh.sjlj.longjmp(i8*) #1 +declare void @llvm.eh.sjlj.longjmp(ptr) #1 Index: llvm/test/CodeGen/PowerPC/small-arguments.ll =================================================================== --- llvm/test/CodeGen/PowerPC/small-arguments.ll +++ llvm/test/CodeGen/PowerPC/small-arguments.ll @@ -25,23 +25,23 @@ ret void } -define i32 @test4(i16* %P) { - %tmp.1 = load i16, i16* %P +define i32 @test4(ptr %P) { + %tmp.1 = load i16, ptr %P %tmp.2 = zext i16 %tmp.1 to i32 %tmp.3 = and i32 %tmp.2, 255 ret i32 %tmp.3 } -define i32 @test5(i16* %P) { - %tmp.1 = load i16, i16* %P +define i32 @test5(ptr %P) { + %tmp.1 = load i16, ptr %P %tmp.2 = bitcast i16 %tmp.1 to i16 %tmp.3 = zext i16 %tmp.2 to i32 %tmp.4 = and i32 %tmp.3, 255 ret i32 %tmp.4 } -define i32 @test6(i32* %P) { - %tmp.1 = load i32, i32* %P +define i32 @test6(ptr %P) { + %tmp.1 = load i32, ptr %P %tmp.2 = and i32 %tmp.1, 255 ret i32 %tmp.2 } Index: llvm/test/CodeGen/PowerPC/sms-cpy-1.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sms-cpy-1.ll +++ llvm/test/CodeGen/PowerPC/sms-cpy-1.ll @@ -82,7 +82,7 @@ ; CHECK-NEXT: li 5, 0 ; CHECK-NEXT: bl printf ; CHECK-NEXT: nop - %1 = load i32, i32* undef, align 4 + %1 = load i32, ptr undef, align 4 %2 = add i32 %1, -1 %3 = zext i32 %2 to i64 %4 = zext i32 3 to i64 @@ -94,8 +94,8 @@ %8 = trunc i64 %6 to i32 %9 = sub i32 0, %8 %10 = zext i32 %9 to i64 - %11 = getelementptr inbounds i8, i8* null, i64 %10 - %12 = load i8, i8* %11, align 1 + %11 = getelementptr inbounds i8, ptr null, i64 %10 + %12 = load i8, ptr %11, align 1 %13 = icmp eq i8 %12, 84 %14 = zext i1 %13 to i32 %15 = add i32 %7, %14 @@ -107,8 +107,8 @@ 20: ; preds = %5 %21 = trunc i64 %16 to i32 - call void (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.28, i64 0, i64 0), i32 zeroext 3, i32 zeroext undef, i32 zeroext %15, i32 zeroext undef, i32 zeroext 3, i8* undef, i32 zeroext undef, i32 zeroext 3, i32 zeroext %21, i8* undef, i32 zeroext undef) #1 + call void (ptr, ...) @printf(ptr @.str.28, i32 zeroext 3, i32 zeroext undef, i32 zeroext %15, i32 zeroext undef, i32 zeroext 3, ptr undef, i32 zeroext undef, i32 zeroext 3, i32 zeroext %21, ptr undef, i32 zeroext undef) #1 unreachable } -declare void @printf(i8*, ...) local_unnamed_addr #0 +declare void @printf(ptr, ...) local_unnamed_addr #0 Index: llvm/test/CodeGen/PowerPC/sms-grp-order.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sms-grp-order.ll +++ llvm/test/CodeGen/PowerPC/sms-grp-order.ll @@ -26,8 +26,8 @@ 1: ; preds = %1, %0 %2 = phi i64 [ 0, %0 ], [ %13, %1 ] - %3 = load i16, i16* null, align 2 - %4 = load i16, i16* undef, align 2 + %3 = load i16, ptr null, align 2 + %4 = load i16, ptr undef, align 2 %5 = sext i16 %3 to i32 %6 = sext i16 %4 to i32 %7 = add nsw i32 0, %5 @@ -36,8 +36,8 @@ %10 = sdiv i32 %8, 2 %11 = trunc i32 %9 to i16 %12 = trunc i32 %10 to i16 - store i16 %11, i16* null, align 2 - store i16 %12, i16* undef, align 2 + store i16 %11, ptr null, align 2 + store i16 %12, ptr undef, align 2 %13 = add i64 %2, 4 %14 = icmp eq i64 %13, 0 br i1 %14, label %15, label %1 Index: llvm/test/CodeGen/PowerPC/sms-iterator.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sms-iterator.ll +++ llvm/test/CodeGen/PowerPC/sms-iterator.ll @@ -22,8 +22,8 @@ %6 = phi i64 [ %12, %3 ], [ undef, %2 ] %7 = add nsw i64 %4, -1 %8 = fmul fast double %5, 1.000000e+07 - %9 = getelementptr inbounds %0, %0* null, i64 1, i32 1, i64 %7 - %10 = load double, double* %9, align 8 + %9 = getelementptr inbounds %0, ptr null, i64 1, i32 1, i64 %7 + %10 = load double, ptr %9, align 8 %11 = fadd fast double %10, %8 %12 = add i64 %6, -1 %13 = icmp eq i64 %12, 0 Index: llvm/test/CodeGen/PowerPC/sms-phi-2.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sms-phi-2.ll +++ llvm/test/CodeGen/PowerPC/sms-phi-2.ll @@ -2,7 +2,7 @@ ; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -verify-machineinstrs\ ; RUN: -mcpu=pwr9 --ppc-enable-pipeliner --pipeliner-force-ii=15 2>&1 | FileCheck %s -define void @phi2(i32, i32, i8*) local_unnamed_addr { +define void @phi2(i32, i32, ptr) local_unnamed_addr { ; CHECK-LABEL: phi2: ; CHECK: # %bb.0: ; CHECK-NEXT: divw 8, 3, 4 @@ -59,8 +59,8 @@ %12 = trunc i32 %10 to i8 %13 = select i1 %11, i8 48, i8 55 %14 = add i8 %13, %12 - %15 = getelementptr inbounds i8, i8* %2, i64 %7 - store i8 %14, i8* %15, align 1 + %15 = getelementptr inbounds i8, ptr %2, i64 %7 + store i8 %14, ptr %15, align 1 %16 = icmp sgt i64 %5, 1 br i1 %16, label %4, label %17 Index: llvm/test/CodeGen/PowerPC/sms-phi-5.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sms-phi-5.ll +++ llvm/test/CodeGen/PowerPC/sms-phi-5.ll @@ -28,7 +28,7 @@ ] 1: ; preds = %0, %0, %0, %0 - %2 = load i16, i16* undef, align 2 + %2 = load i16, ptr undef, align 2 br label %3 3: ; preds = %3, %1 Index: llvm/test/CodeGen/PowerPC/sms-phi.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sms-phi.ll +++ llvm/test/CodeGen/PowerPC/sms-phi.ll @@ -15,8 +15,8 @@ %2 = phi i64 [ 0, %0 ], [ %12, %1 ] %3 = phi i64 [ undef, %0 ], [ %11, %1 ] %4 = phi i64 [ undef, %0 ], [ %3, %1 ] - %5 = getelementptr inbounds [80 x i64], [80 x i64]* null, i64 0, i64 %2 - %6 = load i64, i64* %5, align 8 + %5 = getelementptr inbounds [80 x i64], ptr null, i64 0, i64 %2 + %6 = load i64, ptr %5, align 8 %7 = add i64 0, %6 %8 = and i64 %3, %4 %9 = or i64 0, %8 @@ -28,7 +28,7 @@ 14: ; preds = %1 %15 = add i64 %4, 0 - store i64 %15, i64* undef, align 8 + store i64 %15, ptr undef, align 8 ret void } Index: llvm/test/CodeGen/PowerPC/sms-remark.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sms-remark.ll +++ llvm/test/CodeGen/PowerPC/sms-remark.ll @@ -10,40 +10,40 @@ @x = dso_local local_unnamed_addr global <{ i32, i32, i32, i32, [1020 x i32] }> <{ i32 1, i32 2, i32 3, i32 4, [1020 x i32] zeroinitializer }>, align 4 @y = dso_local global [1024 x i32] zeroinitializer, align 4 -define dso_local i32* @foo() local_unnamed_addr { +define dso_local ptr @foo() local_unnamed_addr { ;ENABLED: Schedule found with Initiation Interval ;ENABLED: Pipelined succesfully! ;DISABLED-NOT: remark entry: - %.pre = load i32, i32* getelementptr inbounds ([1024 x i32], [1024 x i32]* @y, i64 0, i64 0), align 4 + %.pre = load i32, ptr @y, align 4 br label %for.body for.cond.cleanup: ; preds = %for.body - ret i32* getelementptr inbounds ([1024 x i32], [1024 x i32]* @y, i64 0, i64 0) + ret ptr @y for.body: ; preds = %for.body, %entry %0 = phi i32 [ %.pre, %entry ], [ %add.2, %for.body ] %indvars.iv = phi i64 [ 1, %entry ], [ %indvars.iv.next.2, %for.body ] - %arrayidx2 = getelementptr inbounds [1024 x i32], [1024 x i32]* bitcast (<{ i32, i32, i32, i32, [1020 x i32] }>* @x to [1024 x i32]*), i64 0, i64 %indvars.iv - %1 = load i32, i32* %arrayidx2, align 4 + %arrayidx2 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv + %1 = load i32, ptr %arrayidx2, align 4 %mul = mul nsw i32 %1, %1 %add = add nsw i32 %mul, %0 - %arrayidx6 = getelementptr inbounds [1024 x i32], [1024 x i32]* @y, i64 0, i64 %indvars.iv - store i32 %add, i32* %arrayidx6, align 4 + %arrayidx6 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv + store i32 %add, ptr %arrayidx6, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %arrayidx2.1 = getelementptr inbounds [1024 x i32], [1024 x i32]* bitcast (<{ i32, i32, i32, i32, [1020 x i32] }>* @x to [1024 x i32]*), i64 0, i64 %indvars.iv.next - %2 = load i32, i32* %arrayidx2.1, align 4 + %arrayidx2.1 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv.next + %2 = load i32, ptr %arrayidx2.1, align 4 %mul.1 = mul nsw i32 %2, %2 %add.1 = add nsw i32 %mul.1, %add - %arrayidx6.1 = getelementptr inbounds [1024 x i32], [1024 x i32]* @y, i64 0, i64 %indvars.iv.next - store i32 %add.1, i32* %arrayidx6.1, align 4 + %arrayidx6.1 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv.next + store i32 %add.1, ptr %arrayidx6.1, align 4 %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2 - %arrayidx2.2 = getelementptr inbounds [1024 x i32], [1024 x i32]* bitcast (<{ i32, i32, i32, i32, [1020 x i32] }>* @x to [1024 x i32]*), i64 0, i64 %indvars.iv.next.1 - %3 = load i32, i32* %arrayidx2.2, align 4 + %arrayidx2.2 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv.next.1 + %3 = load i32, ptr %arrayidx2.2, align 4 %mul.2 = mul nsw i32 %3, %3 %add.2 = add nsw i32 %mul.2, %add.1 - %arrayidx6.2 = getelementptr inbounds [1024 x i32], [1024 x i32]* @y, i64 0, i64 %indvars.iv.next.1 - store i32 %add.2, i32* %arrayidx6.2, align 4 + %arrayidx6.2 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv.next.1 + store i32 %add.2, ptr %arrayidx6.2, align 4 %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3 %exitcond.2 = icmp eq i64 %indvars.iv.next.2, 1024 br i1 %exitcond.2, label %for.cond.cleanup, label %for.body Index: llvm/test/CodeGen/PowerPC/sms-simple.ll =================================================================== --- llvm/test/CodeGen/PowerPC/sms-simple.ll +++ llvm/test/CodeGen/PowerPC/sms-simple.ll @@ -6,7 +6,7 @@ @x = dso_local local_unnamed_addr global <{ i32, i32, i32, i32, [1020 x i32] }> <{ i32 1, i32 2, i32 3, i32 4, [1020 x i32] zeroinitializer }>, align 4 @y = dso_local global [1024 x i32] zeroinitializer, align 4 -define dso_local i32* @foo() local_unnamed_addr { +define dso_local ptr @foo() local_unnamed_addr { ; CHECK-LABEL: foo: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: addis r5, r2, y@toc@ha @@ -43,35 +43,35 @@ ; CHECK-NEXT: stw r5, 8(r4) ; CHECK-NEXT: blr entry: - %.pre = load i32, i32* getelementptr inbounds ([1024 x i32], [1024 x i32]* @y, i64 0, i64 0), align 4 + %.pre = load i32, ptr @y, align 4 br label %for.body for.cond.cleanup: ; preds = %for.body - ret i32* getelementptr inbounds ([1024 x i32], [1024 x i32]* @y, i64 0, i64 0) + ret ptr @y for.body: ; preds = %for.body, %entry %0 = phi i32 [ %.pre, %entry ], [ %add.2, %for.body ] %indvars.iv = phi i64 [ 1, %entry ], [ %indvars.iv.next.2, %for.body ] - %arrayidx2 = getelementptr inbounds [1024 x i32], [1024 x i32]* bitcast (<{ i32, i32, i32, i32, [1020 x i32] }>* @x to [1024 x i32]*), i64 0, i64 %indvars.iv - %1 = load i32, i32* %arrayidx2, align 4 + %arrayidx2 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv + %1 = load i32, ptr %arrayidx2, align 4 %mul = mul nsw i32 %1, %1 %add = add nsw i32 %mul, %0 - %arrayidx6 = getelementptr inbounds [1024 x i32], [1024 x i32]* @y, i64 0, i64 %indvars.iv - store i32 %add, i32* %arrayidx6, align 4 + %arrayidx6 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv + store i32 %add, ptr %arrayidx6, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %arrayidx2.1 = getelementptr inbounds [1024 x i32], [1024 x i32]* bitcast (<{ i32, i32, i32, i32, [1020 x i32] }>* @x to [1024 x i32]*), i64 0, i64 %indvars.iv.next - %2 = load i32, i32* %arrayidx2.1, align 4 + %arrayidx2.1 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv.next + %2 = load i32, ptr %arrayidx2.1, align 4 %mul.1 = mul nsw i32 %2, %2 %add.1 = add nsw i32 %mul.1, %add - %arrayidx6.1 = getelementptr inbounds [1024 x i32], [1024 x i32]* @y, i64 0, i64 %indvars.iv.next - store i32 %add.1, i32* %arrayidx6.1, align 4 + %arrayidx6.1 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv.next + store i32 %add.1, ptr %arrayidx6.1, align 4 %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2 - %arrayidx2.2 = getelementptr inbounds [1024 x i32], [1024 x i32]* bitcast (<{ i32, i32, i32, i32, [1020 x i32] }>* @x to [1024 x i32]*), i64 0, i64 %indvars.iv.next.1 - %3 = load i32, i32* %arrayidx2.2, align 4 + %arrayidx2.2 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv.next.1 + %3 = load i32, ptr %arrayidx2.2, align 4 %mul.2 = mul nsw i32 %3, %3 %add.2 = add nsw i32 %mul.2, %add.1 - %arrayidx6.2 = getelementptr inbounds [1024 x i32], [1024 x i32]* @y, i64 0, i64 %indvars.iv.next.1 - store i32 %add.2, i32* %arrayidx6.2, align 4 + %arrayidx6.2 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv.next.1 + store i32 %add.2, ptr %arrayidx6.2, align 4 %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3 %exitcond.2 = icmp eq i64 %indvars.iv.next.2, 1024 br i1 %exitcond.2, label %for.cond.cleanup, label %for.body Index: llvm/test/CodeGen/PowerPC/spe-fastmath.ll =================================================================== --- llvm/test/CodeGen/PowerPC/spe-fastmath.ll +++ llvm/test/CodeGen/PowerPC/spe-fastmath.ll @@ -24,7 +24,7 @@ %tobool = fcmp une double %mul, 0.000000e+00 %cond = select i1 %tobool, double %conv, double 0.000000e+00 %conv3 = fptosi double %cond to i16 - store i16 %conv3, i16* undef + store i16 %conv3, ptr undef ret void } Index: llvm/test/CodeGen/PowerPC/spe-hwdouble.ll =================================================================== --- llvm/test/CodeGen/PowerPC/spe-hwdouble.ll +++ llvm/test/CodeGen/PowerPC/spe-hwdouble.ll @@ -15,8 +15,8 @@ ; CHECK-NEXT: blr entry: %x.addr = alloca double, align 8 - store double %x, double* %x.addr, align 8 - %0 = load double, double* %x.addr, align 8 + store double %x, ptr %x.addr, align 8 + %0 = load double, ptr %x.addr, align 8 %1 = call i32 asm sideeffect "efdctsi $0, $1", "=d,d"(double %0) ret i32 %1 } Index: llvm/test/CodeGen/PowerPC/spe.ll =================================================================== --- llvm/test/CodeGen/PowerPC/spe.ll +++ llvm/test/CodeGen/PowerPC/spe.ll @@ -100,13 +100,13 @@ %c = fcmp ogt float %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -137,13 +137,13 @@ %c = fcmp ugt float %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -174,13 +174,13 @@ %c = fcmp ole float %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -205,13 +205,13 @@ %c = fcmp ule float %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -237,13 +237,13 @@ %c = fcmp oeq float %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -345,13 +345,13 @@ %c = fcmp une float %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -376,13 +376,13 @@ %c = fcmp olt float %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -434,13 +434,13 @@ %c = fcmp oge float %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -465,13 +465,13 @@ %c = fcmp uge float %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -526,8 +526,8 @@ ; CHECK-NEXT: blr entry: %x.addr = alloca float, align 8 - store float %x, float* %x.addr, align 8 - %0 = load float, float* %x.addr, align 8 + store float %x, ptr %x.addr, align 8 + %0 = load float, ptr %x.addr, align 8 %1 = call i32 asm sideeffect "efsctsi $0, $1", "=f,f"(float %0) ret i32 %1 ; Check that it's not loading a double @@ -559,7 +559,7 @@ ret float %v } -define void @test_double_abs(double * %aa) #0 { +define void @test_double_abs(ptr %aa) #0 { ; SPE-LABEL: test_double_abs: ; SPE: # %bb.0: # %entry ; SPE-NEXT: evldd 4, 0(3) @@ -574,16 +574,16 @@ ; EFPU2-NEXT: stw 4, 0(3) ; EFPU2-NEXT: blr entry: - %0 = load double, double * %aa + %0 = load double, ptr %aa %1 = tail call double @llvm.fabs.f64(double %0) #2 - store double %1, double * %aa + store double %1, ptr %aa ret void } ; Function Attrs: nounwind readnone declare double @llvm.fabs.f64(double) #1 -define void @test_dnabs(double * %aa) #0 { +define void @test_dnabs(ptr %aa) #0 { ; SPE-LABEL: test_dnabs: ; SPE: # %bb.0: # %entry ; SPE-NEXT: evldd 4, 0(3) @@ -598,10 +598,10 @@ ; EFPU2-NEXT: stw 4, 0(3) ; EFPU2-NEXT: blr entry: - %0 = load double, double * %aa + %0 = load double, ptr %aa %1 = tail call double @llvm.fabs.f64(double %0) #2 %sub = fsub double -0.000000e+00, %1 - store double %sub, double * %aa + store double %sub, ptr %aa ret void } @@ -867,13 +867,13 @@ %c = fcmp ogt double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -927,13 +927,13 @@ %c = fcmp ugt double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -981,13 +981,13 @@ %c = fcmp ule double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -1035,13 +1035,13 @@ %c = fcmp ule double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -1090,13 +1090,13 @@ %c = fcmp oeq double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -1171,13 +1171,13 @@ %c = fcmp ueq double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -1289,13 +1289,13 @@ %c = fcmp une double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -1343,13 +1343,13 @@ %c = fcmp olt double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -1403,13 +1403,13 @@ %c = fcmp ult double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -1493,13 +1493,13 @@ %c = fcmp uge double %a, %b br i1 %c, label %tr, label %fa tr: - store i32 1, i32* %r, align 4 + store i32 1, ptr %r, align 4 br label %ret fa: - store i32 0, i32* %r, align 4 + store i32 0, ptr %r, align 4 br label %ret ret: - %0 = load i32, i32* %r, align 4 + %0 = load i32, ptr %r, align 4 ret i32 %0 } @@ -1632,9 +1632,9 @@ ret void } -declare void @test_memset(i8* nocapture writeonly, i8, i32, i1) +declare void @test_memset(ptr nocapture writeonly, i8, i32, i1) @global_var1 = global i32 0, align 4 -define double @test_spill(double %a, i32 %a1, i64 %a2, i8 * %a3, i32 *%a4, i32* %a5) #0 { +define double @test_spill(double %a, i32 %a1, i64 %a2, ptr %a3, ptr %a4, ptr %a5) #0 { ; SPE-LABEL: test_spill: ; SPE: # %bb.0: # %entry ; SPE-NEXT: mflr 0 @@ -1763,12 +1763,10 @@ %0 = fadd double %a, %a call void asm sideeffect "","~{s0},~{s3},~{s4},~{s5},~{s6},~{s7},~{s8},~{s9},~{s10},~{s11},~{s12},~{s13},~{s14},~{s15},~{s16},~{s17},~{s18},~{s19},~{s20},~{s21},~{s22},~{s23},~{s24},~{s25},~{s26},~{s27},~{s28},~{s29},~{s30},~{s31}"() nounwind %1 = fadd double %0, 3.14159 - %2 = bitcast [13 x i32]* %v1 to i8* - call void @test_memset(i8* align 4 %2, i8 0, i32 24, i1 true) - store i32 0, i32* %a5, align 4 + call void @test_memset(ptr align 4 %v1, i8 0, i32 24, i1 true) + store i32 0, ptr %a5, align 4 call void @test_func2() - %3 = bitcast [11 x i32]* %v2 to i8* - call void @test_memset(i8* align 4 %3, i8 0, i32 20, i1 true) + call void @test_memset(ptr align 4 %v2, i8 0, i32 20, i1 true) br label %return return: @@ -1837,7 +1835,7 @@ declare i32 @foo(double) -define void @d(%struct.a* %e, %struct.a* %f) #0 { +define void @d(ptr %e, ptr %f) #0 { ; SPE-LABEL: d: ; SPE: # %bb.0: # %entry ; SPE-NEXT: mflr 0 @@ -1914,17 +1912,16 @@ ; EFPU2-NEXT: mtlr 0 ; EFPU2-NEXT: blr entry: - %0 = getelementptr %struct.a, %struct.a* %f, i32 0, i32 0 - %1 = load float, float* undef - %conv = fpext float %1 to double - %2 = load float, float* %0 - %g = fpext float %2 to double - %3 = call i32 @foo(double %g) + %0 = load float, ptr undef + %conv = fpext float %0 to double + %1 = load float, ptr %f + %g = fpext float %1 to double + %2 = call i32 @foo(double %g) %h = call i32 @foo(double %conv) - %n = sitofp i32 %3 to double + %n = sitofp i32 %2 to double %k = fmul double %g, %n %l = fptrunc double %k to float - store float %l, float* undef + store float %l, ptr undef ret void } attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/spill-nor0.ll =================================================================== --- llvm/test/CodeGen/PowerPC/spill-nor0.ll +++ llvm/test/CodeGen/PowerPC/spill-nor0.ll @@ -11,7 +11,7 @@ ret void if.end: ; preds = %entry - %0 = call i64 asm sideeffect "mr 3,$1\0A\09mr 4,$2\0A\09rotldi 0,0,3 ; rotldi 0,0,13\0A\09rotldi 0,0,61 ; rotldi 0,0,51\0A\09or 1,1,1\0A\09mr $0,3", "=b,b,b,~{cc},~{memory},~{r3},~{r4}"(i32 0, i64* undef) #0 + %0 = call i64 asm sideeffect "mr 3,$1\0A\09mr 4,$2\0A\09rotldi 0,0,3 ; rotldi 0,0,13\0A\09rotldi 0,0,61 ; rotldi 0,0,51\0A\09or 1,1,1\0A\09mr $0,3", "=b,b,b,~{cc},~{memory},~{r3},~{r4}"(i32 0, ptr undef) #0 br i1 undef, label %end0, label %end1 ; need successor blocks to force spill end0: Index: llvm/test/CodeGen/PowerPC/spill-vec-pair.ll =================================================================== --- llvm/test/CodeGen/PowerPC/spill-vec-pair.ll +++ llvm/test/CodeGen/PowerPC/spill-vec-pair.ll @@ -6,7 +6,7 @@ ; RUN: -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ ; RUN: -disable-auto-paired-vec-st=false < %s | FileCheck %s \ ; RUN: --check-prefix=CHECK-BE -define dso_local void @test(<256 x i1>* %vpp, <256 x i1>* %vp2) local_unnamed_addr #0 { +define dso_local void @test(ptr %vpp, ptr %vp2) local_unnamed_addr #0 { ; CHECK-LABEL: test: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stdu r1, -400(r1) @@ -153,16 +153,14 @@ ; CHECK-BE-NEXT: addi r1, r1, 416 ; CHECK-BE-NEXT: blr entry: - %0 = bitcast <256 x i1>* %vpp to i8* - %1 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(i8* %0) + %0 = tail call <256 x i1> @llvm.ppc.vsx.lxvp(ptr %vpp) tail call void asm sideeffect "nop", "~{memory},~{vs0},~{vs1},~{vs2},~{vs3},~{vs4},~{vs5},~{vs6},~{vs7},~{vs8},~{vs9},~{vs10},~{vs11},~{vs12},~{vs13},~{vs14},~{vs15},~{vs16},~{vs17},~{vs18},~{vs19},~{vs20},~{vs21},~{vs22},~{vs23},~{vs24},~{vs25},~{vs26},~{vs27},~{vs28},~{vs29},~{vs30},~{vs31},~{vs32},~{vs33},~{vs34},~{vs35},~{vs36},~{vs37},~{vs38},~{vs39},~{vs40},~{vs41},~{vs42},~{vs43},~{vs44},~{vs45},~{vs46},~{vs47},~{vs48},~{vs49},~{vs50},~{vs51},~{vs52},~{vs53},~{vs54},~{vs55},~{vs56},~{vs57},~{vs58},~{vs59},~{vs60},~{vs61},~{vs62},~{vs63}"() - %2 = bitcast <256 x i1>* %vp2 to i8* - tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %1, i8* %2) + tail call void @llvm.ppc.vsx.stxvp(<256 x i1> %0, ptr %vp2) ret void } -declare <256 x i1> @llvm.ppc.vsx.lxvp(i8*) #1 +declare <256 x i1> @llvm.ppc.vsx.lxvp(ptr) #1 -declare void @llvm.ppc.vsx.stxvp(<256 x i1>, i8*) #2 +declare void @llvm.ppc.vsx.stxvp(<256 x i1>, ptr) #2 attributes #0 = { nounwind } Index: llvm/test/CodeGen/PowerPC/spill_p9_setb.ll =================================================================== --- llvm/test/CodeGen/PowerPC/spill_p9_setb.ll +++ llvm/test/CodeGen/PowerPC/spill_p9_setb.ll @@ -35,7 +35,7 @@ br i1 undef, label %if.end, label %if.then if.then: ; preds = %entry - %call = tail call signext i32 bitcast (i32 (...)* @fn_call to i32 ()*)() + %call = tail call signext i32 @fn_call() %cmp1 = icmp ne i32 %call, 0 br label %if.end Index: llvm/test/CodeGen/PowerPC/splat-bug.ll =================================================================== --- llvm/test/CodeGen/PowerPC/splat-bug.ll +++ llvm/test/CodeGen/PowerPC/splat-bug.ll @@ -10,7 +10,7 @@ define void @foo() nounwind ssp { ; CHECK: foo: - store <16 x i8> , <16 x i8>* @a + store <16 x i8> , ptr @a ; CHECK: vspltish [[REG:[0-9]+]], 8 ; CHECK: vadduhm {{[0-9]+}}, [[REG]], [[REG]] ret void Index: llvm/test/CodeGen/PowerPC/split-index-tc.ll =================================================================== --- llvm/test/CodeGen/PowerPC/split-index-tc.ll +++ llvm/test/CodeGen/PowerPC/split-index-tc.ll @@ -2,7 +2,7 @@ target datalayout = "E-m:e-i64:64-n32:64" target triple = "powerpc64-unknown-linux-gnu" -%"class.llvm::MachineOperand" = type { i8, [3 x i8], i64, i64*, i64 } +%"class.llvm::MachineOperand" = type { i8, [3 x i8], i64, ptr, i64 } ; Function Attrs: nounwind define void @_ZN4llvm17ScheduleDAGInstrs14addPhysRegDepsEPNS_5SUnitEj() #0 align 2 { @@ -13,21 +13,20 @@ ; CHECK-NOT: lhzu entry: - %0 = load %"class.llvm::MachineOperand"*, %"class.llvm::MachineOperand"** undef, align 8 + %0 = load ptr, ptr undef, align 8 br i1 undef, label %_ZNK4llvm14MachineOperand6getRegEv.exit, label %cond.false.i123 cond.false.i123: ; preds = %_ZN4llvm12MachineInstr10getOperandEj.exit unreachable _ZNK4llvm14MachineOperand6getRegEv.exit: ; preds = %_ZN4llvm12MachineInstr10getOperandEj.exit - %IsDef.i = getelementptr inbounds %"class.llvm::MachineOperand", %"class.llvm::MachineOperand"* %0, i64 undef, i32 1 - %1 = bitcast [3 x i8]* %IsDef.i to i24* - %bf.load.i = load i24, i24* %1, align 1 - %2 = and i24 %bf.load.i, 128 + %IsDef.i = getelementptr inbounds %"class.llvm::MachineOperand", ptr %0, i64 undef, i32 1 + %bf.load.i = load i24, ptr %IsDef.i, align 1 + %1 = and i24 %bf.load.i, 128 br i1 undef, label %for.cond.cleanup, label %for.body.lr.ph for.body.lr.ph: ; preds = %_ZNK4llvm14MachineOperand6getRegEv.exit - %3 = zext i24 %2 to i32 + %2 = zext i24 %1 to i32 br i1 undef, label %cond.false.i134, label %_ZNK4llvm18MCRegAliasIteratordeEv.exit for.cond.cleanup: ; preds = %_ZNK4llvm14MachineOperand6getRegEv.exit @@ -61,7 +60,7 @@ unreachable _ZNK4llvm14MachineOperand6isDeadEv.exit262: ; preds = %if.end55 - %bf.load.i259 = load i24, i24* %1, align 1 + %bf.load.i259 = load i24, ptr %IsDef.i, align 1 br i1 undef, label %if.then57, label %if.else59 if.then57: ; preds = %_ZNK4llvm14MachineOperand6isDeadEv.exit262 Index: llvm/test/CodeGen/PowerPC/splitstore-check-volatile.ll =================================================================== --- llvm/test/CodeGen/PowerPC/splitstore-check-volatile.ll +++ llvm/test/CodeGen/PowerPC/splitstore-check-volatile.ll @@ -2,9 +2,9 @@ ; ; RUN: opt -S -mtriple=powerpc64le -codegenprepare -force-split-store < %s | FileCheck %s -define void @fun(i16* %Src, i16* %Dst) { -; CHECK: store volatile i16 %8, i16* %Dst - %1 = load i16, i16* %Src +define void @fun(ptr %Src, ptr %Dst) { +; CHECK: store volatile i16 %8, ptr %Dst + %1 = load i16, ptr %Src %2 = trunc i16 %1 to i8 %3 = lshr i16 %1, 8 %4 = trunc i16 %3 to i8 @@ -12,6 +12,6 @@ %6 = zext i8 %4 to i16 %7 = shl nuw i16 %6, 8 %8 = or i16 %7, %5 - store volatile i16 %8, i16* %Dst + store volatile i16 %8, ptr %Dst ret void } Index: llvm/test/CodeGen/PowerPC/stack-clash-dynamic-alloca.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stack-clash-dynamic-alloca.ll +++ llvm/test/CodeGen/PowerPC/stack-clash-dynamic-alloca.ll @@ -142,9 +142,9 @@ ; CHECK-32-NEXT: mr r31, r0 ; CHECK-32-NEXT: blr %a = alloca i32, i32 %n, align 16 - %b = getelementptr inbounds i32, i32* %a, i64 1198 - store volatile i32 1, i32* %b - %c = load volatile i32, i32* %a + %b = getelementptr inbounds i32, ptr %a, i64 1198 + store volatile i32 1, ptr %b + %c = load volatile i32, ptr %a ret i32 %c } @@ -288,9 +288,9 @@ ; CHECK-32-NEXT: blr %a = alloca i32, i32 %n, align 16 %i = add i32 %n, 1024 - %b = getelementptr inbounds i32, i32* %a, i32 %i - store volatile i32 1, i32* %b - %c = load volatile i32, i32* %a + %b = getelementptr inbounds i32, ptr %a, i32 %i + store volatile i32 1, ptr %b + %c = load volatile i32, ptr %a ret i32 %c } @@ -428,9 +428,9 @@ ; CHECK-32-NEXT: mr r31, r0 ; CHECK-32-NEXT: blr %a = alloca i32, i32 %n, align 16 - %b = getelementptr inbounds i32, i32* %a, i64 1198 - store volatile i32 1, i32* %b - %c = load volatile i32, i32* %a + %b = getelementptr inbounds i32, ptr %a, i64 1198 + store volatile i32 1, ptr %b + %c = load volatile i32, ptr %a ret i32 %c } Index: llvm/test/CodeGen/PowerPC/stack-clash-prologue-nounwind.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stack-clash-prologue-nounwind.ll +++ llvm/test/CodeGen/PowerPC/stack-clash-prologue-nounwind.ll @@ -35,9 +35,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 64 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -93,9 +93,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 4096 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -157,9 +157,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 65536 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -206,9 +206,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 65536 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -252,9 +252,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 65536 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -322,9 +322,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 1048576 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -389,9 +389,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 1073741824 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -465,9 +465,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 1000000007 - %b = getelementptr inbounds i8, i8* %a, i64 101 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 101 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } Index: llvm/test/CodeGen/PowerPC/stack-clash-prologue.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stack-clash-prologue.ll +++ llvm/test/CodeGen/PowerPC/stack-clash-prologue.ll @@ -35,9 +35,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 64 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -102,9 +102,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 4096 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -175,9 +175,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 65536 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -233,9 +233,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 65536 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -282,9 +282,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 65536 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -361,9 +361,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 1048576 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -437,9 +437,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 1073741824 - %b = getelementptr inbounds i8, i8* %a, i64 63 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 63 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -522,9 +522,9 @@ ; CHECK-32-NEXT: blr entry: %a = alloca i8, i64 1000000007 - %b = getelementptr inbounds i8, i8* %a, i64 101 - store volatile i8 3, i8* %a - %c = load volatile i8, i8* %a + %b = getelementptr inbounds i8, ptr %a, i64 101 + store volatile i8 3, ptr %a + %c = load volatile i8, ptr %a ret i8 %c } @@ -589,9 +589,9 @@ ; CHECK-32-NEXT: mr r31, r0 ; CHECK-32-NEXT: blr %a = alloca i32, i32 200, align 64 - %b = getelementptr inbounds i32, i32* %a, i64 %i - store volatile i32 1, i32* %b - %c = load volatile i32, i32* %a + %b = getelementptr inbounds i32, ptr %a, i64 %i + store volatile i32 1, ptr %b + %c = load volatile i32, ptr %a ret i32 %c } @@ -696,9 +696,9 @@ ; CHECK-32-NEXT: mr r31, r0 ; CHECK-32-NEXT: blr %a = alloca i32, i32 2000, align 2048 - %b = getelementptr inbounds i32, i32* %a, i64 %i - store volatile i32 1, i32* %b - %c = load volatile i32, i32* %a + %b = getelementptr inbounds i32, ptr %a, i64 %i + store volatile i32 1, ptr %b + %c = load volatile i32, ptr %a ret i32 %c } @@ -803,9 +803,9 @@ ; CHECK-32-NEXT: mr r31, r0 ; CHECK-32-NEXT: blr %a = alloca i32, i32 1000, align 1024 - %b = getelementptr inbounds i32, i32* %a, i64 %i - store volatile i32 1, i32* %b - %c = load volatile i32, i32* %a + %b = getelementptr inbounds i32, ptr %a, i64 %i + store volatile i32 1, ptr %b + %c = load volatile i32, ptr %a ret i32 %c } @@ -997,11 +997,11 @@ ; CHECK-32-NEXT: mr r31, r0 ; CHECK-32-NEXT: blr %a = alloca i32, i32 4096, align 32768 - %b = getelementptr inbounds i32, i32* %a, i64 %i - store volatile i32 1, i32* %b + %b = getelementptr inbounds i32, ptr %a, i64 %i + store volatile i32 1, ptr %b %1 = zext i32 %vla_size to i64 %vla = alloca i8, i64 %1, align 2048 - %2 = load volatile i8, i8* %vla, align 2048 + %2 = load volatile i8, ptr %vla, align 2048 ret void } Index: llvm/test/CodeGen/PowerPC/stack-guard-oob.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stack-guard-oob.ll +++ llvm/test/CodeGen/PowerPC/stack-guard-oob.ll @@ -7,9 +7,8 @@ ; AIX-NOT: __ssp_canary_word define i32 @in_bounds() #0 { %var = alloca i32, align 4 - store i32 0, i32* %var, align 4 - %gep = getelementptr inbounds i32, i32* %var, i32 0 - %ret = load i32, i32* %gep, align 4 + store i32 0, ptr %var, align 4 + %ret = load i32, ptr %var, align 4 ret i32 %ret } @@ -18,9 +17,9 @@ ; AIX: __ssp_canary_word define i32 @constant_out_of_bounds() #0 { %var = alloca i32, align 4 - store i32 0, i32* %var, align 4 - %gep = getelementptr inbounds i32, i32* %var, i32 1 - %ret = load i32, i32* %gep, align 4 + store i32 0, ptr %var, align 4 + %gep = getelementptr inbounds i32, ptr %var, i32 1 + %ret = load i32, ptr %gep, align 4 ret i32 %ret } @@ -29,9 +28,9 @@ ; AIX: __ssp_canary_word define i32 @nonconstant_out_of_bounds(i32 %n) #0 { %var = alloca i32, align 4 - store i32 0, i32* %var, align 4 - %gep = getelementptr inbounds i32, i32* %var, i32 %n - %ret = load i32, i32* %gep, align 4 + store i32 0, ptr %var, align 4 + %gep = getelementptr inbounds i32, ptr %var, i32 %n + %ret = load i32, ptr %gep, align 4 ret i32 %ret } @@ -42,8 +41,8 @@ entry: %var1 = alloca i32, align 4 %var2 = alloca i32, align 4 - store i32 0, i32* %var1, align 4 - store i32 0, i32* %var2, align 4 + store i32 0, ptr %var1, align 4 + store i32 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %then @@ -51,9 +50,8 @@ br label %then then: - %ptr = phi i32* [ %var1, %entry ], [ %var2, %if ] - %gep = getelementptr inbounds i32, i32* %ptr, i32 0 - %ret = load i32, i32* %gep, align 4 + %ptr = phi ptr [ %var1, %entry ], [ %var2, %if ] + %ret = load i32, ptr %ptr, align 4 ret i32 %ret } @@ -64,8 +62,8 @@ entry: %var1 = alloca i32, align 4 %var2 = alloca i32, align 4 - store i32 0, i32* %var1, align 4 - store i32 0, i32* %var2, align 4 + store i32 0, ptr %var1, align 4 + store i32 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %then @@ -73,9 +71,9 @@ br label %then then: - %ptr = phi i32* [ %var1, %entry ], [ %var2, %if ] - %gep = getelementptr inbounds i32, i32* %ptr, i32 1 - %ret = load i32, i32* %gep, align 4 + %ptr = phi ptr [ %var1, %entry ], [ %var2, %if ] + %gep = getelementptr inbounds i32, ptr %ptr, i32 1 + %ret = load i32, ptr %gep, align 4 ret i32 %ret } @@ -86,8 +84,8 @@ entry: %var1 = alloca i32, align 4 %var2 = alloca i32, align 4 - store i32 0, i32* %var1, align 4 - store i32 0, i32* %var2, align 4 + store i32 0, ptr %var1, align 4 + store i32 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %then @@ -95,9 +93,9 @@ br label %then then: - %ptr = phi i32* [ %var1, %entry ], [ %var2, %if ] - %gep = getelementptr inbounds i32, i32* %ptr, i32 %n - %ret = load i32, i32* %gep, align 4 + %ptr = phi ptr [ %var1, %entry ], [ %var2, %if ] + %gep = getelementptr inbounds i32, ptr %ptr, i32 %n + %ret = load i32, ptr %gep, align 4 ret i32 %ret } @@ -108,22 +106,20 @@ entry: %var1 = alloca i32, align 4 %var2 = alloca i32, align 4 - store i32 0, i32* %var1, align 4 - store i32 0, i32* %var2, align 4 + store i32 0, ptr %var1, align 4 + store i32 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %else if: - %gep1 = getelementptr inbounds i32, i32* %var1, i32 0 br label %then else: - %gep2 = getelementptr inbounds i32, i32* %var2, i32 0 br label %then then: - %ptr = phi i32* [ %gep1, %if ], [ %gep2, %else ] - %ret = load i32, i32* %ptr, align 4 + %ptr = phi ptr [ %var1, %if ], [ %var2, %else ] + %ret = load i32, ptr %ptr, align 4 ret i32 %ret } @@ -134,22 +130,21 @@ entry: %var1 = alloca i32, align 4 %var2 = alloca i32, align 4 - store i32 0, i32* %var1, align 4 - store i32 0, i32* %var2, align 4 + store i32 0, ptr %var1, align 4 + store i32 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %else if: - %gep1 = getelementptr inbounds i32, i32* %var1, i32 0 br label %then else: - %gep2 = getelementptr inbounds i32, i32* %var2, i32 1 + %gep2 = getelementptr inbounds i32, ptr %var2, i32 1 br label %then then: - %ptr = phi i32* [ %gep1, %if ], [ %gep2, %else ] - %ret = load i32, i32* %ptr, align 4 + %ptr = phi ptr [ %var1, %if ], [ %gep2, %else ] + %ret = load i32, ptr %ptr, align 4 ret i32 %ret } @@ -160,22 +155,21 @@ entry: %var1 = alloca i32, align 4 %var2 = alloca i32, align 4 - store i32 0, i32* %var1, align 4 - store i32 0, i32* %var2, align 4 + store i32 0, ptr %var1, align 4 + store i32 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %else if: - %gep1 = getelementptr inbounds i32, i32* %var1, i32 1 + %gep1 = getelementptr inbounds i32, ptr %var1, i32 1 br label %then else: - %gep2 = getelementptr inbounds i32, i32* %var2, i32 0 br label %then then: - %ptr = phi i32* [ %gep1, %if ], [ %gep2, %else ] - %ret = load i32, i32* %ptr, align 4 + %ptr = phi ptr [ %gep1, %if ], [ %var2, %else ] + %ret = load i32, ptr %ptr, align 4 ret i32 %ret } @@ -186,18 +180,17 @@ entry: %var1 = alloca i64, align 4 %var2 = alloca i32, align 4 - store i64 0, i64* %var1, align 4 - store i32 0, i32* %var2, align 4 + store i64 0, ptr %var1, align 4 + store i32 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %then if: - %bitcast = bitcast i32* %var2 to i64* br label %then then: - %ptr = phi i64* [ %var1, %entry ], [ %bitcast, %if ] - %ret = load i64, i64* %ptr, align 4 + %ptr = phi ptr [ %var1, %entry ], [ %var2, %if ] + %ret = load i64, ptr %ptr, align 4 ret i64 %ret } @@ -208,18 +201,17 @@ entry: %var1 = alloca i32, align 4 %var2 = alloca i64, align 4 - store i32 0, i32* %var1, align 4 - store i64 0, i64* %var2, align 4 + store i32 0, ptr %var1, align 4 + store i64 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %then if: - %bitcast = bitcast i32* %var1 to i64* br label %then then: - %ptr = phi i64* [ %var2, %entry ], [ %bitcast, %if ] - %ret = load i64, i64* %ptr, align 4 + %ptr = phi ptr [ %var2, %entry ], [ %var1, %if ] + %ret = load i64, ptr %ptr, align 4 ret i64 %ret } @@ -230,22 +222,21 @@ entry: %var1 = alloca i32, align 4 %var2 = alloca i32, align 4 - store i32 0, i32* %var1, align 4 - store i32 0, i32* %var2, align 4 + store i32 0, ptr %var1, align 4 + store i32 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %else if: - %gep1 = getelementptr inbounds i32, i32* %var1, i32 0 br label %then else: - %gep2 = getelementptr inbounds i32, i32* %var2, i32 %n + %gep2 = getelementptr inbounds i32, ptr %var2, i32 %n br label %then then: - %ptr = phi i32* [ %gep1, %if ], [ %gep2, %else ] - %ret = load i32, i32* %ptr, align 4 + %ptr = phi ptr [ %var1, %if ], [ %gep2, %else ] + %ret = load i32, ptr %ptr, align 4 ret i32 %ret } @@ -256,22 +247,21 @@ entry: %var1 = alloca i32, align 4 %var2 = alloca i32, align 4 - store i32 0, i32* %var1, align 4 - store i32 0, i32* %var2, align 4 + store i32 0, ptr %var1, align 4 + store i32 0, ptr %var2, align 4 %cmp = icmp ne i32 %k, 0 br i1 %cmp, label %if, label %else if: - %gep1 = getelementptr inbounds i32, i32* %var1, i32 %n + %gep1 = getelementptr inbounds i32, ptr %var1, i32 %n br label %then else: - %gep2 = getelementptr inbounds i32, i32* %var2, i32 0 br label %then then: - %ptr = phi i32* [ %gep1, %if ], [ %gep2, %else ] - %ret = load i32, i32* %ptr, align 4 + %ptr = phi ptr [ %gep1, %if ], [ %var2, %else ] + %ret = load i32, ptr %ptr, align 4 ret i32 %ret } @@ -283,9 +273,9 @@ ; AIX-NOT: __ssp_canary_word define void @struct_in_bounds() #0 { %var = alloca %struct.outer, align 4 - %outergep = getelementptr inbounds %struct.outer, %struct.outer* %var, i32 0, i32 1 - %innergep = getelementptr inbounds %struct.inner, %struct.inner* %outergep, i32 0, i32 1 - store i32 0, i32* %innergep, align 4 + %outergep = getelementptr inbounds %struct.outer, ptr %var, i32 0, i32 1 + %innergep = getelementptr inbounds %struct.inner, ptr %outergep, i32 0, i32 1 + store i32 0, ptr %innergep, align 4 ret void } @@ -294,9 +284,8 @@ ; AIX: __ssp_canary_word define void @struct_constant_out_of_bounds_a() #0 { %var = alloca %struct.outer, align 4 - %outergep = getelementptr inbounds %struct.outer, %struct.outer* %var, i32 1, i32 0 - %innergep = getelementptr inbounds %struct.inner, %struct.inner* %outergep, i32 0, i32 0 - store i32 0, i32* %innergep, align 4 + %outergep = getelementptr inbounds %struct.outer, ptr %var, i32 1, i32 0 + store i32 0, ptr %outergep, align 4 ret void } @@ -307,9 +296,8 @@ ; AIX-NOT: __ssp_canary_word define void @struct_constant_out_of_bounds_b() #0 { %var = alloca %struct.outer, align 4 - %outergep = getelementptr inbounds %struct.outer, %struct.outer* %var, i32 0, i32 0 - %innergep = getelementptr inbounds %struct.inner, %struct.inner* %outergep, i32 1, i32 0 - store i32 0, i32* %innergep, align 4 + %innergep = getelementptr inbounds %struct.inner, ptr %var, i32 1, i32 0 + store i32 0, ptr %innergep, align 4 ret void } @@ -319,9 +307,9 @@ ; AIX: __ssp_canary_word define void @struct_constant_out_of_bounds_c() #0 { %var = alloca %struct.outer, align 4 - %outergep = getelementptr inbounds %struct.outer, %struct.outer* %var, i32 0, i32 1 - %innergep = getelementptr inbounds %struct.inner, %struct.inner* %outergep, i32 1, i32 0 - store i32 0, i32* %innergep, align 4 + %outergep = getelementptr inbounds %struct.outer, ptr %var, i32 0, i32 1 + %innergep = getelementptr inbounds %struct.inner, ptr %outergep, i32 1, i32 0 + store i32 0, ptr %innergep, align 4 ret void } @@ -330,9 +318,8 @@ ; AIX: __ssp_canary_word define void @struct_nonconstant_out_of_bounds_a(i32 %n) #0 { %var = alloca %struct.outer, align 4 - %outergep = getelementptr inbounds %struct.outer, %struct.outer* %var, i32 %n, i32 0 - %innergep = getelementptr inbounds %struct.inner, %struct.inner* %outergep, i32 0, i32 0 - store i32 0, i32* %innergep, align 4 + %outergep = getelementptr inbounds %struct.outer, ptr %var, i32 %n, i32 0 + store i32 0, ptr %outergep, align 4 ret void } @@ -341,9 +328,8 @@ ; AIX: __ssp_canary_word define void @struct_nonconstant_out_of_bounds_b(i32 %n) #0 { %var = alloca %struct.outer, align 4 - %outergep = getelementptr inbounds %struct.outer, %struct.outer* %var, i32 0, i32 0 - %innergep = getelementptr inbounds %struct.inner, %struct.inner* %outergep, i32 %n, i32 0 - store i32 0, i32* %innergep, align 4 + %innergep = getelementptr inbounds %struct.inner, ptr %var, i32 %n, i32 0 + store i32 0, ptr %innergep, align 4 ret void } @@ -352,9 +338,8 @@ ; AIX-NOT: __ssp_canary_word define i32 @bitcast_smaller_load() #0 { %var = alloca i64, align 4 - store i64 0, i64* %var, align 4 - %bitcast = bitcast i64* %var to i32* - %ret = load i32, i32* %bitcast, align 4 + store i64 0, ptr %var, align 4 + %ret = load i32, ptr %var, align 4 ret i32 %ret } @@ -363,10 +348,9 @@ ; AIX-NOT: __ssp_canary_word define i32 @bitcast_same_size_load() #0 { %var = alloca i64, align 4 - store i64 0, i64* %var, align 4 - %bitcast = bitcast i64* %var to %struct.inner* - %gep = getelementptr inbounds %struct.inner, %struct.inner* %bitcast, i32 0, i32 1 - %ret = load i32, i32* %gep, align 4 + store i64 0, ptr %var, align 4 + %gep = getelementptr inbounds %struct.inner, ptr %var, i32 0, i32 1 + %ret = load i32, ptr %gep, align 4 ret i32 %ret } @@ -375,9 +359,8 @@ ; AIX: __ssp_canary_word define i64 @bitcast_larger_load() #0 { %var = alloca i32, align 4 - store i32 0, i32* %var, align 4 - %bitcast = bitcast i32* %var to i64* - %ret = load i64, i64* %bitcast, align 4 + store i32 0, ptr %var, align 4 + %ret = load i64, ptr %var, align 4 ret i64 %ret } @@ -386,9 +369,8 @@ ; AIX: __ssp_canary_word define i32 @bitcast_larger_store() #0 { %var = alloca i32, align 4 - %bitcast = bitcast i32* %var to i64* - store i64 0, i64* %bitcast, align 4 - %ret = load i32, i32* %var, align 4 + store i64 0, ptr %var, align 4 + %ret = load i32, ptr %var, align 4 ret i32 %ret } @@ -397,8 +379,7 @@ ; AIX: __ssp_canary_word define i64 @bitcast_larger_cmpxchg(i64 %desired, i64 %new) #0 { %var = alloca i32, align 4 - %bitcast = bitcast i32* %var to i64* - %pair = cmpxchg i64* %bitcast, i64 %desired, i64 %new seq_cst monotonic + %pair = cmpxchg ptr %var, i64 %desired, i64 %new seq_cst monotonic %ret = extractvalue { i64, i1 } %pair, 0 ret i64 %ret } @@ -408,8 +389,7 @@ ; AIX: __ssp_canary_word define i64 @bitcast_larger_atomic_rmw() #0 { %var = alloca i32, align 4 - %bitcast = bitcast i32* %var to i64* - %ret = atomicrmw add i64* %bitcast, i64 1 monotonic + %ret = atomicrmw add ptr %var, i64 1 monotonic ret i64 %ret } @@ -420,9 +400,8 @@ ; AIX: __ssp_canary_word define i32 @bitcast_overlap() #0 { %var = alloca i32, align 4 - %bitcast = bitcast i32* %var to %struct.packed* - %gep = getelementptr inbounds %struct.packed, %struct.packed* %bitcast, i32 0, i32 1 - %ret = load i32, i32* %gep, align 2 + %gep = getelementptr inbounds %struct.packed, ptr %var, i32 0, i32 1 + %ret = load i32, ptr %gep, align 2 ret i32 %ret } @@ -433,10 +412,9 @@ ; AIX: __ssp_canary_word define i32 @multi_dimensional_array() #0 { %var = alloca %struct.multi_dimensional, align 4 - %gep1 = getelementptr inbounds %struct.multi_dimensional, %struct.multi_dimensional* %var, i32 0, i32 0 - %gep2 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %gep1, i32 0, i32 10 - %gep3 = getelementptr inbounds [10 x i32], [10 x i32]* %gep2, i32 0, i32 5 - %ret = load i32, i32* %gep3, align 4 + %gep2 = getelementptr inbounds [10 x [10 x i32]], ptr %var, i32 0, i32 10 + %gep3 = getelementptr inbounds [10 x i32], ptr %gep2, i32 0, i32 5 + %ret = load i32, ptr %gep3, align 4 ret i32 %ret } Index: llvm/test/CodeGen/PowerPC/stack-no-redzone.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stack-no-redzone.ll +++ llvm/test/CodeGen/PowerPC/stack-no-redzone.ll @@ -27,7 +27,7 @@ ; CHECK-NOT: lwz {{[0-9]+}}, -{{[0-9]+}}(1) define i32 @test_n() local_unnamed_addr #0 { entry: - %t0 = tail call i32 bitcast (i32 (...)* @bar0 to i32 ()*)() #0 + %t0 = tail call i32 @bar0() #0 ret i32 %t0 } @@ -42,7 +42,7 @@ define i32 @test_a() local_unnamed_addr #0 { entry: %t0 = alloca i32, align 128 - %t1 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t0) #0 + %t1 = tail call i32 @bar1(ptr %t0) #0 ret i32 %t1 } @@ -55,7 +55,7 @@ ; CHECK-NOT: lwz {{[0-9]+}}, -{{[0-9]+}}(1) define i32 @test_d(i32 %p0) local_unnamed_addr #0 { %t0 = alloca i32, i32 %p0, align 4 - %t1 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t0) #0 + %t1 = tail call i32 @bar1(ptr %t0) #0 ret i32 %t1 } @@ -68,8 +68,7 @@ define i32 @test_s(i32 %p0) local_unnamed_addr #0 { entry: %t0 = alloca [16384 x i32] - %t1 = getelementptr [16384 x i32], [16384 x i32]* %t0, i32 0, i32 0 - %t2 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t1) #0 + %t2 = tail call i32 @bar1(ptr %t0) #0 ret i32 %t2 } @@ -83,8 +82,8 @@ define i32 @test_ad(i32 %p0) local_unnamed_addr #0 { %t0 = alloca i32, align 128 %t1 = alloca i32, i32 %p0, align 4 - %t2 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t0) #0 - %t3 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t1) #0 + %t2 = tail call i32 @bar1(ptr %t0) #0 + %t3 = tail call i32 @bar1(ptr %t1) #0 %t4 = add i32 %t2, %t3 ret i32 %t4 } @@ -97,9 +96,8 @@ define i32 @test_as() local_unnamed_addr #0 { %t0 = alloca i32, align 128 %t1 = alloca [16384 x i32] - %t2 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t0) #0 - %t3 = getelementptr [16384 x i32], [16384 x i32]* %t1, i32 0, i32 0 - %t4 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t3) #0 + %t2 = tail call i32 @bar1(ptr %t0) #0 + %t4 = tail call i32 @bar1(ptr %t1) #0 %t5 = add i32 %t2, %t4 ret i32 %t5 } @@ -112,9 +110,8 @@ define i32 @test_ds(i32 %p0) local_unnamed_addr #0 { %t0 = alloca i32, i32 %p0, align 4 %t1 = alloca [16384 x i32] - %t2 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t0) #0 - %t3 = getelementptr [16384 x i32], [16384 x i32]* %t1, i32 0, i32 0 - %t4 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t3) #0 + %t2 = tail call i32 @bar1(ptr %t0) #0 + %t4 = tail call i32 @bar1(ptr %t1) #0 %t5 = add i32 %t2, %t4 ret i32 %t5 } @@ -129,12 +126,11 @@ %t1 = alloca i32, i32 %p0, align 4 %t2 = alloca [16384 x i32] - %t3 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t0) #0 - %t4 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t1) #0 + %t3 = tail call i32 @bar1(ptr %t0) #0 + %t4 = tail call i32 @bar1(ptr %t1) #0 %t5 = add i32 %t3, %t4 - %t6 = getelementptr [16384 x i32], [16384 x i32]* %t2, i32 0, i32 0 - %t7 = tail call i32 bitcast (i32 (...)* @bar1 to i32 (i32*)*)(i32* %t6) #0 + %t7 = tail call i32 @bar1(ptr %t2) #0 %t8 = add i32 %t5, %t7 ret i32 %t7 } Index: llvm/test/CodeGen/PowerPC/stack-protector.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stack-protector.ll +++ llvm/test/CodeGen/PowerPC/stack-protector.ll @@ -22,25 +22,23 @@ ; FREEBSD32: bl __stack_chk_fail ; FREEBSD64: bl __stack_chk_fail -@"\01LC" = internal constant [11 x i8] c"buf == %s\0A\00" ; <[11 x i8]*> [#uses=1] +@"\01LC" = internal constant [11 x i8] c"buf == %s\0A\00" ; [#uses=1] -define void @test(i8* %a) nounwind ssp { +define void @test(ptr %a) nounwind ssp { entry: - %a_addr = alloca i8* ; [#uses=2] - %buf = alloca [8 x i8] ; <[8 x i8]*> [#uses=2] + %a_addr = alloca ptr ; [#uses=2] + %buf = alloca [8 x i8] ; [#uses=2] %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store i8* %a, i8** %a_addr - %buf1 = bitcast [8 x i8]* %buf to i8* ; [#uses=1] - %0 = load i8*, i8** %a_addr, align 4 ; [#uses=1] - %1 = call i8* @strcpy(i8* %buf1, i8* %0) nounwind ; [#uses=0] - %buf2 = bitcast [8 x i8]* %buf to i8* ; [#uses=1] - %2 = call i32 (i8*, ...) @printf(i8* getelementptr ([11 x i8], [11 x i8]* @"\01LC", i32 0, i32 0), i8* %buf2) nounwind ; [#uses=0] + store ptr %a, ptr %a_addr + %0 = load ptr, ptr %a_addr, align 4 ; [#uses=1] + %1 = call ptr @strcpy(ptr %buf, ptr %0) nounwind ; [#uses=0] + %2 = call i32 (ptr, ...) @printf(ptr @"\01LC", ptr %buf) nounwind ; [#uses=0] br label %return return: ; preds = %entry ret void } -declare i8* @strcpy(i8*, i8*) nounwind +declare ptr @strcpy(ptr, ptr) nounwind -declare i32 @printf(i8*, ...) nounwind +declare i32 @printf(ptr, ...) nounwind Index: llvm/test/CodeGen/PowerPC/stack-realign.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stack-realign.ll +++ llvm/test/CodeGen/PowerPC/stack-realign.ll @@ -7,23 +7,21 @@ %struct.s = type { i32, i32 } -declare void @bar(i32*) +declare void @bar(ptr) @barbaz = external global i32 -define void @goo(%struct.s* byval(%struct.s) nocapture readonly %a) { +define void @goo(ptr byval(%struct.s) nocapture readonly %a) { entry: %x = alloca [2 x i32], align 32 - %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0 - %0 = load i32, i32* %a1, align 4 - %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 0 - store i32 %0, i32* %arrayidx, align 32 - %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1 - %1 = load i32, i32* %b, align 4 - %2 = load i32, i32* @barbaz, align 4 - %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 1 - store i32 %2, i32* %arrayidx2, align 4 - call void @bar(i32* %arrayidx) + %0 = load i32, ptr %a, align 4 + store i32 %0, ptr %x, align 32 + %b = getelementptr inbounds %struct.s, ptr %a, i64 0, i32 1 + %1 = load i32, ptr %b, align 4 + %2 = load i32, ptr @barbaz, align 4 + %arrayidx2 = getelementptr inbounds [2 x i32], ptr %x, i64 0, i64 1 + store i32 %2, ptr %arrayidx2, align 4 + call void @bar(ptr %x) ret void } @@ -105,18 +103,16 @@ ; CHECK-32-PIC: addic 29, 0, 12 ; The large-frame-size case. -define void @hoo(%struct.s* byval(%struct.s) nocapture readonly %a) { +define void @hoo(ptr byval(%struct.s) nocapture readonly %a) { entry: %x = alloca [200000 x i32], align 32 - %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0 - %0 = load i32, i32* %a1, align 4 - %arrayidx = getelementptr inbounds [200000 x i32], [200000 x i32]* %x, i64 0, i64 0 - store i32 %0, i32* %arrayidx, align 32 - %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1 - %1 = load i32, i32* %b, align 4 - %arrayidx2 = getelementptr inbounds [200000 x i32], [200000 x i32]* %x, i64 0, i64 1 - store i32 %1, i32* %arrayidx2, align 4 - call void @bar(i32* %arrayidx) + %0 = load i32, ptr %a, align 4 + store i32 %0, ptr %x, align 32 + %b = getelementptr inbounds %struct.s, ptr %a, i64 0, i32 1 + %1 = load i32, ptr %b, align 4 + %arrayidx2 = getelementptr inbounds [200000 x i32], ptr %x, i64 0, i64 1 + store i32 %1, ptr %arrayidx2, align 4 + call void @bar(ptr %x) ret void } @@ -174,18 +170,16 @@ ; Make sure that the FP save area is still allocated correctly relative to ; where r30 is saved. -define void @loo(%struct.s* byval(%struct.s) nocapture readonly %a) { +define void @loo(ptr byval(%struct.s) nocapture readonly %a) { entry: %x = alloca [2 x i32], align 32 - %a1 = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 0 - %0 = load i32, i32* %a1, align 4 - %arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 0 - store i32 %0, i32* %arrayidx, align 32 - %b = getelementptr inbounds %struct.s, %struct.s* %a, i64 0, i32 1 - %1 = load i32, i32* %b, align 4 - %arrayidx2 = getelementptr inbounds [2 x i32], [2 x i32]* %x, i64 0, i64 1 - store i32 %1, i32* %arrayidx2, align 4 - call void @bar(i32* %arrayidx) + %0 = load i32, ptr %a, align 4 + store i32 %0, ptr %x, align 32 + %b = getelementptr inbounds %struct.s, ptr %a, i64 0, i32 1 + %1 = load i32, ptr %b, align 4 + %arrayidx2 = getelementptr inbounds [2 x i32], ptr %x, i64 0, i64 1 + store i32 %1, ptr %arrayidx2, align 4 + call void @bar(ptr %x) call void asm sideeffect "", "~{f30}"() nounwind ret void } Index: llvm/test/CodeGen/PowerPC/stack-restore-with-setjmp.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stack-restore-with-setjmp.ll +++ llvm/test/CodeGen/PowerPC/stack-restore-with-setjmp.ll @@ -8,7 +8,7 @@ @.str = private unnamed_addr constant [33 x i8] c"Successfully returned from main\0A\00", align 1 ; Function Attrs: nounwind -define dso_local signext i32 @main(i32 signext %argc, i8** nocapture readnone %argv) local_unnamed_addr #0 { +define dso_local signext i32 @main(i32 signext %argc, ptr nocapture readnone %argv) local_unnamed_addr #0 { ; CHECK-LABEL: main: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mfocrf 12, 32 @@ -111,25 +111,22 @@ br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %0 = bitcast [1 x %struct.__jmp_buf_tag]* %env_buffer to i8* - call void @llvm.lifetime.start.p0i8(i64 656, i8* nonnull %0) #5 - %arraydecay = getelementptr inbounds [1 x %struct.__jmp_buf_tag], [1 x %struct.__jmp_buf_tag]* %env_buffer, i64 0, i64 0 - %call = call signext i32 @_setjmp(%struct.__jmp_buf_tag* nonnull %arraydecay) #6 + call void @llvm.lifetime.start.p0(i64 656, ptr nonnull %env_buffer) #5 + %call = call signext i32 @_setjmp(ptr nonnull %env_buffer) #6 %cmp1 = icmp ne i32 %argc, 2 %cmp2 = icmp eq i32 %call, 0 %or.cond = and i1 %cmp1, %cmp2 br i1 %or.cond, label %if.then3, label %if.end5 if.then3: ; preds = %if.end - %1 = alloca [8 x i8], align 16 - %.sub = getelementptr inbounds [8 x i8], [8 x i8]* %1, i64 0, i64 0 - store i8 -1, i8* %.sub, align 16 - call void @test(i8* nonnull %.sub, %struct.__jmp_buf_tag* nonnull %arraydecay) #7 + %0 = alloca [8 x i8], align 16 + store i8 -1, ptr %0, align 16 + call void @test(ptr nonnull %0, ptr nonnull %env_buffer) #7 unreachable if.end5: ; preds = %if.end - %call6 = call signext i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str, i64 0, i64 0)) - call void @llvm.lifetime.end.p0i8(i64 656, i8* nonnull %0) #5 + %call6 = call signext i32 (ptr, ...) @printf(ptr nonnull dereferenceable(1) @.str) + call void @llvm.lifetime.end.p0(i64 656, ptr nonnull %env_buffer) #5 br label %return return: ; preds = %entry, %if.end5 @@ -138,19 +135,19 @@ } ; Function Attrs: argmemonly nofree nosync nounwind willreturn -declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) ; Function Attrs: nounwind returns_twice -declare signext i32 @_setjmp(%struct.__jmp_buf_tag*) local_unnamed_addr +declare signext i32 @_setjmp(ptr) local_unnamed_addr ; Function Attrs: noreturn -declare void @test(i8*, %struct.__jmp_buf_tag*) local_unnamed_addr +declare void @test(ptr, ptr) local_unnamed_addr ; Function Attrs: nofree nounwind -declare noundef signext i32 @printf(i8* nocapture noundef readonly, ...) local_unnamed_addr +declare noundef signext i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr ; Function Attrs: argmemonly nofree nosync nounwind willreturn -declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) attributes #0 = { nounwind } attributes #6 = { nounwind returns_twice } Index: llvm/test/CodeGen/PowerPC/stackmap-frame-setup.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stackmap-frame-setup.ll +++ llvm/test/CodeGen/PowerPC/stackmap-frame-setup.ll @@ -4,13 +4,13 @@ define void @caller_meta_leaf() { entry: %metadata = alloca i64, i32 3, align 8 - store i64 11, i64* %metadata - store i64 12, i64* %metadata - store i64 13, i64* %metadata + store i64 11, ptr %metadata + store i64 12, ptr %metadata + store i64 13, ptr %metadata ; ISEL: ADJCALLSTACKDOWN 0, 0, implicit-def ; ISEL-NEXT: STACKMAP ; ISEL-NEXT: ADJCALLSTACKUP 0, 0, implicit-def - call void (i64, i32, ...) @llvm.experimental.stackmap(i64 4, i32 0, i64* %metadata) + call void (i64, i32, ...) @llvm.experimental.stackmap(i64 4, i32 0, ptr %metadata) ; FAST-ISEL: ADJCALLSTACKDOWN 0, 0, implicit-def ; FAST-ISEL-NEXT: STACKMAP ; FAST-ISEL-NEXT: ADJCALLSTACKUP 0, 0, implicit-def Index: llvm/test/CodeGen/PowerPC/std-unal-fi.ll =================================================================== --- llvm/test/CodeGen/PowerPC/std-unal-fi.ll +++ llvm/test/CodeGen/PowerPC/std-unal-fi.ll @@ -9,28 +9,27 @@ br label %CF CF: ; preds = %CF80, %CF, %BB - %L5 = load i64, i64* undef - store i8 %0, i8* %A4 + %L5 = load i64, ptr undef + store i8 %0, ptr %A4 %Shuff7 = shufflevector <16 x i32> , <16 x i32> %Shuff, <16 x i32> - %PC10 = bitcast i8* %A4 to ppc_fp128* br i1 undef, label %CF, label %CF77 CF77: ; preds = %CF81, %CF83, %CF77, %CF br i1 undef, label %CF77, label %CF82 CF82: ; preds = %CF82, %CF77 - %L19 = load i64, i64* undef - store <1 x ppc_fp128> zeroinitializer, <1 x ppc_fp128>* %A - store i8 -65, i8* %A4 + %L19 = load i64, ptr undef + store <1 x ppc_fp128> zeroinitializer, ptr %A + store i8 -65, ptr %A4 br i1 undef, label %CF82, label %CF83 CF83: ; preds = %CF82 - %L34 = load i64, i64* undef + %L34 = load i64, ptr undef br i1 undef, label %CF77, label %CF81 CF81: ; preds = %CF83 %Shuff43 = shufflevector <16 x i32> %Shuff7, <16 x i32> undef, <16 x i32> - store ppc_fp128 0xM00000000000000000000000000000000, ppc_fp128* %PC10 + store ppc_fp128 0xM00000000000000000000000000000000, ptr %A4 br i1 undef, label %CF77, label %CF78 CF78: ; preds = %CF78, %CF81 @@ -40,38 +39,36 @@ br i1 undef, label %CF79, label %CF80 CF80: ; preds = %CF79 - store i64 %L19, i64* undef + store i64 %L19, ptr undef %Cmp75 = icmp uge i32 206779, undef br i1 %Cmp75, label %CF, label %CF76 CF76: ; preds = %CF80 - store i64 %L5, i64* undef - store i64 %L34, i64* undef + store i64 %L5, ptr undef + store i64 %L34, ptr undef ret void } -define void @autogen_SD88042(i8*, i32*, i8) { +define void @autogen_SD88042(ptr, ptr, i8) { BB: %A4 = alloca <2 x i1> %A = alloca <16 x float> - %L = load i8, i8* %0 - %Sl = select i1 false, <16 x float>* %A, <16 x float>* %A - %PC = bitcast <2 x i1>* %A4 to i64* + %L = load i8, ptr %0 + %Sl = select i1 false, ptr %A, ptr %A %Sl27 = select i1 false, i8 undef, i8 %L br label %CF CF: ; preds = %CF78, %CF, %BB - %PC33 = bitcast i32* %1 to i32* br i1 undef, label %CF, label %CF77 CF77: ; preds = %CF80, %CF77, %CF - store <16 x float> zeroinitializer, <16 x float>* %Sl - %L58 = load i32, i32* %PC33 - store i8 0, i8* %0 + store <16 x float> zeroinitializer, ptr %Sl + %L58 = load i32, ptr %1 + store i8 0, ptr %0 br i1 undef, label %CF77, label %CF80 CF80: ; preds = %CF77 - store i64 0, i64* %PC + store i64 0, ptr %A4 %E67 = extractelement <8 x i1> zeroinitializer, i32 1 br i1 %E67, label %CF77, label %CF78 @@ -80,40 +77,39 @@ br i1 %Cmp73, label %CF, label %CF76 CF76: ; preds = %CF78 - store i8 %2, i8* %0 - store i8 %Sl27, i8* %0 + store i8 %2, ptr %0 + store i8 %Sl27, ptr %0 ret void } -define void @autogen_SD37497(i8*, i32*, i64*) { +define void @autogen_SD37497(ptr, ptr, ptr) { BB: %A1 = alloca i1 %I8 = insertelement <1 x i32> , i32 454855, i32 0 %Cmp = icmp ult <4 x i64> , undef - %L10 = load i64, i64* %2 + %L10 = load i64, ptr %2 %E11 = extractelement <4 x i1> %Cmp, i32 2 br label %CF72 CF72: ; preds = %CF74, %CF72, %BB - store double 0xB47BB29A53790718, double* undef + store double 0xB47BB29A53790718, ptr undef %E18 = extractelement <1 x i32> , i32 0 %FC22 = sitofp <1 x i32> %I8 to <1 x float> br i1 undef, label %CF72, label %CF74 CF74: ; preds = %CF72 - store i8 0, i8* %0 - %PC = bitcast i1* %A1 to i64* - %L31 = load i64, i64* %PC - store i64 477323, i64* %PC - %Sl37 = select i1 false, i32* undef, i32* %1 + store i8 0, ptr %0 + %L31 = load i64, ptr %A1 + store i64 477323, ptr %A1 + %Sl37 = select i1 false, ptr undef, ptr %1 %Cmp38 = icmp ugt i1 undef, undef br i1 %Cmp38, label %CF72, label %CF73 CF73: ; preds = %CF74 - store i64 %L31, i64* %PC + store i64 %L31, ptr %A1 %B55 = fdiv <1 x float> undef, %FC22 - %Sl63 = select i1 %E11, i32* undef, i32* %Sl37 - store i32 %E18, i32* %Sl63 - store i64 %L10, i64* %PC + %Sl63 = select i1 %E11, ptr undef, ptr %Sl37 + store i32 %E18, ptr %Sl63 + store i64 %L10, ptr %A1 ret void } Index: llvm/test/CodeGen/PowerPC/stdux-constuse.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stdux-constuse.ll +++ llvm/test/CodeGen/PowerPC/stdux-constuse.ll @@ -2,9 +2,9 @@ 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-v128:128:128-n32:64" target triple = "powerpc64-unknown-linux-gnu" -define i32 @test1(i64 %add, i64* %ptr) nounwind { +define i32 @test1(i64 %add, ptr %ptr) nounwind { entry: - %p1 = getelementptr i64, i64* %ptr, i64 144115188075855 + %p1 = getelementptr i64, ptr %ptr, i64 144115188075855 br label %for.cond2.preheader for.cond2.preheader: @@ -13,15 +13,15 @@ for.body4: %lsr.iv = phi i32 [ %lsr.iv.next, %for.body4 ], [ 16000, %for.cond2.preheader ] - %i0 = phi i64* [ %p1, %for.cond2.preheader ], [ %i6, %for.body4 ] - %i6 = getelementptr i64, i64* %i0, i64 400000 - %i7 = getelementptr i64, i64* %i6, i64 300000 - %i8 = getelementptr i64, i64* %i6, i64 200000 - %i9 = getelementptr i64, i64* %i6, i64 100000 - store i64 %add, i64* %i6, align 32 - store i64 %add, i64* %i7, align 32 - store i64 %add, i64* %i8, align 32 - store i64 %add, i64* %i9, align 32 + %i0 = phi ptr [ %p1, %for.cond2.preheader ], [ %i6, %for.body4 ] + %i6 = getelementptr i64, ptr %i0, i64 400000 + %i7 = getelementptr i64, ptr %i6, i64 300000 + %i8 = getelementptr i64, ptr %i6, i64 200000 + %i9 = getelementptr i64, ptr %i6, i64 100000 + store i64 %add, ptr %i6, align 32 + store i64 %add, ptr %i7, align 32 + store i64 %add, ptr %i8, align 32 + store i64 %add, ptr %i9, align 32 %lsr.iv.next = add i32 %lsr.iv, -16 %exitcond.15 = icmp eq i32 %lsr.iv.next, 0 br i1 %exitcond.15, label %for.end, label %for.body4 Index: llvm/test/CodeGen/PowerPC/stfiwx-2.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stfiwx-2.ll +++ llvm/test/CodeGen/PowerPC/stfiwx-2.ll @@ -1,9 +1,9 @@ ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu -mcpu=g5 | FileCheck %s -define void @test(float %F, i8* %P) { +define void @test(float %F, ptr %P) { %I = fptosi float %F to i32 %X = trunc i32 %I to i8 - store i8 %X, i8* %P + store i8 %X, ptr %P ret void ; CHECK: fctiwz 0, 1 ; CHECK: stfiwx 0, 0, 4 Index: llvm/test/CodeGen/PowerPC/stfiwx.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stfiwx.ll +++ llvm/test/CodeGen/PowerPC/stfiwx.ll @@ -1,11 +1,11 @@ ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu -mattr=stfiwx | FileCheck %s ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu -mattr=-stfiwx | FileCheck -check-prefix=CHECK-LS %s -define void @test1(float %a, i32* %b) nounwind { +define void @test1(float %a, ptr %b) nounwind { ; CHECK-LABEL: @test1 ; CHECK-LS-LABEL: @test1 %tmp.2 = fptosi float %a to i32 ; [#uses=1] - store i32 %tmp.2, i32* %b + store i32 %tmp.2, ptr %b ret void ; CHECK: stwu @@ -20,15 +20,15 @@ ; CHECK-LS: blr } -define void @test2(float %a, i32* %b, i32 %i) nounwind { +define void @test2(float %a, ptr %b, i32 %i) nounwind { ; CHECK-LABEL: @test2 ; CHECK-LS-LABEL: @test2 - %tmp.2 = getelementptr i32, i32* %b, i32 1 ; [#uses=1] - %tmp.5 = getelementptr i32, i32* %b, i32 %i ; [#uses=1] + %tmp.2 = getelementptr i32, ptr %b, i32 1 ; [#uses=1] + %tmp.5 = getelementptr i32, ptr %b, i32 %i ; [#uses=1] %tmp.7 = fptosi float %a to i32 ; [#uses=3] - store i32 %tmp.7, i32* %tmp.5 - store i32 %tmp.7, i32* %tmp.2 - store i32 %tmp.7, i32* %b + store i32 %tmp.7, ptr %tmp.5 + store i32 %tmp.7, ptr %tmp.2 + store i32 %tmp.7, ptr %b ret void ; CHECK: stwu Index: llvm/test/CodeGen/PowerPC/store-combine.ll =================================================================== --- llvm/test/CodeGen/PowerPC/store-combine.ll +++ llvm/test/CodeGen/PowerPC/store-combine.ll @@ -1,13 +1,13 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 -verify-machineinstrs < %s | FileCheck %s -check-prefix=CHECK-PPC64LE ; RUN: llc -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -verify-machineinstrs < %s | FileCheck %s -check-prefix=CHECK-PPC64 -; i8* p; +; ptr p; ; i32 m; ; p[0] = (m >> 0) & 0xFF; ; p[1] = (m >> 8) & 0xFF; ; p[2] = (m >> 16) & 0xFF; ; p[3] = (m >> 24) & 0xFF; -define void @store_i32_by_i8(i32 signext %m, i8* %p) { +define void @store_i32_by_i8(i32 signext %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: stw 3, 0(4) @@ -19,28 +19,28 @@ ; CHECK-PPC64-NEXT: blr entry: %conv = trunc i32 %m to i8 - store i8 %conv, i8* %p, align 1 + store i8 %conv, ptr %p, align 1 %0 = lshr i32 %m, 8 %conv3 = trunc i32 %0 to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv3, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv3, ptr %arrayidx4, align 1 %1 = lshr i32 %m, 16 %conv7 = trunc i32 %1 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 2 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 2 + store i8 %conv7, ptr %arrayidx8, align 1 %2 = lshr i32 %m, 24 %conv11 = trunc i32 %2 to i8 - %arrayidx12 = getelementptr inbounds i8, i8* %p, i64 3 - store i8 %conv11, i8* %arrayidx12, align 1 + %arrayidx12 = getelementptr inbounds i8, ptr %p, i64 3 + store i8 %conv11, ptr %arrayidx12, align 1 ret void } -; i8* p; +; ptr p; ; i32 m; ; p[0] = (m >> 24) & 0xFF; ; p[1] = (m >> 16) & 0xFF; ; p[2] = (m >> 8) & 0xFF; ; p[3] = (m >> 0) & 0xFF; -define void @store_i32_by_i8_bswap(i32 signext %m, i8* %p) { +define void @store_i32_by_i8_bswap(i32 signext %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8_bswap: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: stwbrx 3, 0, 4 @@ -53,21 +53,21 @@ entry: %0 = lshr i32 %m, 24 %conv = trunc i32 %0 to i8 - store i8 %conv, i8* %p, align 1 + store i8 %conv, ptr %p, align 1 %1 = lshr i32 %m, 16 %conv3 = trunc i32 %1 to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv3, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv3, ptr %arrayidx4, align 1 %2 = lshr i32 %m, 8 %conv7 = trunc i32 %2 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 2 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 2 + store i8 %conv7, ptr %arrayidx8, align 1 %conv11 = trunc i32 %m to i8 - %arrayidx12 = getelementptr inbounds i8, i8* %p, i64 3 - store i8 %conv11, i8* %arrayidx12, align 1 + %arrayidx12 = getelementptr inbounds i8, ptr %p, i64 3 + store i8 %conv11, ptr %arrayidx12, align 1 ret void } -; i8 *p; +; ptr p; ; i64 m; ; p[0] = (m >> 0) & 0xFF; ; p[1] = (m >> 8) & 0xFF; @@ -77,7 +77,7 @@ ; p[5] = (m >> 40) & 0xFF; ; p[6] = (m >> 48) & 0xFF; ; p[7] = (m >> 56) & 0xFF; -define void @store_i64_by_i8(i64 %m, i8* %p) { +define void @store_i64_by_i8(i64 %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i64_by_i8: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: std 3, 0(4) @@ -89,38 +89,38 @@ ; CHECK-PPC64-NEXT: blr entry: %conv = trunc i64 %m to i8 - store i8 %conv, i8* %p, align 1 + store i8 %conv, ptr %p, align 1 %0 = lshr i64 %m, 8 %conv3 = trunc i64 %0 to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv3, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv3, ptr %arrayidx4, align 1 %1 = lshr i64 %m, 16 %conv7 = trunc i64 %1 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 2 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 2 + store i8 %conv7, ptr %arrayidx8, align 1 %2 = lshr i64 %m, 24 %conv11 = trunc i64 %2 to i8 - %arrayidx12 = getelementptr inbounds i8, i8* %p, i64 3 - store i8 %conv11, i8* %arrayidx12, align 1 + %arrayidx12 = getelementptr inbounds i8, ptr %p, i64 3 + store i8 %conv11, ptr %arrayidx12, align 1 %3 = lshr i64 %m, 32 %conv15 = trunc i64 %3 to i8 - %arrayidx16 = getelementptr inbounds i8, i8* %p, i64 4 - store i8 %conv15, i8* %arrayidx16, align 1 + %arrayidx16 = getelementptr inbounds i8, ptr %p, i64 4 + store i8 %conv15, ptr %arrayidx16, align 1 %4 = lshr i64 %m, 40 %conv19 = trunc i64 %4 to i8 - %arrayidx20 = getelementptr inbounds i8, i8* %p, i64 5 - store i8 %conv19, i8* %arrayidx20, align 1 + %arrayidx20 = getelementptr inbounds i8, ptr %p, i64 5 + store i8 %conv19, ptr %arrayidx20, align 1 %5 = lshr i64 %m, 48 %conv23 = trunc i64 %5 to i8 - %arrayidx24 = getelementptr inbounds i8, i8* %p, i64 6 - store i8 %conv23, i8* %arrayidx24, align 1 + %arrayidx24 = getelementptr inbounds i8, ptr %p, i64 6 + store i8 %conv23, ptr %arrayidx24, align 1 %6 = lshr i64 %m, 56 %conv27 = trunc i64 %6 to i8 - %arrayidx28 = getelementptr inbounds i8, i8* %p, i64 7 - store i8 %conv27, i8* %arrayidx28, align 1 + %arrayidx28 = getelementptr inbounds i8, ptr %p, i64 7 + store i8 %conv27, ptr %arrayidx28, align 1 ret void } -; i8 *p; +; ptr p; ; i64 m; ; p[7] = (m >> 0) & 0xFF; ; p[6] = (m >> 8) & 0xFF; @@ -130,7 +130,7 @@ ; p[2] = (m >> 40) & 0xFF; ; p[1] = (m >> 48) & 0xFF; ; p[0] = (m >> 56) & 0xFF; -define void @store_i64_by_i8_bswap(i64 %m, i8* %p) { +define void @store_i64_by_i8_bswap(i64 %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i64_by_i8_bswap: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: stdbrx 3, 0, 4 @@ -142,39 +142,39 @@ ; CHECK-PPC64-NEXT: blr entry: %conv = trunc i64 %m to i8 - %arrayidx = getelementptr inbounds i8, i8* %p, i64 7 - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %p, i64 7 + store i8 %conv, ptr %arrayidx, align 1 %0 = lshr i64 %m, 8 %conv3 = trunc i64 %0 to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %p, i64 6 - store i8 %conv3, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %p, i64 6 + store i8 %conv3, ptr %arrayidx4, align 1 %1 = lshr i64 %m, 16 %conv7 = trunc i64 %1 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 5 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 5 + store i8 %conv7, ptr %arrayidx8, align 1 %2 = lshr i64 %m, 24 %conv11 = trunc i64 %2 to i8 - %arrayidx12 = getelementptr inbounds i8, i8* %p, i64 4 - store i8 %conv11, i8* %arrayidx12, align 1 + %arrayidx12 = getelementptr inbounds i8, ptr %p, i64 4 + store i8 %conv11, ptr %arrayidx12, align 1 %3 = lshr i64 %m, 32 %conv15 = trunc i64 %3 to i8 - %arrayidx16 = getelementptr inbounds i8, i8* %p, i64 3 - store i8 %conv15, i8* %arrayidx16, align 1 + %arrayidx16 = getelementptr inbounds i8, ptr %p, i64 3 + store i8 %conv15, ptr %arrayidx16, align 1 %4 = lshr i64 %m, 40 %conv19 = trunc i64 %4 to i8 - %arrayidx20 = getelementptr inbounds i8, i8* %p, i64 2 - store i8 %conv19, i8* %arrayidx20, align 1 + %arrayidx20 = getelementptr inbounds i8, ptr %p, i64 2 + store i8 %conv19, ptr %arrayidx20, align 1 %5 = lshr i64 %m, 48 %conv23 = trunc i64 %5 to i8 - %arrayidx24 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv23, i8* %arrayidx24, align 1 + %arrayidx24 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv23, ptr %arrayidx24, align 1 %6 = lshr i64 %m, 56 %conv27 = trunc i64 %6 to i8 - store i8 %conv27, i8* %p, align 1 + store i8 %conv27, ptr %p, align 1 ret void } -; i32 t; i8 *p; +; i32 t; ptr p; ; i64 m = t * 7; ; p[7] = (m >> 0) & 0xFF; ; p[6] = (m >> 8) & 0xFF; @@ -184,7 +184,7 @@ ; p[2] = (m >> 40) & 0xFF; ; p[1] = (m >> 48) & 0xFF; ; p[0] = (m >> 56) & 0xFF; -define void @store_i64_by_i8_bswap_uses(i32 signext %t, i8* %p) { +define void @store_i64_by_i8_bswap_uses(i32 signext %t, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i64_by_i8_bswap_uses: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: slwi 5, 3, 3 @@ -204,46 +204,46 @@ %mul = mul nsw i32 %t, 7 %conv = sext i32 %mul to i64 %conv1 = trunc i32 %mul to i8 - %arrayidx = getelementptr inbounds i8, i8* %p, i64 7 - store i8 %conv1, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %p, i64 7 + store i8 %conv1, ptr %arrayidx, align 1 %0 = lshr i64 %conv, 8 %conv4 = trunc i64 %0 to i8 - %arrayidx5 = getelementptr inbounds i8, i8* %p, i64 6 - store i8 %conv4, i8* %arrayidx5, align 1 + %arrayidx5 = getelementptr inbounds i8, ptr %p, i64 6 + store i8 %conv4, ptr %arrayidx5, align 1 %1 = lshr i64 %conv, 16 %conv8 = trunc i64 %1 to i8 - %arrayidx9 = getelementptr inbounds i8, i8* %p, i64 5 - store i8 %conv8, i8* %arrayidx9, align 1 + %arrayidx9 = getelementptr inbounds i8, ptr %p, i64 5 + store i8 %conv8, ptr %arrayidx9, align 1 %2 = lshr i64 %conv, 24 %conv12 = trunc i64 %2 to i8 - %arrayidx13 = getelementptr inbounds i8, i8* %p, i64 4 - store i8 %conv12, i8* %arrayidx13, align 1 + %arrayidx13 = getelementptr inbounds i8, ptr %p, i64 4 + store i8 %conv12, ptr %arrayidx13, align 1 %shr14 = ashr i64 %conv, 32 %conv16 = trunc i64 %shr14 to i8 - %arrayidx17 = getelementptr inbounds i8, i8* %p, i64 3 - store i8 %conv16, i8* %arrayidx17, align 1 + %arrayidx17 = getelementptr inbounds i8, ptr %p, i64 3 + store i8 %conv16, ptr %arrayidx17, align 1 %shr18 = ashr i64 %conv, 40 %conv20 = trunc i64 %shr18 to i8 - %arrayidx21 = getelementptr inbounds i8, i8* %p, i64 2 - store i8 %conv20, i8* %arrayidx21, align 1 + %arrayidx21 = getelementptr inbounds i8, ptr %p, i64 2 + store i8 %conv20, ptr %arrayidx21, align 1 %shr22 = ashr i64 %conv, 48 %conv24 = trunc i64 %shr22 to i8 - %arrayidx25 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv24, i8* %arrayidx25, align 1 + %arrayidx25 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv24, ptr %arrayidx25, align 1 %shr26 = ashr i64 %conv, 56 %conv28 = trunc i64 %shr26 to i8 - store i8 %conv28, i8* %p, align 1 + store i8 %conv28, ptr %p, align 1 ret void } ; One of the stores is volatile -; i8 *p; +; ptr p; ; p0 = volatile *p; ; p[3] = (m >> 0) & 0xFF; ; p[2] = (m >> 8) & 0xFF; ; p[1] = (m >> 16) & 0xFF; ; *p0 = (m >> 24) & 0xFF; -define void @store_i32_by_i8_bswap_volatile(i32 signext %m, i8* %p) { +define void @store_i32_by_i8_bswap_volatile(i32 signext %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8_bswap_volatile: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: li 5, 2 @@ -264,30 +264,30 @@ ; CHECK-PPC64-NEXT: blr entry: %conv = trunc i32 %m to i8 - %arrayidx = getelementptr inbounds i8, i8* %p, i64 3 - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %p, i64 3 + store i8 %conv, ptr %arrayidx, align 1 %0 = lshr i32 %m, 8 %conv3 = trunc i32 %0 to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %p, i64 2 - store i8 %conv3, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %p, i64 2 + store i8 %conv3, ptr %arrayidx4, align 1 %1 = lshr i32 %m, 16 %conv7 = trunc i32 %1 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv7, ptr %arrayidx8, align 1 %2 = lshr i32 %m, 24 %conv11 = trunc i32 %2 to i8 - store volatile i8 %conv11, i8* %p, align 1 + store volatile i8 %conv11, ptr %p, align 1 ret void } ; There is a store in between individual stores -; i8* p, q; +; ptr p, q; ; p[3] = (m >> 0) & 0xFF; ; p[2] = (m >> 8) & 0xFF; ; *q = 3; ; p[1] = (m >> 16) & 0xFF; ; p[0] = (m >> 24) & 0xFF; -define void @store_i32_by_i8_bswap_store_in_between(i32 signext %m, i8* %p, i8* %q) { +define void @store_i32_by_i8_bswap_store_in_between(i32 signext %m, ptr %p, ptr %q) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8_bswap_store_in_between: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: li 6, 2 @@ -312,24 +312,24 @@ ; CHECK-PPC64-NEXT: blr entry: %conv = trunc i32 %m to i8 - %arrayidx = getelementptr inbounds i8, i8* %p, i64 3 - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %p, i64 3 + store i8 %conv, ptr %arrayidx, align 1 %0 = lshr i32 %m, 8 %conv3 = trunc i32 %0 to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %p, i64 2 - store i8 %conv3, i8* %arrayidx4, align 1 - store i8 3, i8* %q, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %p, i64 2 + store i8 %conv3, ptr %arrayidx4, align 1 + store i8 3, ptr %q, align 1 %1 = lshr i32 %m, 16 %conv7 = trunc i32 %1 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv7, ptr %arrayidx8, align 1 %2 = lshr i32 %m, 24 %conv11 = trunc i32 %2 to i8 - store i8 %conv11, i8* %p, align 1 + store i8 %conv11, ptr %p, align 1 ret void } -define void @store_i32_by_i8_bswap_unrelated_store(i32 signext %m, i8* %p, i8* %q) { +define void @store_i32_by_i8_bswap_unrelated_store(i32 signext %m, ptr %p, ptr %q) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8_bswap_unrelated_store: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: srwi 6, 3, 8 @@ -353,28 +353,28 @@ ; CHECK-PPC64-NEXT: blr entry: %conv = trunc i32 %m to i8 - %arrayidx = getelementptr inbounds i8, i8* %p, i64 3 - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %p, i64 3 + store i8 %conv, ptr %arrayidx, align 1 %0 = lshr i32 %m, 8 %conv3 = trunc i32 %0 to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %q, i64 2 - store i8 %conv3, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %q, i64 2 + store i8 %conv3, ptr %arrayidx4, align 1 %1 = lshr i32 %m, 16 %conv7 = trunc i32 %1 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv7, ptr %arrayidx8, align 1 %2 = lshr i32 %m, 24 %conv11 = trunc i32 %2 to i8 - store i8 %conv11, i8* %p, align 1 + store i8 %conv11, ptr %p, align 1 ret void } ; i32 m; -; i8* p; +; ptr p; ; p[3] = (m >> 8) & 0xFF; ; p[4] = (m >> 0) & 0xFF; ; p[2] = (m >> 16) & 0xFF; ; p[1] = (m >> 24) & 0xFF; -define void @store_i32_by_i8_bswap_nonzero_offset(i32 signext %m, i8* %p) { +define void @store_i32_by_i8_bswap_nonzero_offset(i32 signext %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8_bswap_nonzero_offset: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: addi 4, 4, 1 @@ -388,28 +388,28 @@ entry: %0 = lshr i32 %m, 8 %conv = trunc i32 %0 to i8 - %arrayidx = getelementptr inbounds i8, i8* %p, i64 3 - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %p, i64 3 + store i8 %conv, ptr %arrayidx, align 1 %conv3 = trunc i32 %m to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %p, i64 4 - store i8 %conv3, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %p, i64 4 + store i8 %conv3, ptr %arrayidx4, align 1 %1 = lshr i32 %m, 16 %conv7 = trunc i32 %1 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 2 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 2 + store i8 %conv7, ptr %arrayidx8, align 1 %2 = lshr i32 %m, 24 %conv11 = trunc i32 %2 to i8 - %arrayidx12 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv11, i8* %arrayidx12, align 1 + %arrayidx12 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv11, ptr %arrayidx12, align 1 ret void } ; i32 m; -; i8* p; +; ptr p; ; p[-3] = (m >> 8) & 0xFF; ; p[-4] = (m >> 0) & 0xFF; ; p[-2] = (m >> 16) & 0xFF; ; p[-1] = (m >> 24) & 0xFF; -define void @store_i32_by_i8_neg_offset(i32 signext %m, i8* %p) { +define void @store_i32_by_i8_neg_offset(i32 signext %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8_neg_offset: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: stw 3, -4(4) @@ -423,28 +423,28 @@ entry: %0 = lshr i32 %m, 8 %conv = trunc i32 %0 to i8 - %arrayidx = getelementptr inbounds i8, i8* %p, i64 -3 - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %p, i64 -3 + store i8 %conv, ptr %arrayidx, align 1 %conv3 = trunc i32 %m to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %p, i64 -4 - store i8 %conv3, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %p, i64 -4 + store i8 %conv3, ptr %arrayidx4, align 1 %1 = lshr i32 %m, 16 %conv7 = trunc i32 %1 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 -2 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 -2 + store i8 %conv7, ptr %arrayidx8, align 1 %2 = lshr i32 %m, 24 %conv11 = trunc i32 %2 to i8 - %arrayidx12 = getelementptr inbounds i8, i8* %p, i64 -1 - store i8 %conv11, i8* %arrayidx12, align 1 + %arrayidx12 = getelementptr inbounds i8, ptr %p, i64 -1 + store i8 %conv11, ptr %arrayidx12, align 1 ret void } ; i32 m; -; i8* p; +; ptr p; ; p[-3] = (m >> 16) & 0xFF; ; p[-4] = (m >> 24) & 0xFF; ; p[-2] = (m >> 8) & 0xFF; ; p[-1] = (m >> 0) & 0xFF; -define void @store_i32_by_i8_bswap_neg_offset(i32 signext %m, i8* %p) { +define void @store_i32_by_i8_bswap_neg_offset(i32 signext %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8_bswap_neg_offset: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: addi 4, 4, -4 @@ -458,28 +458,28 @@ entry: %0 = lshr i32 %m, 16 %conv = trunc i32 %0 to i8 - %arrayidx = getelementptr inbounds i8, i8* %p, i64 -3 - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %p, i64 -3 + store i8 %conv, ptr %arrayidx, align 1 %1 = lshr i32 %m, 24 %conv3 = trunc i32 %1 to i8 - %arrayidx4 = getelementptr inbounds i8, i8* %p, i64 -4 - store i8 %conv3, i8* %arrayidx4, align 1 + %arrayidx4 = getelementptr inbounds i8, ptr %p, i64 -4 + store i8 %conv3, ptr %arrayidx4, align 1 %2 = lshr i32 %m, 8 %conv7 = trunc i32 %2 to i8 - %arrayidx8 = getelementptr inbounds i8, i8* %p, i64 -2 - store i8 %conv7, i8* %arrayidx8, align 1 + %arrayidx8 = getelementptr inbounds i8, ptr %p, i64 -2 + store i8 %conv7, ptr %arrayidx8, align 1 %conv11 = trunc i32 %m to i8 - %arrayidx12 = getelementptr inbounds i8, i8* %p, i64 -1 - store i8 %conv11, i8* %arrayidx12, align 1 + %arrayidx12 = getelementptr inbounds i8, ptr %p, i64 -1 + store i8 %conv11, ptr %arrayidx12, align 1 ret void } ; i32 m, i; -; i8* p; +; ptr p; ; p[i-3] = (m >> 16) & 0xFF; ; p[i-4] = (m >> 24) & 0xFF; ; p[i-2] = (m >> 8) & 0xFF; ; p[i-1] = (m >> 0) & 0xFF; -define void @store_i32_by_i8_bswap_base_index_offset(i32 %m, i32 %i, i8* %p) { +define void @store_i32_by_i8_bswap_base_index_offset(i32 %m, i32 %i, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8_bswap_base_index_offset: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: extsw 4, 4 @@ -499,39 +499,39 @@ %conv = trunc i32 %0 to i8 %sub = add nsw i32 %i, -3 %idxprom = sext i32 %sub to i64 - %arrayidx = getelementptr inbounds i8, i8* %p, i64 %idxprom - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %p, i64 %idxprom + store i8 %conv, ptr %arrayidx, align 1 %1 = lshr i32 %m, 24 %conv3 = trunc i32 %1 to i8 %sub4 = add nsw i32 %i, -4 %idxprom5 = sext i32 %sub4 to i64 - %arrayidx6 = getelementptr inbounds i8, i8* %p, i64 %idxprom5 - store i8 %conv3, i8* %arrayidx6, align 1 + %arrayidx6 = getelementptr inbounds i8, ptr %p, i64 %idxprom5 + store i8 %conv3, ptr %arrayidx6, align 1 %2 = lshr i32 %m, 8 %conv9 = trunc i32 %2 to i8 %sub10 = add nsw i32 %i, -2 %idxprom11 = sext i32 %sub10 to i64 - %arrayidx12 = getelementptr inbounds i8, i8* %p, i64 %idxprom11 - store i8 %conv9, i8* %arrayidx12, align 1 + %arrayidx12 = getelementptr inbounds i8, ptr %p, i64 %idxprom11 + store i8 %conv9, ptr %arrayidx12, align 1 %conv15 = trunc i32 %m to i8 %sub16 = add nsw i32 %i, -1 %idxprom17 = sext i32 %sub16 to i64 - %arrayidx18 = getelementptr inbounds i8, i8* %p, i64 %idxprom17 - store i8 %conv15, i8* %arrayidx18, align 1 + %arrayidx18 = getelementptr inbounds i8, ptr %p, i64 %idxprom17 + store i8 %conv15, ptr %arrayidx18, align 1 ret void } -; i8* p; +; ptr p; ; i32 i, m; -; i8* p0 = p + i; -; i8* p1 = p + i + 1; -; i8* p2 = p + i + 2; -; i8 *p3 = p + i + 3; +; ptr p0 = p + i; +; ptr p1 = p + i + 1; +; ptr p2 = p + i + 2; +; ptr p3 = p + i + 3; ; p0[3] = (m >> 24) & 0xFF; ; p1[3] = (m >> 16) & 0xFF; ; p2[3] = (m >> 8) & 0xFF; ; p3[3] = (m >> 0) & 0xFF; -define void @store_i32_by_i8_bswap_complicated(i32 %m, i32 %i, i8* %p) { +define void @store_i32_by_i8_bswap_complicated(i32 %m, i32 %i, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i32_by_i8_bswap_complicated: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: extsw 4, 4 @@ -548,30 +548,30 @@ ; CHECK-PPC64-NEXT: blr entry: %idx.ext = sext i32 %i to i64 - %add.ptr = getelementptr inbounds i8, i8* %p, i64 %idx.ext - %add.ptr3 = getelementptr inbounds i8, i8* %add.ptr, i64 1 - %add.ptr6 = getelementptr inbounds i8, i8* %add.ptr, i64 2 - %add.ptr9 = getelementptr inbounds i8, i8* %add.ptr, i64 3 + %add.ptr = getelementptr inbounds i8, ptr %p, i64 %idx.ext + %add.ptr3 = getelementptr inbounds i8, ptr %add.ptr, i64 1 + %add.ptr6 = getelementptr inbounds i8, ptr %add.ptr, i64 2 + %add.ptr9 = getelementptr inbounds i8, ptr %add.ptr, i64 3 %0 = lshr i32 %m, 24 %conv = trunc i32 %0 to i8 - store i8 %conv, i8* %add.ptr9, align 1 + store i8 %conv, ptr %add.ptr9, align 1 %1 = lshr i32 %m, 16 %conv12 = trunc i32 %1 to i8 - %arrayidx13 = getelementptr inbounds i8, i8* %add.ptr3, i64 3 - store i8 %conv12, i8* %arrayidx13, align 1 + %arrayidx13 = getelementptr inbounds i8, ptr %add.ptr3, i64 3 + store i8 %conv12, ptr %arrayidx13, align 1 %2 = lshr i32 %m, 8 %conv16 = trunc i32 %2 to i8 - %arrayidx17 = getelementptr inbounds i8, i8* %add.ptr6, i64 3 - store i8 %conv16, i8* %arrayidx17, align 1 + %arrayidx17 = getelementptr inbounds i8, ptr %add.ptr6, i64 3 + store i8 %conv16, ptr %arrayidx17, align 1 %conv20 = trunc i32 %m to i8 - %arrayidx21 = getelementptr inbounds i8, i8* %add.ptr9, i64 3 - store i8 %conv20, i8* %arrayidx21, align 1 + %arrayidx21 = getelementptr inbounds i8, ptr %add.ptr9, i64 3 + store i8 %conv20, ptr %arrayidx21, align 1 ret void } -; i8* p; i32 m; +; ptr p; i32 m; ; p[0] = (m >> 8) & 0xFF; ; p[1] = (m >> 0) & 0xFF; -define void @store_i16_by_i8_bswap(i16 %m, i8* %p) { +define void @store_i16_by_i8_bswap(i16 %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_i16_by_i8_bswap: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: sthbrx 3, 0, 4 @@ -584,16 +584,16 @@ entry: %0 = lshr i16 %m, 8 %conv1 = trunc i16 %0 to i8 - store i8 %conv1, i8* %p, align 1 + store i8 %conv1, ptr %p, align 1 %conv5 = trunc i16 %m to i8 - %arrayidx6 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv5, i8* %arrayidx6, align 1 + %arrayidx6 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv5, ptr %arrayidx6, align 1 ret void } -; i8* p; i32 m; +; ptr p; i32 m; ; p[0] = (m >> 0) & 0xFF; ; p[1] = (m >> 8) & 0xFF; -define void @store_16_by_i8(i16 %m, i8* %p) { +define void @store_16_by_i8(i16 %m, ptr %p) { ; CHECK-PPC64LE-LABEL: store_16_by_i8: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: sth 3, 0(4) @@ -605,18 +605,18 @@ ; CHECK-PPC64-NEXT: blr entry: %conv1 = trunc i16 %m to i8 - store i8 %conv1, i8* %p, align 1 + store i8 %conv1, ptr %p, align 1 %0 = lshr i16 %m, 8 %conv5 = trunc i16 %0 to i8 - %arrayidx6 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %conv5, i8* %arrayidx6, align 1 + %arrayidx6 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %conv5, ptr %arrayidx6, align 1 ret void } ; This was found when testing the hexxagon in testsuite -; i8* p; i8 v; +; ptr p; i8 v; ; p[0] = v; ; p[1] = v; -define void @store_same_value_to_consecutive_mem(i8* %p, i8 zeroext %v) { +define void @store_same_value_to_consecutive_mem(ptr %p, i8 zeroext %v) { ; CHECK-PPC64LE-LABEL: store_same_value_to_consecutive_mem: ; CHECK-PPC64LE: # %bb.0: # %entry ; CHECK-PPC64LE-NEXT: stb 4, 0(3) @@ -629,8 +629,8 @@ ; CHECK-PPC64-NEXT: stb 4, 1(3) ; CHECK-PPC64-NEXT: blr entry: - store i8 %v, i8* %p, align 1 - %arrayidx1 = getelementptr inbounds i8, i8* %p, i64 1 - store i8 %v, i8* %arrayidx1, align 1 + store i8 %v, ptr %p, align 1 + %arrayidx1 = getelementptr inbounds i8, ptr %p, i64 1 + store i8 %v, ptr %arrayidx1, align 1 ret void } Index: llvm/test/CodeGen/PowerPC/store-constant.ll =================================================================== --- llvm/test/CodeGen/PowerPC/store-constant.ll +++ llvm/test/CodeGen/PowerPC/store-constant.ll @@ -6,14 +6,14 @@ @IVal = external local_unnamed_addr global i32, align 4 @LVal = external local_unnamed_addr global i64, align 8 @USVal = external local_unnamed_addr global i16, align 2 -@arr = external local_unnamed_addr global i64*, align 8 -@arri = external local_unnamed_addr global i32*, align 8 +@arr = external local_unnamed_addr global ptr, align 8 +@arri = external local_unnamed_addr global ptr, align 8 ; Test the same constant can be used by different stores. %struct.S = type { i64, i8, i16, i32 } -define void @foo(%struct.S* %p) { +define void @foo(ptr %p) { ; CHECK-LABEL: foo: ; CHECK: # %bb.0: ; CHECK-NEXT: li 4, 0 @@ -22,19 +22,18 @@ ; CHECK-NEXT: sth 4, 10(3) ; CHECK-NEXT: stw 4, 12(3) ; CHECK-NEXT: blr - %l4 = bitcast %struct.S* %p to i64* - store i64 0, i64* %l4, align 8 - %c = getelementptr %struct.S, %struct.S* %p, i64 0, i32 1 - store i8 0, i8* %c, align 8 - %s = getelementptr %struct.S, %struct.S* %p, i64 0, i32 2 - store i16 0, i16* %s, align 2 - %i = getelementptr %struct.S, %struct.S* %p, i64 0, i32 3 - store i32 0, i32* %i, align 4 + store i64 0, ptr %p, align 8 + %c = getelementptr %struct.S, ptr %p, i64 0, i32 1 + store i8 0, ptr %c, align 8 + %s = getelementptr %struct.S, ptr %p, i64 0, i32 2 + store i16 0, ptr %s, align 2 + %i = getelementptr %struct.S, ptr %p, i64 0, i32 3 + store i32 0, ptr %i, align 4 ret void } -define void @bar(%struct.S* %p) { +define void @bar(ptr %p) { ; CHECK-LABEL: bar: ; CHECK: # %bb.0: ; CHECK-NEXT: li 4, 2 @@ -43,14 +42,13 @@ ; CHECK-NEXT: std 4, 0(3) ; CHECK-NEXT: stb 4, 8(3) ; CHECK-NEXT: blr - %i = getelementptr %struct.S, %struct.S* %p, i64 0, i32 3 - store i32 2, i32* %i, align 4 - %s = getelementptr %struct.S, %struct.S* %p, i64 0, i32 2 - store i16 2, i16* %s, align 2 - %c = getelementptr %struct.S, %struct.S* %p, i64 0, i32 1 - store i8 2, i8* %c, align 8 - %l4 = bitcast %struct.S* %p to i64* - store i64 2, i64* %l4, align 8 + %i = getelementptr %struct.S, ptr %p, i64 0, i32 3 + store i32 2, ptr %i, align 4 + %s = getelementptr %struct.S, ptr %p, i64 0, i32 2 + store i16 2, ptr %s, align 2 + %c = getelementptr %struct.S, ptr %p, i64 0, i32 1 + store i8 2, ptr %c, align 8 + store i64 2, ptr %p, align 8 ret void } @@ -74,10 +72,10 @@ ; CHECK-NEXT: stw 7, 0(5) ; CHECK-NEXT: blr entry: - store i8 -7, i8* @CVal, align 1 - store i16 -7, i16* @SVal, align 2 - store i32 -7, i32* @IVal, align 4 - store i64 -7, i64* @LVal, align 8 + store i8 -7, ptr @CVal, align 1 + store i16 -7, ptr @SVal, align 2 + store i32 -7, ptr @IVal, align 4 + store i64 -7, ptr @LVal, align 8 ret void } @@ -100,10 +98,10 @@ ; CHECK-NEXT: stw 7, 0(5) ; CHECK-NEXT: blr entry: - store i8 8, i8* @CVal, align 1 - store i16 8, i16* @SVal, align 2 - store i32 8, i32* @IVal, align 4 - store i64 8, i64* @LVal, align 8 + store i8 8, ptr @CVal, align 1 + store i16 8, ptr @SVal, align 2 + store i32 8, ptr @IVal, align 4 + store i64 8, ptr @LVal, align 8 ret void } @@ -123,9 +121,9 @@ ; CHECK-NEXT: std 6, 0(5) ; CHECK-NEXT: blr entry: - store i16 -32768, i16* @SVal, align 2 - store i32 -32768, i32* @IVal, align 4 - store i64 -32768, i64* @LVal, align 8 + store i16 -32768, ptr @SVal, align 2 + store i32 -32768, ptr @IVal, align 4 + store i64 -32768, ptr @LVal, align 8 ret void } @@ -145,9 +143,9 @@ ; CHECK-NEXT: std 6, 0(5) ; CHECK-NEXT: blr entry: - store i16 32767, i16* @SVal, align 2 - store i32 32767, i32* @IVal, align 4 - store i64 32767, i64* @LVal, align 8 + store i16 32767, ptr @SVal, align 2 + store i32 32767, ptr @IVal, align 4 + store i64 32767, ptr @LVal, align 8 ret void } @@ -165,8 +163,8 @@ ; CHECK-NEXT: std 5, 0(4) ; CHECK-NEXT: blr entry: - store i32 -32769, i32* @IVal, align 4 - store i64 -32769, i64* @LVal, align 8 + store i32 -32769, ptr @IVal, align 4 + store i64 -32769, ptr @LVal, align 8 ret void } @@ -187,9 +185,9 @@ ; CHECK-NEXT: std 6, 0(5) ; CHECK-NEXT: blr entry: - store i16 -32768, i16* @USVal, align 2 - store i32 32768, i32* @IVal, align 4 - store i64 32768, i64* @LVal, align 8 + store i16 -32768, ptr @USVal, align 2 + store i32 32768, ptr @IVal, align 4 + store i64 32768, ptr @LVal, align 8 ret void } @@ -223,8 +221,8 @@ br i1 %cmp7, label %for.body.lr.ph, label %for.cond.cleanup for.body.lr.ph: ; preds = %entry - %0 = load i64*, i64** @arr, align 8 - %1 = load i32*, i32** @arri, align 8 + %0 = load ptr, ptr @arr, align 8 + %1 = load ptr, ptr @arri, align 8 %wide.trip.count = zext i32 %Len to i64 br label %for.body @@ -233,10 +231,10 @@ for.body: ; preds = %for.body, %for.body.lr.ph %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %for.body ] - %arrayidx = getelementptr inbounds i64, i64* %0, i64 %indvars.iv - store i64 -7, i64* %arrayidx, align 8 - %arrayidx2 = getelementptr inbounds i32, i32* %1, i64 %indvars.iv - store i32 -7, i32* %arrayidx2, align 4 + %arrayidx = getelementptr inbounds i64, ptr %0, i64 %indvars.iv + store i64 -7, ptr %arrayidx, align 8 + %arrayidx2 = getelementptr inbounds i32, ptr %1, i64 %indvars.iv + store i32 -7, ptr %arrayidx2, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond, label %for.cond.cleanup, label %for.body @@ -254,8 +252,8 @@ ; CHECK-NEXT: stb 5, 0(4) ; CHECK-NEXT: blr entry: - store i32 255, i32* @IVal, align 4 - store i8 -1, i8* @CVal, align 1 + store i32 255, ptr @IVal, align 4 + store i8 -1, ptr @CVal, align 1 ret void } @@ -272,7 +270,7 @@ ; CHECK-NEXT: sth 5, 0(4) ; CHECK-NEXT: blr entry: - store i32 65535, i32* @IVal, align 4 - store i16 -1, i16* @SVal, align 2 + store i32 65535, ptr @IVal, align 4 + store i16 -1, ptr @SVal, align 2 ret void } Index: llvm/test/CodeGen/PowerPC/store-forward-be32.ll =================================================================== --- llvm/test/CodeGen/PowerPC/store-forward-be32.ll +++ llvm/test/CodeGen/PowerPC/store-forward-be32.ll @@ -12,7 +12,7 @@ %struct.UST = type { i32, i32 } ; Function Attrs: nounwind -define i32 @ustc1(%struct.USST* noundef byval(%struct.USST) align 4 %s) { +define i32 @ustc1(ptr noundef byval(%struct.USST) align 4 %s) { ; CHECK-LABEL: ustc1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -20,15 +20,14 @@ ; CHECK-NEXT: stw 4, 24(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.USST, %struct.USST* %s, i32 0, i32 0 - %0 = load i16, i16* %a, align 4 + %0 = load i16, ptr %s, align 4 %conv = zext i16 %0 to i32 %shr = ashr i32 %conv, 8 ret i32 %shr } ; Function Attrs: nounwind -define i32 @ustc2(%struct.USST* noundef byval(%struct.USST) align 4 %s) { +define i32 @ustc2(ptr noundef byval(%struct.USST) align 4 %s) { ; CHECK-LABEL: ustc2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -36,14 +35,13 @@ ; CHECK-NEXT: stw 4, 24(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.USST, %struct.USST* %s, i32 0, i32 0 - %0 = load i16, i16* %a, align 4 + %0 = load i16, ptr %s, align 4 %conv = zext i16 %0 to i32 ret i32 %conv } ; Function Attrs: nounwind -define i32 @stc1(%struct.SST* noundef byval(%struct.SST) align 4 %s) { +define i32 @stc1(ptr noundef byval(%struct.SST) align 4 %s) { ; CHECK-LABEL: stc1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -51,15 +49,14 @@ ; CHECK-NEXT: stw 4, 24(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.SST, %struct.SST* %s, i32 0, i32 0 - %0 = load i16, i16* %a, align 4 + %0 = load i16, ptr %s, align 4 %conv = sext i16 %0 to i32 %shr = ashr i32 %conv, 8 ret i32 %shr } ; Function Attrs: nounwind -define i32 @stc2(%struct.SST* noundef byval(%struct.SST) align 4 %s) { +define i32 @stc2(ptr noundef byval(%struct.SST) align 4 %s) { ; CHECK-LABEL: stc2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -67,14 +64,13 @@ ; CHECK-NEXT: stw 4, 24(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.SST, %struct.SST* %s, i32 0, i32 0 - %0 = load i16, i16* %a, align 4 + %0 = load i16, ptr %s, align 4 %conv = sext i16 %0 to i32 ret i32 %conv } ; Function Attrs: nounwind -define i32 @ctc(%struct.CST* noundef byval(%struct.CST) align 4 %s) { +define i32 @ctc(ptr noundef byval(%struct.CST) align 4 %s) { ; CHECK-LABEL: ctc: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -82,14 +78,13 @@ ; CHECK-NEXT: stw 4, 24(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.CST, %struct.CST* %s, i32 0, i32 0 - %0 = load i8, i8* %a, align 4 + %0 = load i8, ptr %s, align 4 %conv = zext i8 %0 to i32 ret i32 %conv } ; Function Attrs: nounwind -define i32 @sctc(%struct.SCST* noundef byval(%struct.SCST) align 4 %s) { +define i32 @sctc(ptr noundef byval(%struct.SCST) align 4 %s) { ; CHECK-LABEL: sctc: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -97,27 +92,25 @@ ; CHECK-NEXT: stw 4, 24(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.SCST, %struct.SCST* %s, i32 0, i32 0 - %0 = load i8, i8* %a, align 4 + %0 = load i8, ptr %s, align 4 %conv = sext i8 %0 to i32 ret i32 %conv } ; Function Attrs: nounwind -define i32 @tc44(%struct.ST* noundef byval(%struct.ST) align 4 %s) { +define i32 @tc44(ptr noundef byval(%struct.ST) align 4 %s) { ; CHECK-LABEL: tc44: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw 3, 24(1) ; CHECK-NEXT: stw 4, 28(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ST, %struct.ST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 4 + %0 = load i32, ptr %s, align 4 ret i32 %0 } ; Function Attrs: nounwind -define i32 @tc41(%struct.ST* noundef byval(%struct.ST) align 4 %s) { +define i32 @tc41(ptr noundef byval(%struct.ST) align 4 %s) { ; CHECK-LABEL: tc41: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw 3, 24(1) @@ -125,14 +118,13 @@ ; CHECK-NEXT: stw 4, 28(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ST, %struct.ST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 4 + %0 = load i32, ptr %s, align 4 %shr = ashr i32 %0, 24 ret i32 %shr } ; Function Attrs: nounwind -define i32 @tc42(%struct.ST* noundef byval(%struct.ST) align 4 %s) { +define i32 @tc42(ptr noundef byval(%struct.ST) align 4 %s) { ; CHECK-LABEL: tc42: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw 3, 24(1) @@ -140,14 +132,13 @@ ; CHECK-NEXT: stw 4, 28(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ST, %struct.ST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 4 + %0 = load i32, ptr %s, align 4 %shr = ashr i32 %0, 16 ret i32 %shr } ; Function Attrs: nounwind -define i32 @tc43(%struct.ST* noundef byval(%struct.ST) align 4 %s) { +define i32 @tc43(ptr noundef byval(%struct.ST) align 4 %s) { ; CHECK-LABEL: tc43: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw 3, 24(1) @@ -155,27 +146,25 @@ ; CHECK-NEXT: stw 4, 28(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ST, %struct.ST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 4 + %0 = load i32, ptr %s, align 4 %shr = ashr i32 %0, 8 ret i32 %shr } ; Function Attrs: nounwind -define i32 @utc44(%struct.UST* noundef byval(%struct.UST) align 4 %s) { +define i32 @utc44(ptr noundef byval(%struct.UST) align 4 %s) { ; CHECK-LABEL: utc44: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw 3, 24(1) ; CHECK-NEXT: stw 4, 28(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.UST, %struct.UST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 4 + %0 = load i32, ptr %s, align 4 ret i32 %0 } ; Function Attrs: nounwind -define i32 @utc41(%struct.UST* noundef byval(%struct.UST) align 4 %s) { +define i32 @utc41(ptr noundef byval(%struct.UST) align 4 %s) { ; CHECK-LABEL: utc41: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw 3, 24(1) @@ -183,14 +172,13 @@ ; CHECK-NEXT: stw 4, 28(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.UST, %struct.UST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 4 + %0 = load i32, ptr %s, align 4 %shr = lshr i32 %0, 24 ret i32 %shr } ; Function Attrs: nounwind -define i32 @utc42(%struct.UST* noundef byval(%struct.UST) align 4 %s) { +define i32 @utc42(ptr noundef byval(%struct.UST) align 4 %s) { ; CHECK-LABEL: utc42: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw 3, 24(1) @@ -198,14 +186,13 @@ ; CHECK-NEXT: stw 4, 28(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.UST, %struct.UST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 4 + %0 = load i32, ptr %s, align 4 %shr = lshr i32 %0, 16 ret i32 %shr } ; Function Attrs: nounwind -define i32 @utc43(%struct.UST* noundef byval(%struct.UST) align 4 %s) { +define i32 @utc43(ptr noundef byval(%struct.UST) align 4 %s) { ; CHECK-LABEL: utc43: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: stw 3, 24(1) @@ -213,8 +200,7 @@ ; CHECK-NEXT: stw 4, 28(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.UST, %struct.UST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 4 + %0 = load i32, ptr %s, align 4 %shr = lshr i32 %0, 8 ret i32 %shr } Index: llvm/test/CodeGen/PowerPC/store-forward-be64.ll =================================================================== --- llvm/test/CodeGen/PowerPC/store-forward-be64.ll +++ llvm/test/CodeGen/PowerPC/store-forward-be64.ll @@ -14,7 +14,7 @@ %struct.ULST = type { i64, i64 } ; Function Attrs: nounwind -define zeroext i32 @ustc1(%struct.USST* noundef byval(%struct.USST) align 8 %s) { +define zeroext i32 @ustc1(ptr noundef byval(%struct.USST) align 8 %s) { ; CHECK-LABEL: ustc1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -22,15 +22,14 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.USST, %struct.USST* %s, i32 0, i32 0 - %0 = load i16, i16* %a, align 8 + %0 = load i16, ptr %s, align 8 %conv = zext i16 %0 to i32 %shr = ashr i32 %conv, 8 ret i32 %shr } ; Function Attrs: nounwind -define zeroext i32 @ustc2(%struct.USST* noundef byval(%struct.USST) align 8 %s) { +define zeroext i32 @ustc2(ptr noundef byval(%struct.USST) align 8 %s) { ; CHECK-LABEL: ustc2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -38,14 +37,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.USST, %struct.USST* %s, i32 0, i32 0 - %0 = load i16, i16* %a, align 8 + %0 = load i16, ptr %s, align 8 %conv = zext i16 %0 to i32 ret i32 %conv } ; Function Attrs: nounwind -define signext i32 @stc1(%struct.SST* noundef byval(%struct.SST) align 8 %s) { +define signext i32 @stc1(ptr noundef byval(%struct.SST) align 8 %s) { ; CHECK-LABEL: stc1: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -55,15 +53,14 @@ ; CHECK-NEXT: srawi 3, 3, 8 ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.SST, %struct.SST* %s, i32 0, i32 0 - %0 = load i16, i16* %a, align 8 + %0 = load i16, ptr %s, align 8 %conv = sext i16 %0 to i32 %shr = ashr i32 %conv, 8 ret i32 %shr } ; Function Attrs: nounwind -define signext i32 @stc2(%struct.SST* noundef byval(%struct.SST) align 8 %s) { +define signext i32 @stc2(ptr noundef byval(%struct.SST) align 8 %s) { ; CHECK-LABEL: stc2: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -71,14 +68,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.SST, %struct.SST* %s, i32 0, i32 0 - %0 = load i16, i16* %a, align 8 + %0 = load i16, ptr %s, align 8 %conv = sext i16 %0 to i32 ret i32 %conv } ; Function Attrs: nounwind -define signext i32 @ctc(%struct.CST* noundef byval(%struct.CST) align 8 %s) { +define signext i32 @ctc(ptr noundef byval(%struct.CST) align 8 %s) { ; CHECK-LABEL: ctc: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -86,14 +82,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.CST, %struct.CST* %s, i32 0, i32 0 - %0 = load i8, i8* %a, align 8 + %0 = load i8, ptr %s, align 8 %conv = zext i8 %0 to i32 ret i32 %conv } ; Function Attrs: nounwind -define signext i32 @sctc(%struct.SCST* noundef byval(%struct.SCST) align 8 %s) { +define signext i32 @sctc(ptr noundef byval(%struct.SCST) align 8 %s) { ; CHECK-LABEL: sctc: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -101,14 +96,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.SCST, %struct.SCST* %s, i32 0, i32 0 - %0 = load i8, i8* %a, align 8 + %0 = load i8, ptr %s, align 8 %conv = sext i8 %0 to i32 ret i32 %conv } ; Function Attrs: nounwind -define signext i32 @tc44(%struct.ST* noundef byval(%struct.ST) align 8 %s) { +define signext i32 @tc44(ptr noundef byval(%struct.ST) align 8 %s) { ; CHECK-LABEL: tc44: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -116,13 +110,12 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ST, %struct.ST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 8 + %0 = load i32, ptr %s, align 8 ret i32 %0 } ; Function Attrs: nounwind -define signext i32 @tc41(%struct.ST* noundef byval(%struct.ST) align 8 %s) { +define signext i32 @tc41(ptr noundef byval(%struct.ST) align 8 %s) { ; CHECK-LABEL: tc41: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -130,14 +123,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ST, %struct.ST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 8 + %0 = load i32, ptr %s, align 8 %shr = ashr i32 %0, 24 ret i32 %shr } ; Function Attrs: nounwind -define signext i32 @tc42(%struct.ST* noundef byval(%struct.ST) align 8 %s) { +define signext i32 @tc42(ptr noundef byval(%struct.ST) align 8 %s) { ; CHECK-LABEL: tc42: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -145,14 +137,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ST, %struct.ST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 8 + %0 = load i32, ptr %s, align 8 %shr = ashr i32 %0, 16 ret i32 %shr } ; Function Attrs: nounwind -define signext i32 @tc43(%struct.ST* noundef byval(%struct.ST) align 8 %s) { +define signext i32 @tc43(ptr noundef byval(%struct.ST) align 8 %s) { ; CHECK-LABEL: tc43: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -160,14 +151,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ST, %struct.ST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 8 + %0 = load i32, ptr %s, align 8 %shr = ashr i32 %0, 8 ret i32 %shr } ; Function Attrs: nounwind -define zeroext i32 @utc44(%struct.UST* noundef byval(%struct.UST) align 8 %s) #0 { +define zeroext i32 @utc44(ptr noundef byval(%struct.UST) align 8 %s) #0 { ; CHECK-LABEL: utc44: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -175,13 +165,12 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.UST, %struct.UST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 8 + %0 = load i32, ptr %s, align 8 ret i32 %0 } ; Function Attrs: nounwind -define zeroext i32 @utc41(%struct.UST* noundef byval(%struct.UST) align 8 %s) { +define zeroext i32 @utc41(ptr noundef byval(%struct.UST) align 8 %s) { ; CHECK-LABEL: utc41: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -189,14 +178,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.UST, %struct.UST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 8 + %0 = load i32, ptr %s, align 8 %shr = lshr i32 %0, 24 ret i32 %shr } ; Function Attrs: nounwind -define zeroext i32 @utc42(%struct.UST* noundef byval(%struct.UST) align 8 %s) { +define zeroext i32 @utc42(ptr noundef byval(%struct.UST) align 8 %s) { ; CHECK-LABEL: utc42: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -204,14 +192,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.UST, %struct.UST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 8 + %0 = load i32, ptr %s, align 8 %shr = lshr i32 %0, 16 ret i32 %shr } ; Function Attrs: nounwind -define zeroext i32 @utc43(%struct.UST* noundef byval(%struct.UST) align 8 %s) { +define zeroext i32 @utc43(ptr noundef byval(%struct.UST) align 8 %s) { ; CHECK-LABEL: utc43: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 4, 3 @@ -219,14 +206,13 @@ ; CHECK-NEXT: std 4, 48(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.UST, %struct.UST* %s, i32 0, i32 0 - %0 = load i32, i32* %a, align 8 + %0 = load i32, ptr %s, align 8 %shr = lshr i32 %0, 8 ret i32 %shr } ; Function Attrs: nounwind -define i64 @ltc88(%struct.LST* noundef byval(%struct.LST) align 8 %s) { +define i64 @ltc88(ptr noundef byval(%struct.LST) align 8 %s) { ; CHECK-LABEL: ltc88: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -235,14 +221,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.LST, %struct.LST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = ashr i64 %0, 8 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ltc86(%struct.LST* noundef byval(%struct.LST) align 8 %s) { +define i64 @ltc86(ptr noundef byval(%struct.LST) align 8 %s) { ; CHECK-LABEL: ltc86: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -251,14 +236,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.LST, %struct.LST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = ashr i64 %0, 16 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ltc85(%struct.LST* noundef byval(%struct.LST) align 8 %s) { +define i64 @ltc85(ptr noundef byval(%struct.LST) align 8 %s) { ; CHECK-LABEL: ltc85: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -267,14 +251,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.LST, %struct.LST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = ashr i64 %0, 24 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ltc84(%struct.LST* noundef byval(%struct.LST) align 8 %s) { +define i64 @ltc84(ptr noundef byval(%struct.LST) align 8 %s) { ; CHECK-LABEL: ltc84: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -283,14 +266,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.LST, %struct.LST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = ashr i64 %0, 32 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ltc83(%struct.LST* noundef byval(%struct.LST) align 8 %s) { +define i64 @ltc83(ptr noundef byval(%struct.LST) align 8 %s) { ; CHECK-LABEL: ltc83: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -299,14 +281,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.LST, %struct.LST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = ashr i64 %0, 40 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ltc82(%struct.LST* noundef byval(%struct.LST) align 8 %s) { +define i64 @ltc82(ptr noundef byval(%struct.LST) align 8 %s) { ; CHECK-LABEL: ltc82: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -315,14 +296,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.LST, %struct.LST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = ashr i64 %0, 48 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ltc81(%struct.LST* noundef byval(%struct.LST) align 8 %s) { +define i64 @ltc81(ptr noundef byval(%struct.LST) align 8 %s) { ; CHECK-LABEL: ltc81: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -331,27 +311,25 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.LST, %struct.LST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = ashr i64 %0, 56 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ultc88(%struct.ULST* noundef byval(%struct.ULST) align 8 %s) { +define i64 @ultc88(ptr noundef byval(%struct.ULST) align 8 %s) { ; CHECK-LABEL: ultc88: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: std 3, 48(1) ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ULST, %struct.ULST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 ret i64 %0 } ; Function Attrs: nounwind -define i64 @ultc87(%struct.ULST* noundef byval(%struct.ULST) align 8 %s) { +define i64 @ultc87(ptr noundef byval(%struct.ULST) align 8 %s) { ; CHECK-LABEL: ultc87: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -360,14 +338,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ULST, %struct.ULST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = lshr i64 %0, 8 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ultc86(%struct.ULST* noundef byval(%struct.ULST) align 8 %s) { +define i64 @ultc86(ptr noundef byval(%struct.ULST) align 8 %s) { ; CHECK-LABEL: ultc86: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -376,14 +353,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ULST, %struct.ULST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = lshr i64 %0, 16 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ultc85(%struct.ULST* noundef byval(%struct.ULST) align 8 %s) { +define i64 @ultc85(ptr noundef byval(%struct.ULST) align 8 %s) { ; CHECK-LABEL: ultc85: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -392,14 +368,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ULST, %struct.ULST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = lshr i64 %0, 24 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ultc84(%struct.ULST* noundef byval(%struct.ULST) align 8 %s) { +define i64 @ultc84(ptr noundef byval(%struct.ULST) align 8 %s) { ; CHECK-LABEL: ultc84: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -408,14 +383,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ULST, %struct.ULST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = lshr i64 %0, 32 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ultc83(%struct.ULST* noundef byval(%struct.ULST) align 8 %s) { +define i64 @ultc83(ptr noundef byval(%struct.ULST) align 8 %s) { ; CHECK-LABEL: ultc83: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -424,14 +398,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ULST, %struct.ULST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = lshr i64 %0, 40 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ultc82(%struct.ULST* noundef byval(%struct.ULST) align 8 %s) { +define i64 @ultc82(ptr noundef byval(%struct.ULST) align 8 %s) { ; CHECK-LABEL: ultc82: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -440,14 +413,13 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ULST, %struct.ULST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = lshr i64 %0, 48 ret i64 %shr } ; Function Attrs: nounwind -define i64 @ultc81(%struct.ULST* noundef byval(%struct.ULST) align 8 %s) { +define i64 @ultc81(ptr noundef byval(%struct.ULST) align 8 %s) { ; CHECK-LABEL: ultc81: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: mr 5, 3 @@ -456,8 +428,7 @@ ; CHECK-NEXT: std 4, 56(1) ; CHECK-NEXT: blr entry: - %a = getelementptr inbounds %struct.ULST, %struct.ULST* %s, i32 0, i32 0 - %0 = load i64, i64* %a, align 8 + %0 = load i64, ptr %s, align 8 %shr = lshr i64 %0, 56 ret i64 %shr } Index: llvm/test/CodeGen/PowerPC/store-load-fwd.ll =================================================================== --- llvm/test/CodeGen/PowerPC/store-load-fwd.ll +++ llvm/test/CodeGen/PowerPC/store-load-fwd.ll @@ -1,8 +1,8 @@ ; RUN: llc -verify-machineinstrs < %s -mtriple=ppc32-- | not grep lwz -define i32 @test(i32* %P) { - store i32 1, i32* %P - %V = load i32, i32* %P ; [#uses=1] +define i32 @test(ptr %P) { + store i32 1, ptr %P + %V = load i32, ptr %P ; [#uses=1] ret i32 %V } Index: llvm/test/CodeGen/PowerPC/store-rightmost-vector-elt.ll =================================================================== --- llvm/test/CodeGen/PowerPC/store-rightmost-vector-elt.ll +++ llvm/test/CodeGen/PowerPC/store-rightmost-vector-elt.ll @@ -7,7 +7,7 @@ ; RUN: -mcpu=pwr10 -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \ ; RUN: < %s | FileCheck %s --check-prefix=CHECK-BE -define void @test1(<4 x i32> %A, i32* %a) { +define void @test1(<4 x i32> %A, ptr %a) { ; CHECK-LE-LABEL: test1: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: stxvrwx v2, 0, r5 @@ -20,11 +20,11 @@ ; CHECK-BE-NEXT: blr entry: %vecext = extractelement <4 x i32> %A, i32 0 - store i32 %vecext, i32* %a, align 4 + store i32 %vecext, ptr %a, align 4 ret void } -define void @test2(<4 x float> %A, float* %a) { +define void @test2(<4 x float> %A, ptr %a) { ; CHECK-LE-LABEL: test2: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: stxvrwx v2, 0, r5 @@ -37,11 +37,11 @@ ; CHECK-BE-NEXT: blr entry: %vecext = extractelement <4 x float> %A, i32 0 - store float %vecext, float* %a, align 4 + store float %vecext, ptr %a, align 4 ret void } -define void @test3(<2 x double> %A, double* %a) { +define void @test3(<2 x double> %A, ptr %a) { ; CHECK-LE-LABEL: test3: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: stxvrdx v2, 0, r5 @@ -53,11 +53,11 @@ ; CHECK-BE-NEXT: blr entry: %vecext = extractelement <2 x double> %A, i32 0 - store double %vecext, double* %a, align 8 + store double %vecext, ptr %a, align 8 ret void } -define void @test4(<2 x i64> %A, i64* %a) { +define void @test4(<2 x i64> %A, ptr %a) { ; CHECK-LE-LABEL: test4: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: stxvrdx v2, 0, r5 @@ -69,11 +69,11 @@ ; CHECK-BE-NEXT: blr entry: %vecext = extractelement <2 x i64> %A, i32 0 - store i64 %vecext, i64* %a, align 8 + store i64 %vecext, ptr %a, align 8 ret void } -define void @test5(<8 x i16> %A, i16* %a) { +define void @test5(<8 x i16> %A, ptr %a) { ; CHECK-LE-LABEL: test5: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: stxvrhx v2, 0, r5 @@ -86,11 +86,11 @@ ; CHECK-BE-NEXT: blr entry: %vecext = extractelement <8 x i16> %A, i32 0 - store i16 %vecext, i16* %a, align 2 + store i16 %vecext, ptr %a, align 2 ret void } -define void @test6(<16 x i8> %A, i8* %a) { +define void @test6(<16 x i8> %A, ptr %a) { ; CHECK-LE-LABEL: test6: ; CHECK-LE: # %bb.0: # %entry ; CHECK-LE-NEXT: stxvrbx v2, 0, r5 @@ -103,7 +103,7 @@ ; CHECK-BE-NEXT: blr entry: %vecext = extractelement <16 x i8> %A, i32 0 - store i8 %vecext, i8* %a, align 1 + store i8 %vecext, ptr %a, align 1 ret void } Index: llvm/test/CodeGen/PowerPC/store-update.ll =================================================================== --- llvm/test/CodeGen/PowerPC/store-update.ll +++ llvm/test/CodeGen/PowerPC/store-update.ll @@ -3,44 +3,44 @@ 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-f128:128:128-v128:128:128-n32:64" target triple = "powerpc64-unknown-linux-gnu" -define i8* @test_stbu(i8* %base, i8 zeroext %val) nounwind { +define ptr @test_stbu(ptr %base, i8 zeroext %val) nounwind { entry: - %arrayidx = getelementptr inbounds i8, i8* %base, i64 16 - store i8 %val, i8* %arrayidx, align 1 - ret i8* %arrayidx + %arrayidx = getelementptr inbounds i8, ptr %base, i64 16 + store i8 %val, ptr %arrayidx, align 1 + ret ptr %arrayidx } ; CHECK: @test_stbu ; CHECK: %entry ; CHECK-NEXT: stbu ; CHECK-NEXT: blr -define i8* @test_stbux(i8* %base, i8 zeroext %val, i64 %offset) nounwind { +define ptr @test_stbux(ptr %base, i8 zeroext %val, i64 %offset) nounwind { entry: - %arrayidx = getelementptr inbounds i8, i8* %base, i64 %offset - store i8 %val, i8* %arrayidx, align 1 - ret i8* %arrayidx + %arrayidx = getelementptr inbounds i8, ptr %base, i64 %offset + store i8 %val, ptr %arrayidx, align 1 + ret ptr %arrayidx } ; CHECK: @test_stbux ; CHECK: %entry ; CHECK-NEXT: stbux ; CHECK-NEXT: blr -define i16* @test_sthu(i16* %base, i16 zeroext %val) nounwind { +define ptr @test_sthu(ptr %base, i16 zeroext %val) nounwind { entry: - %arrayidx = getelementptr inbounds i16, i16* %base, i64 16 - store i16 %val, i16* %arrayidx, align 2 - ret i16* %arrayidx + %arrayidx = getelementptr inbounds i16, ptr %base, i64 16 + store i16 %val, ptr %arrayidx, align 2 + ret ptr %arrayidx } ; CHECK: @test_sthu ; CHECK: %entry ; CHECK-NEXT: sthu ; CHECK-NEXT: blr -define i16* @test_sthux(i16* %base, i16 zeroext %val, i64 %offset) nounwind { +define ptr @test_sthux(ptr %base, i16 zeroext %val, i64 %offset) nounwind { entry: - %arrayidx = getelementptr inbounds i16, i16* %base, i64 %offset - store i16 %val, i16* %arrayidx, align 2 - ret i16* %arrayidx + %arrayidx = getelementptr inbounds i16, ptr %base, i64 %offset + store i16 %val, ptr %arrayidx, align 2 + ret ptr %arrayidx } ; CHECK: @test_sthux ; CHECK: %entry @@ -48,22 +48,22 @@ ; CHECK-NEXT: sthux ; CHECK-NEXT: blr -define i32* @test_stwu(i32* %base, i32 zeroext %val) nounwind { +define ptr @test_stwu(ptr %base, i32 zeroext %val) nounwind { entry: - %arrayidx = getelementptr inbounds i32, i32* %base, i64 16 - store i32 %val, i32* %arrayidx, align 4 - ret i32* %arrayidx + %arrayidx = getelementptr inbounds i32, ptr %base, i64 16 + store i32 %val, ptr %arrayidx, align 4 + ret ptr %arrayidx } ; CHECK: @test_stwu ; CHECK: %entry ; CHECK-NEXT: stwu ; CHECK-NEXT: blr -define i32* @test_stwux(i32* %base, i32 zeroext %val, i64 %offset) nounwind { +define ptr @test_stwux(ptr %base, i32 zeroext %val, i64 %offset) nounwind { entry: - %arrayidx = getelementptr inbounds i32, i32* %base, i64 %offset - store i32 %val, i32* %arrayidx, align 4 - ret i32* %arrayidx + %arrayidx = getelementptr inbounds i32, ptr %base, i64 %offset + store i32 %val, ptr %arrayidx, align 4 + ret ptr %arrayidx } ; CHECK: @test_stwux ; CHECK: %entry @@ -71,48 +71,48 @@ ; CHECK-NEXT: stwux ; CHECK-NEXT: blr -define i8* @test_stbu8(i8* %base, i64 %val) nounwind { +define ptr @test_stbu8(ptr %base, i64 %val) nounwind { entry: %conv = trunc i64 %val to i8 - %arrayidx = getelementptr inbounds i8, i8* %base, i64 16 - store i8 %conv, i8* %arrayidx, align 1 - ret i8* %arrayidx + %arrayidx = getelementptr inbounds i8, ptr %base, i64 16 + store i8 %conv, ptr %arrayidx, align 1 + ret ptr %arrayidx } ; CHECK: @test_stbu8 ; CHECK: %entry ; CHECK-NEXT: stbu ; CHECK-NEXT: blr -define i8* @test_stbux8(i8* %base, i64 %val, i64 %offset) nounwind { +define ptr @test_stbux8(ptr %base, i64 %val, i64 %offset) nounwind { entry: %conv = trunc i64 %val to i8 - %arrayidx = getelementptr inbounds i8, i8* %base, i64 %offset - store i8 %conv, i8* %arrayidx, align 1 - ret i8* %arrayidx + %arrayidx = getelementptr inbounds i8, ptr %base, i64 %offset + store i8 %conv, ptr %arrayidx, align 1 + ret ptr %arrayidx } ; CHECK: @test_stbux8 ; CHECK: %entry ; CHECK-NEXT: stbux ; CHECK-NEXT: blr -define i16* @test_sthu8(i16* %base, i64 %val) nounwind { +define ptr @test_sthu8(ptr %base, i64 %val) nounwind { entry: %conv = trunc i64 %val to i16 - %arrayidx = getelementptr inbounds i16, i16* %base, i64 16 - store i16 %conv, i16* %arrayidx, align 2 - ret i16* %arrayidx + %arrayidx = getelementptr inbounds i16, ptr %base, i64 16 + store i16 %conv, ptr %arrayidx, align 2 + ret ptr %arrayidx } ; CHECK: @test_sthu ; CHECK: %entry ; CHECK-NEXT: sthu ; CHECK-NEXT: blr -define i16* @test_sthux8(i16* %base, i64 %val, i64 %offset) nounwind { +define ptr @test_sthux8(ptr %base, i64 %val, i64 %offset) nounwind { entry: %conv = trunc i64 %val to i16 - %arrayidx = getelementptr inbounds i16, i16* %base, i64 %offset - store i16 %conv, i16* %arrayidx, align 2 - ret i16* %arrayidx + %arrayidx = getelementptr inbounds i16, ptr %base, i64 %offset + store i16 %conv, ptr %arrayidx, align 2 + ret ptr %arrayidx } ; CHECK: @test_sthux ; CHECK: %entry @@ -120,24 +120,24 @@ ; CHECK-NEXT: sthux ; CHECK-NEXT: blr -define i32* @test_stwu8(i32* %base, i64 %val) nounwind { +define ptr @test_stwu8(ptr %base, i64 %val) nounwind { entry: %conv = trunc i64 %val to i32 - %arrayidx = getelementptr inbounds i32, i32* %base, i64 16 - store i32 %conv, i32* %arrayidx, align 4 - ret i32* %arrayidx + %arrayidx = getelementptr inbounds i32, ptr %base, i64 16 + store i32 %conv, ptr %arrayidx, align 4 + ret ptr %arrayidx } ; CHECK: @test_stwu ; CHECK: %entry ; CHECK-NEXT: stwu ; CHECK-NEXT: blr -define i32* @test_stwux8(i32* %base, i64 %val, i64 %offset) nounwind { +define ptr @test_stwux8(ptr %base, i64 %val, i64 %offset) nounwind { entry: %conv = trunc i64 %val to i32 - %arrayidx = getelementptr inbounds i32, i32* %base, i64 %offset - store i32 %conv, i32* %arrayidx, align 4 - ret i32* %arrayidx + %arrayidx = getelementptr inbounds i32, ptr %base, i64 %offset + store i32 %conv, ptr %arrayidx, align 4 + ret ptr %arrayidx } ; CHECK: @test_stwux ; CHECK: %entry @@ -145,22 +145,22 @@ ; CHECK-NEXT: stwux ; CHECK-NEXT: blr -define i64* @test_stdu(i64* %base, i64 %val) nounwind { +define ptr @test_stdu(ptr %base, i64 %val) nounwind { entry: - %arrayidx = getelementptr inbounds i64, i64* %base, i64 16 - store i64 %val, i64* %arrayidx, align 8 - ret i64* %arrayidx + %arrayidx = getelementptr inbounds i64, ptr %base, i64 16 + store i64 %val, ptr %arrayidx, align 8 + ret ptr %arrayidx } ; CHECK: @test_stdu ; CHECK: %entry ; CHECK-NEXT: stdu ; CHECK-NEXT: blr -define i64* @test_stdux(i64* %base, i64 %val, i64 %offset) nounwind { +define ptr @test_stdux(ptr %base, i64 %val, i64 %offset) nounwind { entry: - %arrayidx = getelementptr inbounds i64, i64* %base, i64 %offset - store i64 %val, i64* %arrayidx, align 8 - ret i64* %arrayidx + %arrayidx = getelementptr inbounds i64, ptr %base, i64 %offset + store i64 %val, ptr %arrayidx, align 8 + ret ptr %arrayidx } ; CHECK: @test_stdux ; CHECK: %entry Index: llvm/test/CodeGen/PowerPC/store_fptoi.ll =================================================================== --- llvm/test/CodeGen/PowerPC/store_fptoi.ll +++ llvm/test/CodeGen/PowerPC/store_fptoi.ll @@ -9,7 +9,7 @@ ; ========================================== ; Function Attrs: norecurse nounwind -define void @qpConv2sdw(fp128* nocapture readonly %a, i64* nocapture %b) { +define void @qpConv2sdw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: qpConv2sdw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxv 2, 0(3) @@ -38,16 +38,16 @@ ; CHECK-PWR8-NEXT: mtlr 0 ; CHECK-PWR8-NEXT: blr entry: - %0 = load fp128, fp128* %a, align 16 + %0 = load fp128, ptr %a, align 16 %conv = fptosi fp128 %0 to i64 - store i64 %conv, i64* %b, align 8 + store i64 %conv, ptr %b, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @qpConv2sw(fp128* nocapture readonly %a, i32* nocapture %b) { +define void @qpConv2sw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: qpConv2sw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxv 2, 0(3) @@ -76,16 +76,16 @@ ; CHECK-PWR8-NEXT: mtlr 0 ; CHECK-PWR8-NEXT: blr entry: - %0 = load fp128, fp128* %a, align 16 + %0 = load fp128, ptr %a, align 16 %conv = fptosi fp128 %0 to i32 - store i32 %conv, i32* %b, align 4 + store i32 %conv, ptr %b, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @qpConv2udw(fp128* nocapture readonly %a, i64* nocapture %b) { +define void @qpConv2udw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: qpConv2udw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxv 2, 0(3) @@ -114,16 +114,16 @@ ; CHECK-PWR8-NEXT: mtlr 0 ; CHECK-PWR8-NEXT: blr entry: - %0 = load fp128, fp128* %a, align 16 + %0 = load fp128, ptr %a, align 16 %conv = fptoui fp128 %0 to i64 - store i64 %conv, i64* %b, align 8 + store i64 %conv, ptr %b, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @qpConv2uw(fp128* nocapture readonly %a, i32* nocapture %b) { +define void @qpConv2uw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: qpConv2uw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lxv 2, 0(3) @@ -152,16 +152,16 @@ ; CHECK-PWR8-NEXT: mtlr 0 ; CHECK-PWR8-NEXT: blr entry: - %0 = load fp128, fp128* %a, align 16 + %0 = load fp128, ptr %a, align 16 %conv = fptoui fp128 %0 to i32 - store i32 %conv, i32* %b, align 4 + store i32 %conv, ptr %b, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2sdw(double* nocapture readonly %a, i64* nocapture %b) { +define void @dpConv2sdw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: dpConv2sdw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -176,16 +176,16 @@ ; CHECK-PWR8-NEXT: stxsdx 0, 0, 4 ; CHECK-PWR8-NEXT: blr entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptosi double %0 to i64 - store i64 %conv, i64* %b, align 8 + store i64 %conv, ptr %b, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2sw(double* nocapture readonly %a, i32* nocapture %b) { +define void @dpConv2sw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: dpConv2sw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -200,16 +200,16 @@ ; CHECK-PWR8-NEXT: stfiwx 0, 0, 4 ; CHECK-PWR8-NEXT: blr entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptosi double %0 to i32 - store i32 %conv, i32* %b, align 4 + store i32 %conv, ptr %b, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2shw(double* nocapture readonly %a, i16* nocapture %b) { +define void @dpConv2shw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: dpConv2shw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -225,16 +225,16 @@ ; CHECK-PWR8-NEXT: sth 3, 0(4) ; CHECK-PWR8-NEXT: blr entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptosi double %0 to i16 - store i16 %conv, i16* %b, align 2 + store i16 %conv, ptr %b, align 2 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2sb(double* nocapture readonly %a, i8* nocapture %b) { +define void @dpConv2sb(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: dpConv2sb: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -250,16 +250,16 @@ ; CHECK-PWR8-NEXT: stb 3, 0(4) ; CHECK-PWR8-NEXT: blr entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptosi double %0 to i8 - store i8 %conv, i8* %b, align 1 + store i8 %conv, ptr %b, align 1 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2sdw(float* nocapture readonly %a, i64* nocapture %b) { +define void @spConv2sdw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: spConv2sdw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -274,16 +274,16 @@ ; CHECK-PWR8-NEXT: stxsdx 0, 0, 4 ; CHECK-PWR8-NEXT: blr entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptosi float %0 to i64 - store i64 %conv, i64* %b, align 8 + store i64 %conv, ptr %b, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2sw(float* nocapture readonly %a, i32* nocapture %b) { +define void @spConv2sw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: spConv2sw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -298,16 +298,16 @@ ; CHECK-PWR8-NEXT: stfiwx 0, 0, 4 ; CHECK-PWR8-NEXT: blr entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptosi float %0 to i32 - store i32 %conv, i32* %b, align 4 + store i32 %conv, ptr %b, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2shw(float* nocapture readonly %a, i16* nocapture %b) { +define void @spConv2shw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: spConv2shw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -323,16 +323,16 @@ ; CHECK-PWR8-NEXT: sth 3, 0(4) ; CHECK-PWR8-NEXT: blr entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptosi float %0 to i16 - store i16 %conv, i16* %b, align 2 + store i16 %conv, ptr %b, align 2 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2sb(float* nocapture readonly %a, i8* nocapture %b) { +define void @spConv2sb(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: spConv2sb: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -348,16 +348,16 @@ ; CHECK-PWR8-NEXT: stb 3, 0(4) ; CHECK-PWR8-NEXT: blr entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptosi float %0 to i8 - store i8 %conv, i8* %b, align 1 + store i8 %conv, ptr %b, align 1 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2sdw_x(double* nocapture readonly %a, i64* nocapture %b, +define void @dpConv2sdw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: dpConv2sdw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -375,18 +375,18 @@ ; CHECK-PWR8-NEXT: blr i32 signext %idx) { entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptosi double %0 to i64 %idxprom = sext i32 %idx to i64 - %arrayidx = getelementptr inbounds i64, i64* %b, i64 %idxprom - store i64 %conv, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %b, i64 %idxprom + store i64 %conv, ptr %arrayidx, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2sw_x(double* nocapture readonly %a, i32* nocapture %b, +define void @dpConv2sw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: dpConv2sw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -404,18 +404,18 @@ ; CHECK-PWR8-NEXT: blr i32 signext %idx) { entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptosi double %0 to i32 %idxprom = sext i32 %idx to i64 - %arrayidx = getelementptr inbounds i32, i32* %b, i64 %idxprom - store i32 %conv, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %b, i64 %idxprom + store i32 %conv, ptr %arrayidx, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2shw_x(double* nocapture readonly %a, i16* nocapture %b, +define void @dpConv2shw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: dpConv2shw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -434,18 +434,18 @@ ; CHECK-PWR8-NEXT: blr i32 signext %idx) { entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptosi double %0 to i16 %idxprom = sext i32 %idx to i64 - %arrayidx = getelementptr inbounds i16, i16* %b, i64 %idxprom - store i16 %conv, i16* %arrayidx, align 2 + %arrayidx = getelementptr inbounds i16, ptr %b, i64 %idxprom + store i16 %conv, ptr %arrayidx, align 2 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2sb_x(double* nocapture readonly %a, i8* nocapture %b, +define void @dpConv2sb_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: dpConv2sb_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -462,18 +462,18 @@ ; CHECK-PWR8-NEXT: blr i32 signext %idx) { entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptosi double %0 to i8 %idxprom = sext i32 %idx to i64 - %arrayidx = getelementptr inbounds i8, i8* %b, i64 %idxprom - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %b, i64 %idxprom + store i8 %conv, ptr %arrayidx, align 1 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2sdw_x(float* nocapture readonly %a, i64* nocapture %b, +define void @spConv2sdw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: spConv2sdw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -491,18 +491,18 @@ ; CHECK-PWR8-NEXT: blr i32 signext %idx) { entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptosi float %0 to i64 %idxprom = sext i32 %idx to i64 - %arrayidx = getelementptr inbounds i64, i64* %b, i64 %idxprom - store i64 %conv, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %b, i64 %idxprom + store i64 %conv, ptr %arrayidx, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2sw_x(float* nocapture readonly %a, i32* nocapture %b, +define void @spConv2sw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: spConv2sw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -520,18 +520,18 @@ ; CHECK-PWR8-NEXT: blr i32 signext %idx) { entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptosi float %0 to i32 %idxprom = sext i32 %idx to i64 - %arrayidx = getelementptr inbounds i32, i32* %b, i64 %idxprom - store i32 %conv, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %b, i64 %idxprom + store i32 %conv, ptr %arrayidx, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2shw_x(float* nocapture readonly %a, i16* nocapture %b, +define void @spConv2shw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: spConv2shw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -550,18 +550,18 @@ ; CHECK-PWR8-NEXT: blr i32 signext %idx) { entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptosi float %0 to i16 %idxprom = sext i32 %idx to i64 - %arrayidx = getelementptr inbounds i16, i16* %b, i64 %idxprom - store i16 %conv, i16* %arrayidx, align 2 + %arrayidx = getelementptr inbounds i16, ptr %b, i64 %idxprom + store i16 %conv, ptr %arrayidx, align 2 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2sb_x(float* nocapture readonly %a, i8* nocapture %b, +define void @spConv2sb_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: spConv2sb_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -578,11 +578,11 @@ ; CHECK-PWR8-NEXT: blr i32 signext %idx) { entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptosi float %0 to i8 %idxprom = sext i32 %idx to i64 - %arrayidx = getelementptr inbounds i8, i8* %b, i64 %idxprom - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %b, i64 %idxprom + store i8 %conv, ptr %arrayidx, align 1 ret void @@ -593,7 +593,7 @@ ; ========================================== ; Function Attrs: norecurse nounwind -define void @dpConv2udw(double* nocapture readonly %a, i64* nocapture %b) { +define void @dpConv2udw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: dpConv2udw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -608,16 +608,16 @@ ; CHECK-PWR8-NEXT: stxsdx 0, 0, 4 ; CHECK-PWR8-NEXT: blr entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptoui double %0 to i64 - store i64 %conv, i64* %b, align 8 + store i64 %conv, ptr %b, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2uw(double* nocapture readonly %a, i32* nocapture %b) { +define void @dpConv2uw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: dpConv2uw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -632,16 +632,16 @@ ; CHECK-PWR8-NEXT: stfiwx 0, 0, 4 ; CHECK-PWR8-NEXT: blr entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptoui double %0 to i32 - store i32 %conv, i32* %b, align 4 + store i32 %conv, ptr %b, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2uhw(double* nocapture readonly %a, i16* nocapture %b) { +define void @dpConv2uhw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: dpConv2uhw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -657,16 +657,16 @@ ; CHECK-PWR8-NEXT: sth 3, 0(4) ; CHECK-PWR8-NEXT: blr entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptoui double %0 to i16 - store i16 %conv, i16* %b, align 2 + store i16 %conv, ptr %b, align 2 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2ub(double* nocapture readonly %a, i8* nocapture %b) { +define void @dpConv2ub(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: dpConv2ub: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -682,16 +682,16 @@ ; CHECK-PWR8-NEXT: stb 3, 0(4) ; CHECK-PWR8-NEXT: blr entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptoui double %0 to i8 - store i8 %conv, i8* %b, align 1 + store i8 %conv, ptr %b, align 1 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2udw(float* nocapture readonly %a, i64* nocapture %b) { +define void @spConv2udw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: spConv2udw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -706,16 +706,16 @@ ; CHECK-PWR8-NEXT: stxsdx 0, 0, 4 ; CHECK-PWR8-NEXT: blr entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptoui float %0 to i64 - store i64 %conv, i64* %b, align 8 + store i64 %conv, ptr %b, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2uw(float* nocapture readonly %a, i32* nocapture %b) { +define void @spConv2uw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: spConv2uw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -730,16 +730,16 @@ ; CHECK-PWR8-NEXT: stfiwx 0, 0, 4 ; CHECK-PWR8-NEXT: blr entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptoui float %0 to i32 - store i32 %conv, i32* %b, align 4 + store i32 %conv, ptr %b, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2uhw(float* nocapture readonly %a, i16* nocapture %b) { +define void @spConv2uhw(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: spConv2uhw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -755,16 +755,16 @@ ; CHECK-PWR8-NEXT: sth 3, 0(4) ; CHECK-PWR8-NEXT: blr entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptoui float %0 to i16 - store i16 %conv, i16* %b, align 2 + store i16 %conv, ptr %b, align 2 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2ub(float* nocapture readonly %a, i8* nocapture %b) { +define void @spConv2ub(ptr nocapture readonly %a, ptr nocapture %b) { ; CHECK-LABEL: spConv2ub: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -780,16 +780,16 @@ ; CHECK-PWR8-NEXT: stb 3, 0(4) ; CHECK-PWR8-NEXT: blr entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptoui float %0 to i8 - store i8 %conv, i8* %b, align 1 + store i8 %conv, ptr %b, align 1 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2udw_x(double* nocapture readonly %a, i64* nocapture %b, +define void @dpConv2udw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: dpConv2udw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -807,18 +807,18 @@ ; CHECK-PWR8-NEXT: blr i32 zeroext %idx) { entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptoui double %0 to i64 %idxprom = zext i32 %idx to i64 - %arrayidx = getelementptr inbounds i64, i64* %b, i64 %idxprom - store i64 %conv, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %b, i64 %idxprom + store i64 %conv, ptr %arrayidx, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2uw_x(double* nocapture readonly %a, i32* nocapture %b, +define void @dpConv2uw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: dpConv2uw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -836,18 +836,18 @@ ; CHECK-PWR8-NEXT: blr i32 zeroext %idx) { entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptoui double %0 to i32 %idxprom = zext i32 %idx to i64 - %arrayidx = getelementptr inbounds i32, i32* %b, i64 %idxprom - store i32 %conv, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %b, i64 %idxprom + store i32 %conv, ptr %arrayidx, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2uhw_x(double* nocapture readonly %a, i16* nocapture %b, +define void @dpConv2uhw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: dpConv2uhw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -866,18 +866,18 @@ ; CHECK-PWR8-NEXT: blr i32 zeroext %idx) { entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptoui double %0 to i16 %idxprom = zext i32 %idx to i64 - %arrayidx = getelementptr inbounds i16, i16* %b, i64 %idxprom - store i16 %conv, i16* %arrayidx, align 2 + %arrayidx = getelementptr inbounds i16, ptr %b, i64 %idxprom + store i16 %conv, ptr %arrayidx, align 2 ret void } ; Function Attrs: norecurse nounwind -define void @dpConv2ub_x(double* nocapture readonly %a, i8* nocapture %b, +define void @dpConv2ub_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: dpConv2ub_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfd 0, 0(3) @@ -894,18 +894,18 @@ ; CHECK-PWR8-NEXT: blr i32 zeroext %idx) { entry: - %0 = load double, double* %a, align 8 + %0 = load double, ptr %a, align 8 %conv = fptoui double %0 to i8 %idxprom = zext i32 %idx to i64 - %arrayidx = getelementptr inbounds i8, i8* %b, i64 %idxprom - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %b, i64 %idxprom + store i8 %conv, ptr %arrayidx, align 1 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2udw_x(float* nocapture readonly %a, i64* nocapture %b, +define void @spConv2udw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: spConv2udw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -923,18 +923,18 @@ ; CHECK-PWR8-NEXT: blr i32 zeroext %idx) { entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptoui float %0 to i64 %idxprom = zext i32 %idx to i64 - %arrayidx = getelementptr inbounds i64, i64* %b, i64 %idxprom - store i64 %conv, i64* %arrayidx, align 8 + %arrayidx = getelementptr inbounds i64, ptr %b, i64 %idxprom + store i64 %conv, ptr %arrayidx, align 8 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2uw_x(float* nocapture readonly %a, i32* nocapture %b, +define void @spConv2uw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: spConv2uw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -952,18 +952,18 @@ ; CHECK-PWR8-NEXT: blr i32 zeroext %idx) { entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptoui float %0 to i32 %idxprom = zext i32 %idx to i64 - %arrayidx = getelementptr inbounds i32, i32* %b, i64 %idxprom - store i32 %conv, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %b, i64 %idxprom + store i32 %conv, ptr %arrayidx, align 4 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2uhw_x(float* nocapture readonly %a, i16* nocapture %b, +define void @spConv2uhw_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: spConv2uhw_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -982,18 +982,18 @@ ; CHECK-PWR8-NEXT: blr i32 zeroext %idx) { entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptoui float %0 to i16 %idxprom = zext i32 %idx to i64 - %arrayidx = getelementptr inbounds i16, i16* %b, i64 %idxprom - store i16 %conv, i16* %arrayidx, align 2 + %arrayidx = getelementptr inbounds i16, ptr %b, i64 %idxprom + store i16 %conv, ptr %arrayidx, align 2 ret void } ; Function Attrs: norecurse nounwind -define void @spConv2ub_x(float* nocapture readonly %a, i8* nocapture %b, +define void @spConv2ub_x(ptr nocapture readonly %a, ptr nocapture %b, ; CHECK-LABEL: spConv2ub_x: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: lfs 0, 0(3) @@ -1010,11 +1010,11 @@ ; CHECK-PWR8-NEXT: blr i32 zeroext %idx) { entry: - %0 = load float, float* %a, align 4 + %0 = load float, ptr %a, align 4 %conv = fptoui float %0 to i8 %idxprom = zext i32 %idx to i64 - %arrayidx = getelementptr inbounds i8, i8* %b, i64 %idxprom - store i8 %conv, i8* %arrayidx, align 1 + %arrayidx = getelementptr inbounds i8, ptr %b, i64 %idxprom + store i8 %conv, ptr %arrayidx, align 1 ret void Index: llvm/test/CodeGen/PowerPC/structsinmem.ll =================================================================== --- llvm/test/CodeGen/PowerPC/structsinmem.ll +++ llvm/test/CodeGen/PowerPC/structsinmem.ll @@ -42,21 +42,14 @@ %p5 = alloca %struct.s5, align 4 %p6 = alloca %struct.s6, align 4 %p7 = alloca %struct.s7, align 4 - %0 = bitcast %struct.s1* %p1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* getelementptr inbounds (%struct.s1, %struct.s1* @caller1.p1, i32 0, i32 0), i64 1, i1 false) - %1 = bitcast %struct.s2* %p2 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %1, i8* align 2 bitcast (%struct.s2* @caller1.p2 to i8*), i64 2, i1 false) - %2 = bitcast %struct.s3* %p3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %2, i8* align 2 bitcast ({ i16, i8, i8 }* @caller1.p3 to i8*), i64 4, i1 false) - %3 = bitcast %struct.s4* %p4 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 bitcast (%struct.s4* @caller1.p4 to i8*), i64 4, i1 false) - %4 = bitcast %struct.s5* %p5 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %4, i8* align 4 bitcast ({ i32, i8, [3 x i8] }* @caller1.p5 to i8*), i64 8, i1 false) - %5 = bitcast %struct.s6* %p6 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 bitcast ({ i32, i16, [2 x i8] }* @caller1.p6 to i8*), i64 8, i1 false) - %6 = bitcast %struct.s7* %p7 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 bitcast ({ i32, i16, i8, i8 }* @caller1.p7 to i8*), i64 8, i1 false) - %call = call i32 @callee1(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, %struct.s1* byval(%struct.s1) %p1, %struct.s2* byval(%struct.s2) %p2, %struct.s3* byval(%struct.s3) %p3, %struct.s4* byval(%struct.s4) %p4, %struct.s5* byval(%struct.s5) %p5, %struct.s6* byval(%struct.s6) %p6, %struct.s7* byval(%struct.s7) %p7) + call void @llvm.memcpy.p0.p0.i64(ptr %p1, ptr @caller1.p1, i64 1, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 2 %p2, ptr align 2 @caller1.p2, i64 2, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 2 %p3, ptr align 2 @caller1.p3, i64 4, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %p4, ptr align 4 @caller1.p4, i64 4, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %p5, ptr align 4 @caller1.p5, i64 8, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %p6, ptr align 4 @caller1.p6, i64 8, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %p7, ptr align 4 @caller1.p7, i64 8, i1 false) + %call = call i32 @callee1(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, ptr byval(%struct.s1) %p1, ptr byval(%struct.s2) %p2, ptr byval(%struct.s3) %p3, ptr byval(%struct.s4) %p4, ptr byval(%struct.s5) %p5, ptr byval(%struct.s6) %p6, ptr byval(%struct.s7) %p7) ret i32 %call ; CHECK: stb {{[0-9]+}}, 119(1) @@ -68,9 +61,9 @@ ; CHECK: std {{[0-9]+}}, 160(1) } -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i1) nounwind +declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) nounwind -define internal i32 @callee1(i32 %z1, i32 %z2, i32 %z3, i32 %z4, i32 %z5, i32 %z6, i32 %z7, i32 %z8, %struct.s1* byval(%struct.s1) %v1, %struct.s2* byval(%struct.s2) %v2, %struct.s3* byval(%struct.s3) %v3, %struct.s4* byval(%struct.s4) %v4, %struct.s5* byval(%struct.s5) %v5, %struct.s6* byval(%struct.s6) %v6, %struct.s7* byval(%struct.s7) %v7) nounwind { +define internal i32 @callee1(i32 %z1, i32 %z2, i32 %z3, i32 %z4, i32 %z5, i32 %z6, i32 %z7, i32 %z8, ptr byval(%struct.s1) %v1, ptr byval(%struct.s2) %v2, ptr byval(%struct.s3) %v3, ptr byval(%struct.s4) %v4, ptr byval(%struct.s5) %v5, ptr byval(%struct.s6) %v6, ptr byval(%struct.s7) %v7) nounwind { entry: %z1.addr = alloca i32, align 4 %z2.addr = alloca i32, align 4 @@ -80,36 +73,29 @@ %z6.addr = alloca i32, align 4 %z7.addr = alloca i32, align 4 %z8.addr = alloca i32, align 4 - store i32 %z1, i32* %z1.addr, align 4 - store i32 %z2, i32* %z2.addr, align 4 - store i32 %z3, i32* %z3.addr, align 4 - store i32 %z4, i32* %z4.addr, align 4 - store i32 %z5, i32* %z5.addr, align 4 - store i32 %z6, i32* %z6.addr, align 4 - store i32 %z7, i32* %z7.addr, align 4 - store i32 %z8, i32* %z8.addr, align 4 - %a = getelementptr inbounds %struct.s1, %struct.s1* %v1, i32 0, i32 0 - %0 = load i8, i8* %a, align 1 + store i32 %z1, ptr %z1.addr, align 4 + store i32 %z2, ptr %z2.addr, align 4 + store i32 %z3, ptr %z3.addr, align 4 + store i32 %z4, ptr %z4.addr, align 4 + store i32 %z5, ptr %z5.addr, align 4 + store i32 %z6, ptr %z6.addr, align 4 + store i32 %z7, ptr %z7.addr, align 4 + store i32 %z8, ptr %z8.addr, align 4 + %0 = load i8, ptr %v1, align 1 %conv = zext i8 %0 to i32 - %a1 = getelementptr inbounds %struct.s2, %struct.s2* %v2, i32 0, i32 0 - %1 = load i16, i16* %a1, align 2 + %1 = load i16, ptr %v2, align 2 %conv2 = sext i16 %1 to i32 %add = add nsw i32 %conv, %conv2 - %a3 = getelementptr inbounds %struct.s3, %struct.s3* %v3, i32 0, i32 0 - %2 = load i16, i16* %a3, align 2 + %2 = load i16, ptr %v3, align 2 %conv4 = sext i16 %2 to i32 %add5 = add nsw i32 %add, %conv4 - %a6 = getelementptr inbounds %struct.s4, %struct.s4* %v4, i32 0, i32 0 - %3 = load i32, i32* %a6, align 4 + %3 = load i32, ptr %v4, align 4 %add7 = add nsw i32 %add5, %3 - %a8 = getelementptr inbounds %struct.s5, %struct.s5* %v5, i32 0, i32 0 - %4 = load i32, i32* %a8, align 4 + %4 = load i32, ptr %v5, align 4 %add9 = add nsw i32 %add7, %4 - %a10 = getelementptr inbounds %struct.s6, %struct.s6* %v6, i32 0, i32 0 - %5 = load i32, i32* %a10, align 4 + %5 = load i32, ptr %v6, align 4 %add11 = add nsw i32 %add9, %5 - %a12 = getelementptr inbounds %struct.s7, %struct.s7* %v7, i32 0, i32 0 - %6 = load i32, i32* %a12, align 4 + %6 = load i32, ptr %v7, align 4 %add13 = add nsw i32 %add11, %6 ret i32 %add13 @@ -131,21 +117,14 @@ %p5 = alloca %struct.t5, align 1 %p6 = alloca %struct.t6, align 1 %p7 = alloca %struct.t7, align 1 - %0 = bitcast %struct.t1* %p1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* getelementptr inbounds (%struct.t1, %struct.t1* @caller2.p1, i32 0, i32 0), i64 1, i1 false) - %1 = bitcast %struct.t2* %p2 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* bitcast ({ i16 }* @caller2.p2 to i8*), i64 2, i1 false) - %2 = bitcast %struct.t3* %p3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* bitcast (%struct.t3* @caller2.p3 to i8*), i64 3, i1 false) - %3 = bitcast %struct.t4* %p4 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i32 }* @caller2.p4 to i8*), i64 4, i1 false) - %4 = bitcast %struct.t5* %p5 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* bitcast (%struct.t5* @caller2.p5 to i8*), i64 5, i1 false) - %5 = bitcast %struct.t6* %p6 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* bitcast (%struct.t6* @caller2.p6 to i8*), i64 6, i1 false) - %6 = bitcast %struct.t7* %p7 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* bitcast (%struct.t7* @caller2.p7 to i8*), i64 7, i1 false) - %call = call i32 @callee2(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, %struct.t1* byval(%struct.t1) %p1, %struct.t2* byval(%struct.t2) %p2, %struct.t3* byval(%struct.t3) %p3, %struct.t4* byval(%struct.t4) %p4, %struct.t5* byval(%struct.t5) %p5, %struct.t6* byval(%struct.t6) %p6, %struct.t7* byval(%struct.t7) %p7) + call void @llvm.memcpy.p0.p0.i64(ptr %p1, ptr @caller2.p1, i64 1, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p2, ptr @caller2.p2, i64 2, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p3, ptr @caller2.p3, i64 3, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p4, ptr @caller2.p4, i64 4, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p5, ptr @caller2.p5, i64 5, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p6, ptr @caller2.p6, i64 6, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p7, ptr @caller2.p7, i64 7, i1 false) + %call = call i32 @callee2(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, ptr byval(%struct.t1) %p1, ptr byval(%struct.t2) %p2, ptr byval(%struct.t3) %p3, ptr byval(%struct.t4) %p4, ptr byval(%struct.t5) %p5, ptr byval(%struct.t6) %p6, ptr byval(%struct.t7) %p7) ret i32 %call ; CHECK: stb {{[0-9]+}}, 119(1) @@ -161,7 +140,7 @@ ; CHECK: stw {{[0-9]+}}, 161(1) } -define internal i32 @callee2(i32 %z1, i32 %z2, i32 %z3, i32 %z4, i32 %z5, i32 %z6, i32 %z7, i32 %z8, %struct.t1* byval(%struct.t1) %v1, %struct.t2* byval(%struct.t2) %v2, %struct.t3* byval(%struct.t3) %v3, %struct.t4* byval(%struct.t4) %v4, %struct.t5* byval(%struct.t5) %v5, %struct.t6* byval(%struct.t6) %v6, %struct.t7* byval(%struct.t7) %v7) nounwind { +define internal i32 @callee2(i32 %z1, i32 %z2, i32 %z3, i32 %z4, i32 %z5, i32 %z6, i32 %z7, i32 %z8, ptr byval(%struct.t1) %v1, ptr byval(%struct.t2) %v2, ptr byval(%struct.t3) %v3, ptr byval(%struct.t4) %v4, ptr byval(%struct.t5) %v5, ptr byval(%struct.t6) %v6, ptr byval(%struct.t7) %v7) nounwind { entry: %z1.addr = alloca i32, align 4 %z2.addr = alloca i32, align 4 @@ -171,36 +150,29 @@ %z6.addr = alloca i32, align 4 %z7.addr = alloca i32, align 4 %z8.addr = alloca i32, align 4 - store i32 %z1, i32* %z1.addr, align 4 - store i32 %z2, i32* %z2.addr, align 4 - store i32 %z3, i32* %z3.addr, align 4 - store i32 %z4, i32* %z4.addr, align 4 - store i32 %z5, i32* %z5.addr, align 4 - store i32 %z6, i32* %z6.addr, align 4 - store i32 %z7, i32* %z7.addr, align 4 - store i32 %z8, i32* %z8.addr, align 4 - %a = getelementptr inbounds %struct.t1, %struct.t1* %v1, i32 0, i32 0 - %0 = load i8, i8* %a, align 1 + store i32 %z1, ptr %z1.addr, align 4 + store i32 %z2, ptr %z2.addr, align 4 + store i32 %z3, ptr %z3.addr, align 4 + store i32 %z4, ptr %z4.addr, align 4 + store i32 %z5, ptr %z5.addr, align 4 + store i32 %z6, ptr %z6.addr, align 4 + store i32 %z7, ptr %z7.addr, align 4 + store i32 %z8, ptr %z8.addr, align 4 + %0 = load i8, ptr %v1, align 1 %conv = zext i8 %0 to i32 - %a1 = getelementptr inbounds %struct.t2, %struct.t2* %v2, i32 0, i32 0 - %1 = load i16, i16* %a1, align 1 + %1 = load i16, ptr %v2, align 1 %conv2 = sext i16 %1 to i32 %add = add nsw i32 %conv, %conv2 - %a3 = getelementptr inbounds %struct.t3, %struct.t3* %v3, i32 0, i32 0 - %2 = load i16, i16* %a3, align 1 + %2 = load i16, ptr %v3, align 1 %conv4 = sext i16 %2 to i32 %add5 = add nsw i32 %add, %conv4 - %a6 = getelementptr inbounds %struct.t4, %struct.t4* %v4, i32 0, i32 0 - %3 = load i32, i32* %a6, align 1 + %3 = load i32, ptr %v4, align 1 %add7 = add nsw i32 %add5, %3 - %a8 = getelementptr inbounds %struct.t5, %struct.t5* %v5, i32 0, i32 0 - %4 = load i32, i32* %a8, align 1 + %4 = load i32, ptr %v5, align 1 %add9 = add nsw i32 %add7, %4 - %a10 = getelementptr inbounds %struct.t6, %struct.t6* %v6, i32 0, i32 0 - %5 = load i32, i32* %a10, align 1 + %5 = load i32, ptr %v6, align 1 %add11 = add nsw i32 %add9, %5 - %a12 = getelementptr inbounds %struct.t7, %struct.t7* %v7, i32 0, i32 0 - %6 = load i32, i32* %a12, align 1 + %6 = load i32, ptr %v7, align 1 %add13 = add nsw i32 %add11, %6 ret i32 %add13 Index: llvm/test/CodeGen/PowerPC/structsinregs.ll =================================================================== --- llvm/test/CodeGen/PowerPC/structsinregs.ll +++ llvm/test/CodeGen/PowerPC/structsinregs.ll @@ -42,21 +42,14 @@ %p5 = alloca %struct.s5, align 4 %p6 = alloca %struct.s6, align 4 %p7 = alloca %struct.s7, align 4 - %0 = bitcast %struct.s1* %p1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* getelementptr inbounds (%struct.s1, %struct.s1* @caller1.p1, i32 0, i32 0), i64 1, i1 false) - %1 = bitcast %struct.s2* %p2 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %1, i8* align 2 bitcast (%struct.s2* @caller1.p2 to i8*), i64 2, i1 false) - %2 = bitcast %struct.s3* %p3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %2, i8* align 2 bitcast ({ i16, i8, i8 }* @caller1.p3 to i8*), i64 4, i1 false) - %3 = bitcast %struct.s4* %p4 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 bitcast (%struct.s4* @caller1.p4 to i8*), i64 4, i1 false) - %4 = bitcast %struct.s5* %p5 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %4, i8* align 4 bitcast ({ i32, i8, [3 x i8] }* @caller1.p5 to i8*), i64 8, i1 false) - %5 = bitcast %struct.s6* %p6 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 bitcast ({ i32, i16, [2 x i8] }* @caller1.p6 to i8*), i64 8, i1 false) - %6 = bitcast %struct.s7* %p7 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 bitcast ({ i32, i16, i8, i8 }* @caller1.p7 to i8*), i64 8, i1 false) - %call = call i32 @callee1(%struct.s1* byval(%struct.s1) %p1, %struct.s2* byval(%struct.s2) %p2, %struct.s3* byval(%struct.s3) %p3, %struct.s4* byval(%struct.s4) %p4, %struct.s5* byval(%struct.s5) %p5, %struct.s6* byval(%struct.s6) %p6, %struct.s7* byval(%struct.s7) %p7) + call void @llvm.memcpy.p0.p0.i64(ptr %p1, ptr @caller1.p1, i64 1, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 2 %p2, ptr align 2 @caller1.p2, i64 2, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 2 %p3, ptr align 2 @caller1.p3, i64 4, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %p4, ptr align 4 @caller1.p4, i64 4, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %p5, ptr align 4 @caller1.p5, i64 8, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %p6, ptr align 4 @caller1.p6, i64 8, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %p7, ptr align 4 @caller1.p7, i64 8, i1 false) + %call = call i32 @callee1(ptr byval(%struct.s1) %p1, ptr byval(%struct.s2) %p2, ptr byval(%struct.s3) %p3, ptr byval(%struct.s4) %p4, ptr byval(%struct.s5) %p5, ptr byval(%struct.s6) %p6, ptr byval(%struct.s7) %p7) ret i32 %call ; CHECK-LABEL: caller1 @@ -69,32 +62,25 @@ ; CHECK: lbz 3, 160(31) } -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i1) nounwind +declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) nounwind -define internal i32 @callee1(%struct.s1* byval(%struct.s1) %v1, %struct.s2* byval(%struct.s2) %v2, %struct.s3* byval(%struct.s3) %v3, %struct.s4* byval(%struct.s4) %v4, %struct.s5* byval(%struct.s5) %v5, %struct.s6* byval(%struct.s6) %v6, %struct.s7* byval(%struct.s7) %v7) nounwind { +define internal i32 @callee1(ptr byval(%struct.s1) %v1, ptr byval(%struct.s2) %v2, ptr byval(%struct.s3) %v3, ptr byval(%struct.s4) %v4, ptr byval(%struct.s5) %v5, ptr byval(%struct.s6) %v6, ptr byval(%struct.s7) %v7) nounwind { entry: - %a = getelementptr inbounds %struct.s1, %struct.s1* %v1, i32 0, i32 0 - %0 = load i8, i8* %a, align 1 + %0 = load i8, ptr %v1, align 1 %conv = zext i8 %0 to i32 - %a1 = getelementptr inbounds %struct.s2, %struct.s2* %v2, i32 0, i32 0 - %1 = load i16, i16* %a1, align 2 + %1 = load i16, ptr %v2, align 2 %conv2 = sext i16 %1 to i32 %add = add nsw i32 %conv, %conv2 - %a3 = getelementptr inbounds %struct.s3, %struct.s3* %v3, i32 0, i32 0 - %2 = load i16, i16* %a3, align 2 + %2 = load i16, ptr %v3, align 2 %conv4 = sext i16 %2 to i32 %add5 = add nsw i32 %add, %conv4 - %a6 = getelementptr inbounds %struct.s4, %struct.s4* %v4, i32 0, i32 0 - %3 = load i32, i32* %a6, align 4 + %3 = load i32, ptr %v4, align 4 %add7 = add nsw i32 %add5, %3 - %a8 = getelementptr inbounds %struct.s5, %struct.s5* %v5, i32 0, i32 0 - %4 = load i32, i32* %a8, align 4 + %4 = load i32, ptr %v5, align 4 %add9 = add nsw i32 %add7, %4 - %a10 = getelementptr inbounds %struct.s6, %struct.s6* %v6, i32 0, i32 0 - %5 = load i32, i32* %a10, align 4 + %5 = load i32, ptr %v6, align 4 %add11 = add nsw i32 %add9, %5 - %a12 = getelementptr inbounds %struct.s7, %struct.s7* %v7, i32 0, i32 0 - %6 = load i32, i32* %a12, align 4 + %6 = load i32, ptr %v7, align 4 %add13 = add nsw i32 %add11, %6 ret i32 %add13 @@ -124,21 +110,14 @@ %p5 = alloca %struct.t5, align 1 %p6 = alloca %struct.t6, align 1 %p7 = alloca %struct.t7, align 1 - %0 = bitcast %struct.t1* %p1 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* getelementptr inbounds (%struct.t1, %struct.t1* @caller2.p1, i32 0, i32 0), i64 1, i1 false) - %1 = bitcast %struct.t2* %p2 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* bitcast ({ i16 }* @caller2.p2 to i8*), i64 2, i1 false) - %2 = bitcast %struct.t3* %p3 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* bitcast (%struct.t3* @caller2.p3 to i8*), i64 3, i1 false) - %3 = bitcast %struct.t4* %p4 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i32 }* @caller2.p4 to i8*), i64 4, i1 false) - %4 = bitcast %struct.t5* %p5 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* bitcast (%struct.t5* @caller2.p5 to i8*), i64 5, i1 false) - %5 = bitcast %struct.t6* %p6 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* bitcast (%struct.t6* @caller2.p6 to i8*), i64 6, i1 false) - %6 = bitcast %struct.t7* %p7 to i8* - call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* bitcast (%struct.t7* @caller2.p7 to i8*), i64 7, i1 false) - %call = call i32 @callee2(%struct.t1* byval(%struct.t1) %p1, %struct.t2* byval(%struct.t2) %p2, %struct.t3* byval(%struct.t3) %p3, %struct.t4* byval(%struct.t4) %p4, %struct.t5* byval(%struct.t5) %p5, %struct.t6* byval(%struct.t6) %p6, %struct.t7* byval(%struct.t7) %p7) + call void @llvm.memcpy.p0.p0.i64(ptr %p1, ptr @caller2.p1, i64 1, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p2, ptr @caller2.p2, i64 2, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p3, ptr @caller2.p3, i64 3, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p4, ptr @caller2.p4, i64 4, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p5, ptr @caller2.p5, i64 5, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p6, ptr @caller2.p6, i64 6, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr %p7, ptr @caller2.p7, i64 7, i1 false) + %call = call i32 @callee2(ptr byval(%struct.t1) %p1, ptr byval(%struct.t2) %p2, ptr byval(%struct.t3) %p3, ptr byval(%struct.t4) %p4, ptr byval(%struct.t5) %p5, ptr byval(%struct.t6) %p6, ptr byval(%struct.t7) %p7) ret i32 %call ; CHECK-LABEL: caller2 @@ -159,30 +138,23 @@ ; CHECK: lbz 3, 160(31) } -define internal i32 @callee2(%struct.t1* byval(%struct.t1) %v1, %struct.t2* byval(%struct.t2) %v2, %struct.t3* byval(%struct.t3) %v3, %struct.t4* byval(%struct.t4) %v4, %struct.t5* byval(%struct.t5) %v5, %struct.t6* byval(%struct.t6) %v6, %struct.t7* byval(%struct.t7) %v7) nounwind { +define internal i32 @callee2(ptr byval(%struct.t1) %v1, ptr byval(%struct.t2) %v2, ptr byval(%struct.t3) %v3, ptr byval(%struct.t4) %v4, ptr byval(%struct.t5) %v5, ptr byval(%struct.t6) %v6, ptr byval(%struct.t7) %v7) nounwind { entry: - %a = getelementptr inbounds %struct.t1, %struct.t1* %v1, i32 0, i32 0 - %0 = load i8, i8* %a, align 1 + %0 = load i8, ptr %v1, align 1 %conv = zext i8 %0 to i32 - %a1 = getelementptr inbounds %struct.t2, %struct.t2* %v2, i32 0, i32 0 - %1 = load i16, i16* %a1, align 1 + %1 = load i16, ptr %v2, align 1 %conv2 = sext i16 %1 to i32 %add = add nsw i32 %conv, %conv2 - %a3 = getelementptr inbounds %struct.t3, %struct.t3* %v3, i32 0, i32 0 - %2 = load i16, i16* %a3, align 1 + %2 = load i16, ptr %v3, align 1 %conv4 = sext i16 %2 to i32 %add5 = add nsw i32 %add, %conv4 - %a6 = getelementptr inbounds %struct.t4, %struct.t4* %v4, i32 0, i32 0 - %3 = load i32, i32* %a6, align 1 + %3 = load i32, ptr %v4, align 1 %add7 = add nsw i32 %add5, %3 - %a8 = getelementptr inbounds %struct.t5, %struct.t5* %v5, i32 0, i32 0 - %4 = load i32, i32* %a8, align 1 + %4 = load i32, ptr %v5, align 1 %add9 = add nsw i32 %add7, %4 - %a10 = getelementptr inbounds %struct.t6, %struct.t6* %v6, i32 0, i32 0 - %5 = load i32, i32* %a10, align 1 + %5 = load i32, ptr %v6, align 1 %add11 = add nsw i32 %add9, %5 - %a12 = getelementptr inbounds %struct.t7, %struct.t7* %v7, i32 0, i32 0 - %6 = load i32, i32* %a12, align 1 + %6 = load i32, ptr %v7, align 1 %add13 = add nsw i32 %add11, %6 ret i32 %add13 Index: llvm/test/CodeGen/PowerPC/stwu-gta.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stwu-gta.ll +++ llvm/test/CodeGen/PowerPC/stwu-gta.ll @@ -8,8 +8,8 @@ define void @_GLOBAL__I_a() nounwind section ".text.startup" { entry: - store i32 5, i32* getelementptr inbounds (%class.Two.0.5, %class.Two.0.5* @foo, i32 0, i32 0), align 4 - store i32 6, i32* getelementptr inbounds (%class.Two.0.5, %class.Two.0.5* @foo, i32 0, i32 1), align 4 + store i32 5, ptr @foo, align 4 + store i32 6, ptr getelementptr inbounds (%class.Two.0.5, ptr @foo, i32 0, i32 1), align 4 ret void } Index: llvm/test/CodeGen/PowerPC/stwu-sched.ll =================================================================== --- llvm/test/CodeGen/PowerPC/stwu-sched.ll +++ llvm/test/CodeGen/PowerPC/stwu-sched.ll @@ -9,7 +9,7 @@ %0 = type { i32, i32 } ; Function Attrs: norecurse nounwind writeonly -define void @initCombList(%0* nocapture, i32 signext) local_unnamed_addr #0 { +define void @initCombList(ptr nocapture, i32 signext) local_unnamed_addr #0 { ; CHECK-LABEL: initCombList: ; CHECK: addi 4, 4, -8 ; CHECK: stwu [[REG:[0-9]+]], 64(3) @@ -23,7 +23,7 @@ br i1 undef, label %6, label %4 ;