[llvm] [VectorCombine] Scalarize binop-like intrinsics (PR #138095)
Juneyoung Lee via llvm-commits
llvm-commits at lists.llvm.org
Thu May 1 09:31:59 PDT 2025
================
@@ -0,0 +1,97 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
+; RUN: opt < %s -S -p vector-combine | FileCheck %s
+
+define <4 x i32> @umax_fixed(i32 %x, i32 %y) {
+; CHECK-LABEL: define <4 x i32> @umax_fixed(
+; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) {
+; CHECK-NEXT: [[V_SCALAR:%.*]] = call i32 @llvm.umax.i32(i32 [[X]], i32 [[Y]])
+; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i32> @llvm.umax.v4i32(<4 x i32> poison, <4 x i32> poison)
----------------
aqjune wrote:
> So to confirm then, does that mean we should also be folding min/max to poison if any of its operands are poison in InstructionSimplify? I guess propagatesPoison isn't enough to do it on its own.
This folding is correct, yes :) Others will have opinions on whether `propagatesPoison` already enables InstructionSimplify.
https://github.com/llvm/llvm-project/pull/138095
More information about the llvm-commits
mailing list