[llvm] [AArch64][llvm] Fix encoding for `stshh` instruction (PR #189588)

Jonathan Thackray via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 31 03:34:32 PDT 2026


https://github.com/jthackray created https://github.com/llvm/llvm-project/pull/189588

The encoding for `stshh` was incorrect, and has been fixed. This
has been checked against the Arm ARM.

>From 3e1e8028aa015ae6c4f23b959c60842af83e1cc3 Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Tue, 31 Mar 2026 11:26:20 +0100
Subject: [PATCH] [AArch64][llvm] Fix encoding for `stshh` instruction

The encoding for `stshh` was incorrect, and has been fixed. This
has been checked against the Arm ARM.
---
 llvm/lib/Target/AArch64/AArch64InstrFormats.td | 2 +-
 llvm/test/MC/AArch64/armv9.6a-pcdphint.s       | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AArch64InstrFormats.td b/llvm/lib/Target/AArch64/AArch64InstrFormats.td
index 19312d34609ce..1774927e9297d 100644
--- a/llvm/lib/Target/AArch64/AArch64InstrFormats.td
+++ b/llvm/lib/Target/AArch64/AArch64InstrFormats.td
@@ -1876,7 +1876,7 @@ class STSHHI
     : SimpleSystemI<0, (ins phint_op:$policy), "stshh", "\t$policy", []>,
       Sched<[WriteHint]> {
   bits<3> policy;
-  let Inst{20-12} = 0b000011001;
+  let Inst{20-12} = 0b000110010;
   let Inst{11-8} = 0b0110;
   let Inst{7-5} = policy;
 }
diff --git a/llvm/test/MC/AArch64/armv9.6a-pcdphint.s b/llvm/test/MC/AArch64/armv9.6a-pcdphint.s
index cfd7b098ab487..46fe8981d1ebf 100644
--- a/llvm/test/MC/AArch64/armv9.6a-pcdphint.s
+++ b/llvm/test/MC/AArch64/armv9.6a-pcdphint.s
@@ -10,11 +10,11 @@
 
 stshh keep
 // CHECK-INST: stshh keep
-// CHECK-ENCODING: encoding: [0x1f,0x96,0x01,0xd5]
+// CHECK-ENCODING: encoding: [0x1f,0x26,0x03,0xd5]
 
 stshh strm
 // CHECK-INST: stshh strm
-// CHECK-ENCODING: encoding: [0x3f,0x96,0x01,0xd5]
+// CHECK-ENCODING: encoding: [0x3f,0x26,0x03,0xd5]
 
 prfm ir, [x0]
 // CHECK-INST: prfm ir, [x0]



More information about the llvm-commits mailing list