[llvm] f68fc8d - [PowerPC] Fix incorrect shift amount for build_vector

Nemanja Ivanovic via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 30 14:36:17 PST 2023


Author: Nemanja Ivanovic
Date: 2023-01-30T16:36:08-06:00
New Revision: f68fc8d9d20ca957912cc3477564bc7246b61ccd

URL: https://github.com/llvm/llvm-project/commit/f68fc8d9d20ca957912cc3477564bc7246b61ccd
DIFF: https://github.com/llvm/llvm-project/commit/f68fc8d9d20ca957912cc3477564bc7246b61ccd.diff

LOG: [PowerPC] Fix incorrect shift amount for build_vector

The pattern for a build_vector node was incorrect for big endian
subtargets.

Added: 
    

Modified: 
    llvm/lib/Target/PowerPC/PPCInstrVSX.td
    llvm/test/CodeGen/PowerPC/build-vector-tests.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/PowerPC/PPCInstrVSX.td b/llvm/lib/Target/PowerPC/PPCInstrVSX.td
index 3c742075b1111..8e9d1bb6cb4a2 100644
--- a/llvm/lib/Target/PowerPC/PPCInstrVSX.td
+++ b/llvm/lib/Target/PowerPC/PPCInstrVSX.td
@@ -2988,7 +2988,7 @@ def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 0))),
           (v2f64 (XVCVSPDP $A))>;
 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 1))),
                                (f64 (fpextend (extractelt v4f32:$A, 3))))),
-          (v2f64 (XVCVSPDP (XXSLDWI $A, $A, 3)))>;
+          (v2f64 (XVCVSPDP (XXSLDWI $A, $A, 1)))>;
 def : Pat<(v2f64 (build_vector (f64 (fpextend (extractelt v4f32:$A, 2))),
                                (f64 (fpextend (extractelt v4f32:$A, 3))))),
           (v2f64 (XVCVSPDP (XXMRGLW $A, $A)))>;

diff  --git a/llvm/test/CodeGen/PowerPC/build-vector-tests.ll b/llvm/test/CodeGen/PowerPC/build-vector-tests.ll
index a40aeda0e3f6e..fd41c430ede70 100644
--- a/llvm/test/CodeGen/PowerPC/build-vector-tests.ll
+++ b/llvm/test/CodeGen/PowerPC/build-vector-tests.ll
@@ -6364,7 +6364,7 @@ entry:
 define dso_local <2 x double> @fp_extend13(<4 x float> %a) {
 ; P9BE-LABEL: fp_extend13:
 ; P9BE:       # %bb.0: # %entry
-; P9BE-NEXT:    xxsldwi vs0, v2, v2, 3
+; P9BE-NEXT:    xxsldwi vs0, v2, v2, 1
 ; P9BE-NEXT:    xvcvspdp v2, vs0
 ; P9BE-NEXT:    blr
 ;
@@ -6375,7 +6375,7 @@ define dso_local <2 x double> @fp_extend13(<4 x float> %a) {
 ;
 ; P8BE-LABEL: fp_extend13:
 ; P8BE:       # %bb.0: # %entry
-; P8BE-NEXT:    xxsldwi vs0, v2, v2, 3
+; P8BE-NEXT:    xxsldwi vs0, v2, v2, 1
 ; P8BE-NEXT:    xvcvspdp v2, vs0
 ; P8BE-NEXT:    blr
 ;


        


More information about the llvm-commits mailing list