[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