nemanjai requested changes to this revision.
nemanjai added a comment.
This revision now requires changes to proceed.

Please add the missing BE handling.



================
Comment at: llvm/lib/Target/PowerPC/PPCInstrVSX.td:2800
+                               (f32 (fpround f64:$A)), (f32 (fpround 
f64:$A)))),
+          (v4f32 (XXSPLTW (SUBREG_TO_REG (i64 0), (XSCVDPSP f64:$A), sub_64), 
0))>;
 def : Pat<(v4f32 (build_vector f32:$A, f32:$A, f32:$A, f32:$A)),
----------------
Although it is accurate that this specific instruction clears the other bits, 
all the other uses of `SUBREG_TO_REG` in the back end use `(i64 1)` and I don't 
think it is particularly useful to part with that here.


================
Comment at: llvm/lib/Target/PowerPC/PPCInstrVSX.td:4276
           (v4i32 (XXINSERTW v4i32:$A, AlignValues.I32_TO_BE_WORD1, 0))>;
+def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 0)),
+          (v4f32 (XXINSERTW v4f32:$A,
----------------
These also need to be added for big endian subtargets.


================
Comment at: llvm/test/CodeGen/PowerPC/vec_insert_elt.ll:741
+; CHECK-BE:       # %bb.0: # %entry
+; CHECK-BE-NEXT:    xsrsp f0, f1
+; CHECK-BE-NEXT:    xscvdpspn vs0, f0
----------------
Notice that this still generates the undesired code due to missing the new 
patterns for big endian subtargets.


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

https://reviews.llvm.org/D100782

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to