https://github.com/pcc updated https://github.com/llvm/llvm-project/pull/151647

>From 37c355e3264bba72999fa6dcbc565ae82bc1a1a5 Mon Sep 17 00:00:00 2001
From: Peter Collingbourne <[email protected]>
Date: Wed, 26 Nov 2025 11:01:52 -0800
Subject: [PATCH 1/2] Fix tests

Created using spr 1.3.6-beta.1
---
 .../protected-field-pointer-addrspace1.ll                     | 4 ++--
 .../PreISelIntrinsicLowering/protected-field-pointer.ll       | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
 
b/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
index 5493d38eb49ba..6b4c9ef646660 100644
--- 
a/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
+++ 
b/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
@@ -157,11 +157,11 @@ declare ptr addrspace(1) @llvm.protected.field.ptr.p1(ptr 
addrspace(1), i64, i1
 ;.
 ; NOPAUTH: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) }
 ; NOPAUTH: attributes #[[ATTR1:[0-9]+]] = { nounwind memory(none) }
-; NOPAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nofree nosync nounwind 
speculatable willreturn memory(none) }
+; NOPAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nocreateundeforpoison 
nofree nosync nounwind speculatable willreturn memory(none) }
 ;.
 ; PAUTH: attributes #[[ATTR0]] = { "target-features"="+pauth" }
 ; PAUTH: attributes #[[ATTR1:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) "target-features"="+pauth" }
 ; PAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) }
 ; PAUTH: attributes #[[ATTR3:[0-9]+]] = { nounwind memory(none) }
-; PAUTH: attributes #[[ATTR4:[0-9]+]] = { nocallback nofree nosync nounwind 
speculatable willreturn memory(none) }
+; PAUTH: attributes #[[ATTR4:[0-9]+]] = { nocallback nocreateundeforpoison 
nofree nosync nounwind speculatable willreturn memory(none) }
 ;.
diff --git 
a/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll 
b/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll
index b8c605177e33b..cd0fcb40d0d77 100644
--- a/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll
+++ b/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll
@@ -157,11 +157,11 @@ declare ptr @llvm.protected.field.ptr.p0(ptr, i64, i1 
immarg)
 ;.
 ; NOPAUTH: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) }
 ; NOPAUTH: attributes #[[ATTR1:[0-9]+]] = { nounwind memory(none) }
-; NOPAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nofree nosync nounwind 
speculatable willreturn memory(none) }
+; NOPAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nocreateundeforpoison 
nofree nosync nounwind speculatable willreturn memory(none) }
 ;.
 ; PAUTH: attributes #[[ATTR0]] = { "target-features"="+pauth" }
 ; PAUTH: attributes #[[ATTR1:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) "target-features"="+pauth" }
 ; PAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) }
 ; PAUTH: attributes #[[ATTR3:[0-9]+]] = { nounwind memory(none) }
-; PAUTH: attributes #[[ATTR4:[0-9]+]] = { nocallback nofree nosync nounwind 
speculatable willreturn memory(none) }
+; PAUTH: attributes #[[ATTR4:[0-9]+]] = { nocallback nocreateundeforpoison 
nofree nosync nounwind speculatable willreturn memory(none) }
 ;.

>From 31141b689aa94a34dba095c149bea88634411a42 Mon Sep 17 00:00:00 2001
From: Peter Collingbourne <[email protected]>
Date: Wed, 26 Nov 2025 16:32:47 -0800
Subject: [PATCH 2/2] Unsupport SW encoding

Created using spr 1.3.6-beta.1
---
 llvm/docs/LangRef.rst                         |  6 +-
 llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp | 26 +-------
 .../protected-field-pointer-addrspace1.ll     | 64 ++-----------------
 .../protected-field-pointer.ll                | 64 ++-----------------
 4 files changed, 13 insertions(+), 147 deletions(-)

diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst
index 8048c89b41663..7e93c67a9a31d 100644
--- a/llvm/docs/LangRef.rst
+++ b/llvm/docs/LangRef.rst
@@ -31762,10 +31762,8 @@ third argument is 1, the pointer is signed (using 
pointer authentication
 instructions or emulated PAC if not supported by the hardware) using
 the discriminator before being stored, and authenticated after being
 loaded. Note that it is currently unsupported to have the third argument
-be 1 on targets other than AArch64. When the third argument is 0, it is
-rotated left by 16 bits and the discriminator is subtracted before being
-stored, and the discriminator is added and the pointer is rotated right
-by 16 bits after being loaded.
+be 1 on targets other than AArch64, and it is also currently unsupported
+to have the third argument be 0 at all.
 
 If the pointer is used other than for loading or storing (e.g. its
 address escapes), that will disable all blending operations using
diff --git a/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp 
b/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
index 612b12e0059b3..f3653ab594015 100644
--- a/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
+++ b/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
@@ -513,6 +513,7 @@ static bool expandProtectedFieldPtr(Function &Intr) {
     auto *Disc = Call->getArgOperand(1);
     bool UseHWEncoding =
         cast<ConstantInt>(Call->getArgOperand(2))->getZExtValue();
+    assert(UseHWEncoding && "software encoding currently unsupported");
 
     auto *DS = GetDeactivationSymbol(Call);
     OperandBundleDef DSBundle("deactivation-symbol", DS);
@@ -526,18 +527,7 @@ static bool expandProtectedFieldPtr(Function &Intr) {
           IRBuilder<> B(SI);
           auto *SIValInt =
               B.CreatePtrToInt(SI->getValueOperand(), B.getInt64Ty());
-          Value *Sign;
-          if (UseHWEncoding) {
-            Sign = CreateSign(B, SIValInt, Disc, DSBundle);
-          } else {
-            // FIXME: These don't have deactivation symbol attachments, we'll
-            // need to figure out how to add them.
-            Sign =
-                B.CreateIntrinsic(SIValInt->getType(), Intrinsic::fshl,
-                                  {SIValInt, SIValInt,
-                                   ConstantInt::get(SIValInt->getType(), 16)});
-            Sign = B.CreateSub(Sign, Disc);
-          }
+          Value *Sign = CreateSign(B, SIValInt, Disc, DSBundle);
           SI->setOperand(0, B.CreateIntToPtr(Sign, B.getPtrTy()));
           SI->setOperand(1, Pointer);
           continue;
@@ -554,17 +544,7 @@ static bool expandProtectedFieldPtr(Function &Intr) {
           NewLI->setOperand(0, Pointer);
           B.Insert(NewLI);
           auto *LIInt = B.CreatePtrToInt(NewLI, B.getInt64Ty());
-          Value *Auth;
-          if (UseHWEncoding) {
-            Auth = CreateAuth(B, LIInt, Disc, DSBundle);
-          } else {
-            // FIXME: These don't have deactivation symbol attachments, we'll
-            // need to figure out how to add them.
-            Auth = B.CreateAdd(LIInt, Disc);
-            Auth = B.CreateIntrinsic(
-                Auth->getType(), Intrinsic::fshr,
-                {Auth, Auth, ConstantInt::get(Auth->getType(), 16)});
-          }
+          Value *Auth = CreateAuth(B, LIInt, Disc, DSBundle);
           LI->replaceAllUsesWith(B.CreateIntToPtr(Auth, B.getPtrTy()));
           LI->eraseFromParent();
           continue;
diff --git 
a/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
 
b/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
index 6b4c9ef646660..f98807c255383 100644
--- 
a/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
+++ 
b/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer-addrspace1.ll
@@ -8,23 +8,17 @@ target triple = "aarch64-unknown-linux-gnu"
 @ds2 = external global i8
 @ds3 = external global i8
 @ds4 = external global i8
-@ds5 = external global i8
-@ds6 = external global i8
 
 ;.
 ; NOPAUTH: @ds1 = external global i8
 ; NOPAUTH: @ds2 = external global i8
 ; NOPAUTH: @ds3 = external global i8
-; NOPAUTH: @ds4 = external global i8
-; NOPAUTH: @ds5 = external global i8
-; NOPAUTH: @ds6 = hidden alias i8, inttoptr (i64 3573751839 to ptr)
+; NOPAUTH: @ds4 = hidden alias i8, inttoptr (i64 3573751839 to ptr)
 ;.
 ; PAUTH: @ds1 = external global i8
 ; PAUTH: @ds2 = external global i8
 ; PAUTH: @ds3 = external global i8
-; PAUTH: @ds4 = external global i8
-; PAUTH: @ds5 = external global i8
-; PAUTH: @ds6 = hidden alias i8, inttoptr (i64 3573751839 to ptr)
+; PAUTH: @ds4 = hidden alias i8, inttoptr (i64 3573751839 to ptr)
 ;.
 define ptr @load_hw(ptr addrspace(1) %ptrptr) {
 ; NOPAUTH-LABEL: define ptr @load_hw(
@@ -70,54 +64,6 @@ define void @store_hw(ptr addrspace(1) %ptrptr, ptr %ptr) {
   ret void
 }
 
-define ptr @load_sw(ptr addrspace(1) %ptrptr) {
-; NOPAUTH-LABEL: define ptr @load_sw(
-; NOPAUTH-SAME: ptr addrspace(1) [[PTRPTR:%.*]]) {
-; NOPAUTH-NEXT:    [[PTR:%.*]] = load ptr, ptr addrspace(1) [[PTRPTR]], align 8
-; NOPAUTH-NEXT:    [[TMP1:%.*]] = ptrtoint ptr [[PTR]] to i64
-; NOPAUTH-NEXT:    [[TMP2:%.*]] = add i64 [[TMP1]], 1
-; NOPAUTH-NEXT:    [[TMP3:%.*]] = call i64 @llvm.fshr.i64(i64 [[TMP2]], i64 
[[TMP2]], i64 16)
-; NOPAUTH-NEXT:    [[TMP4:%.*]] = inttoptr i64 [[TMP3]] to ptr
-; NOPAUTH-NEXT:    ret ptr [[TMP4]]
-;
-; PAUTH-LABEL: define ptr @load_sw(
-; PAUTH-SAME: ptr addrspace(1) [[PTRPTR:%.*]]) #[[ATTR0]] {
-; PAUTH-NEXT:    [[PTR:%.*]] = load ptr, ptr addrspace(1) [[PTRPTR]], align 8
-; PAUTH-NEXT:    [[TMP1:%.*]] = ptrtoint ptr [[PTR]] to i64
-; PAUTH-NEXT:    [[TMP2:%.*]] = add i64 [[TMP1]], 1
-; PAUTH-NEXT:    [[TMP3:%.*]] = call i64 @llvm.fshr.i64(i64 [[TMP2]], i64 
[[TMP2]], i64 16)
-; PAUTH-NEXT:    [[TMP4:%.*]] = inttoptr i64 [[TMP3]] to ptr
-; PAUTH-NEXT:    ret ptr [[TMP4]]
-;
-  %protptrptr = call ptr addrspace(1) @llvm.protected.field.ptr.p1(ptr 
addrspace(1) %ptrptr, i64 1, i1 false) [ "deactivation-symbol"(ptr @ds3) ]
-  %ptr = load ptr, ptr addrspace(1) %protptrptr
-  ret ptr %ptr
-}
-
-define void @store_sw(ptr addrspace(1) %ptrptr, ptr %ptr) {
-; NOPAUTH-LABEL: define void @store_sw(
-; NOPAUTH-SAME: ptr addrspace(1) [[PTRPTR:%.*]], ptr [[PTR:%.*]]) {
-; NOPAUTH-NEXT:    [[TMP1:%.*]] = ptrtoint ptr [[PTR]] to i64
-; NOPAUTH-NEXT:    [[TMP2:%.*]] = call i64 @llvm.fshl.i64(i64 [[TMP1]], i64 
[[TMP1]], i64 16)
-; NOPAUTH-NEXT:    [[TMP3:%.*]] = sub i64 [[TMP2]], 2
-; NOPAUTH-NEXT:    [[TMP4:%.*]] = inttoptr i64 [[TMP3]] to ptr
-; NOPAUTH-NEXT:    store ptr [[TMP4]], ptr addrspace(1) [[PTRPTR]], align 8
-; NOPAUTH-NEXT:    ret void
-;
-; PAUTH-LABEL: define void @store_sw(
-; PAUTH-SAME: ptr addrspace(1) [[PTRPTR:%.*]], ptr [[PTR:%.*]]) #[[ATTR0]] {
-; PAUTH-NEXT:    [[TMP1:%.*]] = ptrtoint ptr [[PTR]] to i64
-; PAUTH-NEXT:    [[TMP2:%.*]] = call i64 @llvm.fshl.i64(i64 [[TMP1]], i64 
[[TMP1]], i64 16)
-; PAUTH-NEXT:    [[TMP3:%.*]] = sub i64 [[TMP2]], 2
-; PAUTH-NEXT:    [[TMP4:%.*]] = inttoptr i64 [[TMP3]] to ptr
-; PAUTH-NEXT:    store ptr [[TMP4]], ptr addrspace(1) [[PTRPTR]], align 8
-; PAUTH-NEXT:    ret void
-;
-  %protptrptr = call ptr addrspace(1) @llvm.protected.field.ptr.p1(ptr 
addrspace(1) %ptrptr, i64 2, i1 false) [ "deactivation-symbol"(ptr @ds4) ]
-  store ptr %ptr, ptr addrspace(1) %protptrptr
-  ret void
-}
-
 define i1 @compare(ptr addrspace(1) %ptrptr) {
 ; NOPAUTH-LABEL: define i1 @compare(
 ; NOPAUTH-SAME: ptr addrspace(1) [[PTRPTR:%.*]]) {
@@ -133,7 +79,7 @@ define i1 @compare(ptr addrspace(1) %ptrptr) {
 ; PAUTH-NEXT:    [[CMP:%.*]] = or i1 [[CMP1]], [[CMP2]]
 ; PAUTH-NEXT:    ret i1 [[CMP]]
 ;
-  %protptrptr = call ptr addrspace(1) @llvm.protected.field.ptr.p1(ptr 
addrspace(1) %ptrptr, i64 3, i1 true) [ "deactivation-symbol"(ptr @ds5) ]
+  %protptrptr = call ptr addrspace(1) @llvm.protected.field.ptr.p1(ptr 
addrspace(1) %ptrptr, i64 3, i1 true) [ "deactivation-symbol"(ptr @ds3) ]
   %cmp1 = icmp eq ptr addrspace(1) %protptrptr, null
   %cmp2 = icmp eq ptr addrspace(1) null, %protptrptr
   %cmp = or i1 %cmp1, %cmp2
@@ -149,7 +95,7 @@ define ptr addrspace(1) @escape(ptr addrspace(1) %ptrptr) {
 ; PAUTH-SAME: ptr addrspace(1) [[PTRPTR:%.*]]) #[[ATTR0]] {
 ; PAUTH-NEXT:    ret ptr addrspace(1) [[PTRPTR]]
 ;
-  %protptrptr = call ptr addrspace(1) @llvm.protected.field.ptr.p1(ptr 
addrspace(1) %ptrptr, i64 3, i1 true) [ "deactivation-symbol"(ptr @ds6) ]
+  %protptrptr = call ptr addrspace(1) @llvm.protected.field.ptr.p1(ptr 
addrspace(1) %ptrptr, i64 3, i1 true) [ "deactivation-symbol"(ptr @ds4) ]
   ret ptr addrspace(1) %protptrptr
 }
 
@@ -157,11 +103,9 @@ declare ptr addrspace(1) @llvm.protected.field.ptr.p1(ptr 
addrspace(1), i64, i1
 ;.
 ; NOPAUTH: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) }
 ; NOPAUTH: attributes #[[ATTR1:[0-9]+]] = { nounwind memory(none) }
-; NOPAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nocreateundeforpoison 
nofree nosync nounwind speculatable willreturn memory(none) }
 ;.
 ; PAUTH: attributes #[[ATTR0]] = { "target-features"="+pauth" }
 ; PAUTH: attributes #[[ATTR1:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) "target-features"="+pauth" }
 ; PAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) }
 ; PAUTH: attributes #[[ATTR3:[0-9]+]] = { nounwind memory(none) }
-; PAUTH: attributes #[[ATTR4:[0-9]+]] = { nocallback nocreateundeforpoison 
nofree nosync nounwind speculatable willreturn memory(none) }
 ;.
diff --git 
a/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll 
b/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll
index cd0fcb40d0d77..ba611fe4488bc 100644
--- a/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll
+++ b/llvm/test/Transforms/PreISelIntrinsicLowering/protected-field-pointer.ll
@@ -8,23 +8,17 @@ target triple = "aarch64-unknown-linux-gnu"
 @ds2 = external global i8
 @ds3 = external global i8
 @ds4 = external global i8
-@ds5 = external global i8
-@ds6 = external global i8
 
 ;.
 ; NOPAUTH: @ds1 = external global i8
 ; NOPAUTH: @ds2 = external global i8
 ; NOPAUTH: @ds3 = external global i8
-; NOPAUTH: @ds4 = external global i8
-; NOPAUTH: @ds5 = external global i8
-; NOPAUTH: @ds6 = hidden alias i8, inttoptr (i64 3573751839 to ptr)
+; NOPAUTH: @ds4 = hidden alias i8, inttoptr (i64 3573751839 to ptr)
 ;.
 ; PAUTH: @ds1 = external global i8
 ; PAUTH: @ds2 = external global i8
 ; PAUTH: @ds3 = external global i8
-; PAUTH: @ds4 = external global i8
-; PAUTH: @ds5 = external global i8
-; PAUTH: @ds6 = hidden alias i8, inttoptr (i64 3573751839 to ptr)
+; PAUTH: @ds4 = hidden alias i8, inttoptr (i64 3573751839 to ptr)
 ;.
 define ptr @load_hw(ptr %ptrptr) {
 ; NOPAUTH-LABEL: define ptr @load_hw(
@@ -70,54 +64,6 @@ define void @store_hw(ptr %ptrptr, ptr %ptr) {
   ret void
 }
 
-define ptr @load_sw(ptr %ptrptr) {
-; NOPAUTH-LABEL: define ptr @load_sw(
-; NOPAUTH-SAME: ptr [[PTRPTR:%.*]]) {
-; NOPAUTH-NEXT:    [[PTR:%.*]] = load ptr, ptr [[PTRPTR]], align 8
-; NOPAUTH-NEXT:    [[TMP1:%.*]] = ptrtoint ptr [[PTR]] to i64
-; NOPAUTH-NEXT:    [[TMP2:%.*]] = add i64 [[TMP1]], 1
-; NOPAUTH-NEXT:    [[TMP3:%.*]] = call i64 @llvm.fshr.i64(i64 [[TMP2]], i64 
[[TMP2]], i64 16)
-; NOPAUTH-NEXT:    [[TMP4:%.*]] = inttoptr i64 [[TMP3]] to ptr
-; NOPAUTH-NEXT:    ret ptr [[TMP4]]
-;
-; PAUTH-LABEL: define ptr @load_sw(
-; PAUTH-SAME: ptr [[PTRPTR:%.*]]) #[[ATTR0]] {
-; PAUTH-NEXT:    [[PTR:%.*]] = load ptr, ptr [[PTRPTR]], align 8
-; PAUTH-NEXT:    [[TMP1:%.*]] = ptrtoint ptr [[PTR]] to i64
-; PAUTH-NEXT:    [[TMP2:%.*]] = add i64 [[TMP1]], 1
-; PAUTH-NEXT:    [[TMP3:%.*]] = call i64 @llvm.fshr.i64(i64 [[TMP2]], i64 
[[TMP2]], i64 16)
-; PAUTH-NEXT:    [[TMP4:%.*]] = inttoptr i64 [[TMP3]] to ptr
-; PAUTH-NEXT:    ret ptr [[TMP4]]
-;
-  %protptrptr = call ptr @llvm.protected.field.ptr.p0(ptr %ptrptr, i64 1, i1 
false) [ "deactivation-symbol"(ptr @ds3) ]
-  %ptr = load ptr, ptr %protptrptr
-  ret ptr %ptr
-}
-
-define void @store_sw(ptr %ptrptr, ptr %ptr) {
-; NOPAUTH-LABEL: define void @store_sw(
-; NOPAUTH-SAME: ptr [[PTRPTR:%.*]], ptr [[PTR:%.*]]) {
-; NOPAUTH-NEXT:    [[TMP1:%.*]] = ptrtoint ptr [[PTR]] to i64
-; NOPAUTH-NEXT:    [[TMP2:%.*]] = call i64 @llvm.fshl.i64(i64 [[TMP1]], i64 
[[TMP1]], i64 16)
-; NOPAUTH-NEXT:    [[TMP3:%.*]] = sub i64 [[TMP2]], 2
-; NOPAUTH-NEXT:    [[TMP4:%.*]] = inttoptr i64 [[TMP3]] to ptr
-; NOPAUTH-NEXT:    store ptr [[TMP4]], ptr [[PTRPTR]], align 8
-; NOPAUTH-NEXT:    ret void
-;
-; PAUTH-LABEL: define void @store_sw(
-; PAUTH-SAME: ptr [[PTRPTR:%.*]], ptr [[PTR:%.*]]) #[[ATTR0]] {
-; PAUTH-NEXT:    [[TMP1:%.*]] = ptrtoint ptr [[PTR]] to i64
-; PAUTH-NEXT:    [[TMP2:%.*]] = call i64 @llvm.fshl.i64(i64 [[TMP1]], i64 
[[TMP1]], i64 16)
-; PAUTH-NEXT:    [[TMP3:%.*]] = sub i64 [[TMP2]], 2
-; PAUTH-NEXT:    [[TMP4:%.*]] = inttoptr i64 [[TMP3]] to ptr
-; PAUTH-NEXT:    store ptr [[TMP4]], ptr [[PTRPTR]], align 8
-; PAUTH-NEXT:    ret void
-;
-  %protptrptr = call ptr @llvm.protected.field.ptr.p0(ptr %ptrptr, i64 2, i1 
false) [ "deactivation-symbol"(ptr @ds4) ]
-  store ptr %ptr, ptr %protptrptr
-  ret void
-}
-
 define i1 @compare(ptr %ptrptr) {
 ; NOPAUTH-LABEL: define i1 @compare(
 ; NOPAUTH-SAME: ptr [[PTRPTR:%.*]]) {
@@ -133,7 +79,7 @@ define i1 @compare(ptr %ptrptr) {
 ; PAUTH-NEXT:    [[CMP:%.*]] = or i1 [[CMP1]], [[CMP2]]
 ; PAUTH-NEXT:    ret i1 [[CMP]]
 ;
-  %protptrptr = call ptr @llvm.protected.field.ptr.p0(ptr %ptrptr, i64 3, i1 
true) [ "deactivation-symbol"(ptr @ds5) ]
+  %protptrptr = call ptr @llvm.protected.field.ptr.p0(ptr %ptrptr, i64 3, i1 
true) [ "deactivation-symbol"(ptr @ds3) ]
   %cmp1 = icmp eq ptr %protptrptr, null
   %cmp2 = icmp eq ptr null, %protptrptr
   %cmp = or i1 %cmp1, %cmp2
@@ -149,7 +95,7 @@ define ptr @escape(ptr %ptrptr) {
 ; PAUTH-SAME: ptr [[PTRPTR:%.*]]) #[[ATTR0]] {
 ; PAUTH-NEXT:    ret ptr [[PTRPTR]]
 ;
-  %protptrptr = call ptr @llvm.protected.field.ptr.p0(ptr %ptrptr, i64 3, i1 
true) [ "deactivation-symbol"(ptr @ds6) ]
+  %protptrptr = call ptr @llvm.protected.field.ptr.p0(ptr %ptrptr, i64 3, i1 
true) [ "deactivation-symbol"(ptr @ds4) ]
   ret ptr %protptrptr
 }
 
@@ -157,11 +103,9 @@ declare ptr @llvm.protected.field.ptr.p0(ptr, i64, i1 
immarg)
 ;.
 ; NOPAUTH: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) }
 ; NOPAUTH: attributes #[[ATTR1:[0-9]+]] = { nounwind memory(none) }
-; NOPAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nocreateundeforpoison 
nofree nosync nounwind speculatable willreturn memory(none) }
 ;.
 ; PAUTH: attributes #[[ATTR0]] = { "target-features"="+pauth" }
 ; PAUTH: attributes #[[ATTR1:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) "target-features"="+pauth" }
 ; PAUTH: attributes #[[ATTR2:[0-9]+]] = { nocallback nofree nosync nounwind 
willreturn memory(none) }
 ; PAUTH: attributes #[[ATTR3:[0-9]+]] = { nounwind memory(none) }
-; PAUTH: attributes #[[ATTR4:[0-9]+]] = { nocallback nocreateundeforpoison 
nofree nosync nounwind speculatable willreturn memory(none) }
 ;.

_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to