[AArch64][GlobalISel] Don't allow s128 for G_ISNAN
authorJessica Paquette <jpaquette@apple.com>
Wed, 18 Aug 2021 20:57:42 +0000 (13:57 -0700)
committerJessica Paquette <jpaquette@apple.com>
Wed, 18 Aug 2021 20:59:00 +0000 (13:59 -0700)
getAPFloatFromSize doesn't support s128, so we can't lower this without
asserting right now.

To fix the buildbots, don't allow any scalars other than s16, s32, and s64.

llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp

index bbc3df3..5320f44 100644 (file)
@@ -727,7 +727,8 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST)
   // TODO: Vector types.
   getActionDefinitionsBuilder({G_SADDSAT, G_SSUBSAT}).lowerIf(isScalar(0));
 
-  getActionDefinitionsBuilder(G_ISNAN).lower();
+  getActionDefinitionsBuilder(G_ISNAN).lowerIf(
+      any(isVector(1), typeInSet(1, {s16, s32, s64})));
 
   // TODO: Vector types.
   getActionDefinitionsBuilder({G_FMAXNUM, G_FMINNUM})