[llvm] [SimplifyLibCalls] Use constant 64-bit indices for ExtractElement (PR #209020)

Andreas Jonson via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 12 06:38:08 PDT 2026


https://github.com/andjo403 created https://github.com/llvm/llvm-project/pull/209020

The canonical form preferred by instCombine is to use 64-bit values for constant index in ExtractElement see
https://github.com/llvm/llvm-project/blob/9d5d8834793da9efe297620db3ef39633688f830/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp#L401-L411

>From 50d41228d23a1a7c1da78f73de7a8edf82bc1306 Mon Sep 17 00:00:00 2001
From: Andreas Jonson <andjo403 at hotmail.com>
Date: Sun, 12 Jul 2026 15:36:23 +0200
Subject: [PATCH] [SimplifyLibCalls] Use constant 64-bit indices for
 ExtractElement

---
 llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
index b524c9dd83f4e..b167fabdcf3ba 100644
--- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
@@ -2984,10 +2984,8 @@ static bool insertSinCosCall(IRBuilderBase &B, Function *OrigCallee, Value *Arg,
     Sin = B.CreateExtractValue(SinCos, 0, "sinpi");
     Cos = B.CreateExtractValue(SinCos, 1, "cospi");
   } else {
-    Sin = B.CreateExtractElement(SinCos, ConstantInt::get(B.getInt32Ty(), 0),
-                                 "sinpi");
-    Cos = B.CreateExtractElement(SinCos, ConstantInt::get(B.getInt32Ty(), 1),
-                                 "cospi");
+    Sin = B.CreateExtractElement(SinCos, uint64_t{0}, "sinpi");
+    Cos = B.CreateExtractElement(SinCos, uint64_t{1}, "cospi");
   }
 
   return true;



More information about the llvm-commits mailing list