Skip to content

Commit 5fc6425

Browse files
committed
[ConstantFolding] Fix crash when folding vector llvm.is.fpclass
Differential Revision: https://reviews.llvm.org/D148803
1 parent e46fcab commit 5fc6425

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

llvm/lib/Analysis/VectorUtils.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ bool llvm::isTriviallyVectorizable(Intrinsic::ID ID) {
8686
case Intrinsic::pow:
8787
case Intrinsic::fma:
8888
case Intrinsic::fmuladd:
89+
case Intrinsic::is_fpclass:
8990
case Intrinsic::powi:
9091
case Intrinsic::canonicalize:
9192
case Intrinsic::fptosi_sat:
@@ -103,6 +104,7 @@ bool llvm::isVectorIntrinsicWithScalarOpAtArg(Intrinsic::ID ID,
103104
case Intrinsic::abs:
104105
case Intrinsic::ctlz:
105106
case Intrinsic::cttz:
107+
case Intrinsic::is_fpclass:
106108
case Intrinsic::powi:
107109
return (ScalarOpdIdx == 1);
108110
case Intrinsic::smul_fix:
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
2+
; RUN: opt < %s -S -passes=instsimplify | FileCheck %s
3+
4+
define <2 x i1> @f() {
5+
; CHECK-LABEL: define <2 x i1> @f() {
6+
; CHECK-NEXT: ret <2 x i1> zeroinitializer
7+
;
8+
%i = call <2 x i1> @llvm.is.fpclass.v2f16(<2 x half> <half 0xH7C00, half 0xH7C00>, i32 3)
9+
ret <2 x i1> %i
10+
}
11+
12+
declare <2 x i1> @llvm.is.fpclass.v2f16(<2 x half>, i32 immarg)

0 commit comments

Comments
 (0)