[llvm] [clang] [Instcombine] use zext's nneg flag for icmp folding (PR #70845)

Yingwei Zheng via cfe-commits cfe-commits at lists.llvm.org
Sat Nov 11 09:16:50 PST 2023


================
@@ -0,0 +1,112 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
+; RUN: opt < %s -O3 -S | FileCheck %s
+; See issue #55013 and PR #70845 for more details.
+; This test comes from the following C program, compiled with clang
+;
+;; short vecreduce_smin_v2i16(int n, short* v)
+;; {
+;;   short p = 0;
+;;   for (int i = 0; i < n; ++i)
+;;     p = p > v[i] ? v[i] : p;
+;;   return p;
+;; }
+;
+;; short vecreduce_smax_v2i16(int n, short* v)
+;; {
+;;   short p = 0;
+;;   for (int i = 0; i < n; ++i)
+;;     p = p < v[i] ? v[i] : p;
+;;   return p;
+;; }
+
+define i16 @vecreduce_smin_v2i16(i32 %n, ptr %v) {
+; CHECK-LABEL: define i16 @vecreduce_smin_v2i16(
+; CHECK:    @llvm.smin.v2i16
----------------
dtcxzyw wrote:

Oh, it makes sense. Just checking `smin/smax` intrinsics is OK.

https://github.com/llvm/llvm-project/pull/70845


More information about the cfe-commits mailing list