[llvm] 975bda0 - InstCombine: Add more ldexp by constant tests (#171976)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 12 03:55:30 PST 2025
Author: Matt Arsenault
Date: 2025-12-12T12:55:26+01:00
New Revision: 975bda005ea42a0aa9920169d2709ae50b0fd527
URL: https://github.com/llvm/llvm-project/commit/975bda005ea42a0aa9920169d2709ae50b0fd527
DIFF: https://github.com/llvm/llvm-project/commit/975bda005ea42a0aa9920169d2709ae50b0fd527.diff
LOG: InstCombine: Add more ldexp by constant tests (#171976)
Added:
Modified:
llvm/test/Transforms/InstCombine/ldexp.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstCombine/ldexp.ll b/llvm/test/Transforms/InstCombine/ldexp.ll
index 8908d476b4a2c..72997eef4fd6d 100644
--- a/llvm/test/Transforms/InstCombine/ldexp.ll
+++ b/llvm/test/Transforms/InstCombine/ldexp.ll
@@ -827,6 +827,86 @@ define float @ldexp_127(float %x) {
ret float %ldexp
}
+define float @ldexp_128(float %x) {
+; CHECK-LABEL: define float @ldexp_128
+; CHECK-SAME: (float [[X:%.*]]) {
+; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32(float [[X]], i32 128)
+; CHECK-NEXT: ret float [[LDEXP]]
+;
+ %ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 128)
+ ret float %ldexp
+}
+
+define float @ldexp_254(float %x) {
+; CHECK-LABEL: define float @ldexp_254
+; CHECK-SAME: (float [[X:%.*]]) {
+; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32(float [[X]], i32 254)
+; CHECK-NEXT: ret float [[LDEXP]]
+;
+ %ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 254)
+ ret float %ldexp
+}
+
+define float @ldexp_255(float %x) {
+; CHECK-LABEL: define float @ldexp_255
+; CHECK-SAME: (float [[X:%.*]]) {
+; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32(float [[X]], i32 255)
+; CHECK-NEXT: ret float [[LDEXP]]
+;
+ %ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 255)
+ ret float %ldexp
+}
+
+define float @ldexp_256(float %x) {
+; CHECK-LABEL: define float @ldexp_256
+; CHECK-SAME: (float [[X:%.*]]) {
+; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32(float [[X]], i32 256)
+; CHECK-NEXT: ret float [[LDEXP]]
+;
+ %ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 256)
+ ret float %ldexp
+}
+
+define float @ldexp_neg254(float %x) {
+; CHECK-LABEL: define float @ldexp_neg254
+; CHECK-SAME: (float [[X:%.*]]) {
+; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32(float [[X]], i32 -254)
+; CHECK-NEXT: ret float [[LDEXP]]
+;
+ %ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 -254)
+ ret float %ldexp
+}
+
+define float @ldexp_neg255(float %x) {
+; CHECK-LABEL: define float @ldexp_neg255
+; CHECK-SAME: (float [[X:%.*]]) {
+; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32(float [[X]], i32 -255)
+; CHECK-NEXT: ret float [[LDEXP]]
+;
+ %ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 -255)
+ ret float %ldexp
+}
+
+define float @ldexp_neg256(float %x) {
+; CHECK-LABEL: define float @ldexp_neg256
+; CHECK-SAME: (float [[X:%.*]]) {
+; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32(float [[X]], i32 -256)
+; CHECK-NEXT: ret float [[LDEXP]]
+;
+ %ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 -256)
+ ret float %ldexp
+}
+
+define float @ldexp_neg260(float %x) {
+; CHECK-LABEL: define float @ldexp_neg260
+; CHECK-SAME: (float [[X:%.*]]) {
+; CHECK-NEXT: [[LDEXP:%.*]] = call float @llvm.ldexp.f32.i32(float [[X]], i32 -260)
+; CHECK-NEXT: ret float [[LDEXP]]
+;
+ %ldexp = call float @llvm.ldexp.f32.i32(float %x, i32 -260)
+ ret float %ldexp
+}
+
define <2 x float> @ldexp_3_vector(<2 x float> %x) {
; CHECK-LABEL: define <2 x float> @ldexp_3_vector
; CHECK-SAME: (<2 x float> [[X:%.*]]) {
More information about the llvm-commits
mailing list