[PATCH] D138519: [AArch64][SME]: Generate streaming-compatible code for int/fp select/vselect

David Sherwood via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 23 05:57:22 PST 2022


david-arm added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:12918
 
-  if (useSVEForFixedLengthVectorVT(Op.getOperand(0).getValueType()))
+  if (useSVEForFixedLengthVectorVT(Op.getOperand(0).getValueType(), Subtarget->forceStreamingCompatibleSVE()))
     return LowerFixedLengthVectorSetccToSVE(Op, DAG);
----------------
nit: This looks like it's breaking the 80-character line limit. Can you reformat this please?


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-vselect.ll:83
 
 define void @select_v32f16(ptr %a, ptr %b) #0 {
 ; CHECK-LABEL: select_v32f16:
----------------
Hmm, I don't think there is any value in adding tests for sizes > 256 bits, right? `@select_v16f16` is already testing that we legalise larger types (> 128-bits) correctly. Perhaps you can just remove all tests >256 bits? For example, `@select_v32f16`, `@select_v64f16`, etc.


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-vselect.ll:528
 
 define void @select_v16f32(ptr %a, ptr %b) #0 {
 ; CHECK-LABEL: select_v16f32:
----------------
Same comment as above.


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-vselect.ll:969
 
 define void @select_v8f64(ptr %a, ptr %b) #0 {
 ; CHECK-LABEL: select_v8f64:
----------------
Same comment as above.


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll:82
 
 define void @select_v64i8(ptr %a, ptr %b) #0 {
 ; CHECK-LABEL: select_v64i8:
----------------
Again, I think it's worth deleting all tests > 256 bits.


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll:538
 
 define void @select_v32i16(ptr %a, ptr %b) #0 {
 ; CHECK-LABEL: select_v32i16:
----------------
Same comment as above.


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll:994
 
 define void @select_v16i32(ptr %a, ptr %b) #0 {
 ; CHECK-LABEL: select_v16i32:
----------------
Same comment as above.


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll:1447
 
 define void @select_v8i64(ptr %a, ptr %b) #0 {
 ; CHECK-LABEL: select_v8i64:
----------------
Same comment as above.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D138519



More information about the llvm-commits mailing list