[PATCH] D89389: [SystemZ] Bugfix in SystemZVectorConstantInfo

Jonas Paulsson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 14 06:37:23 PDT 2020


This revision was automatically updated to reflect the committed changes.
Closed by commit rG6756d43af97e: [SystemZ] Bugfix in SystemZVectorConstantInfo (authored by jonpa).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89389/new/

https://reviews.llvm.org/D89389

Files:
  llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
  llvm/test/CodeGen/SystemZ/fp-const-12.ll
  llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll


Index: llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
===================================================================
--- llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
+++ llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
@@ -802,7 +802,7 @@
 ;
 ; SZ13-LABEL: constrained_vector_fadd_v3f32:
 ; SZ13:       # %bb.0: # %entry
-; SZ13-NEXT:    vgbm %v0, 15
+; SZ13-NEXT:    vgbm %v0, 61440
 ; SZ13-NEXT:    vgmf %v2, 1, 1
 ; SZ13-NEXT:    vgmf %v3, 2, 8
 ; SZ13-NEXT:    lzer %f1
@@ -974,12 +974,12 @@
 ;
 ; SZ13-LABEL: constrained_vector_fsub_v3f32:
 ; SZ13:       # %bb.0: # %entry
-; SZ13-NEXT:    vgbm %v2, 15
+; SZ13-NEXT:    vgbm %v2, 61440
 ; SZ13-NEXT:    lzer %f1
 ; SZ13-NEXT:    sebr %f2, %f1
 ; SZ13-NEXT:    vgmf %v1, 1, 1
-; SZ13-NEXT:    vgbm %v3, 15
-; SZ13-NEXT:    vgbm %v0, 15
+; SZ13-NEXT:    vgbm %v3, 61440
+; SZ13-NEXT:    vgbm %v0, 61440
 ; SZ13-NEXT:    sebr %f3, %f1
 ; SZ13-NEXT:    vgmf %v1, 2, 8
 ; SZ13-NEXT:    sebr %f0, %f1
Index: llvm/test/CodeGen/SystemZ/fp-const-12.ll
===================================================================
--- llvm/test/CodeGen/SystemZ/fp-const-12.ll
+++ llvm/test/CodeGen/SystemZ/fp-const-12.ll
@@ -1,4 +1,4 @@
-; Test loads of FP constants with VGM.
+; Test loads of FP constants with VGM and VGBM.
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
@@ -61,3 +61,15 @@
 ; CHECK: vgmf %v0, 2, 6
   ret float 0.125
 }
+
+define float @f11() {
+; CHECK-LABEL: f11:
+; CHECK: vgbm %v0, 61440
+  ret float 0xFFFFFFFFE0000000
+}
+
+define double @f12() {
+; CHECK-LABEL: f12:
+; CHECK: vgbm %v0, 61440
+  ret double 0xFFFFFFFF00000000
+}
Index: llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
===================================================================
--- llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+++ llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
@@ -784,10 +784,11 @@
 SystemZVectorConstantInfo::SystemZVectorConstantInfo(APFloat FPImm) {
   IntBits = FPImm.bitcastToAPInt().zextOrSelf(128);
   isFP128 = (&FPImm.getSemantics() == &APFloat::IEEEquad());
-
-  // Find the smallest splat.
   SplatBits = FPImm.bitcastToAPInt();
   unsigned Width = SplatBits.getBitWidth();
+  IntBits <<= (SystemZ::VectorBits - Width);
+
+  // Find the smallest splat.
   while (Width > 8) {
     unsigned HalfSize = Width / 2;
     APInt HighValue = SplatBits.lshr(HalfSize).trunc(HalfSize);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D89389.298141.patch
Type: text/x-patch
Size: 2420 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201014/5bb6e5ad/attachment.bin>


More information about the llvm-commits mailing list