[PATCH] D55722: [DAGCombiner] scalarize binop followed by extractelement

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 20 11:23:35 PST 2018


efriedma added inline comments.


================
Comment at: test/CodeGen/ARM/vector-promotion.ll:16
+; ASM: orr r0, r0, #1
+; ASM-NEXT: str r0, [r1]
 ; ASM-NEXT: bx
----------------
This is destroying the whole point of the test: we want to avoid the expensive float->int register transfer.


================
Comment at: test/CodeGen/ARM/vector-promotion.ll:87
 ; ASM: vldr [[LOAD:d[0-9]+]], [r0]
-; ASM-NOT: vmov.32 {{r[0-9]+}}, [[LOAD]]
+; ASM: mov.32	[[R:r[0-9]+]], [[LOAD]]
+; ASM: orr	[[R]], [[R]], #1
----------------
Same here; this is destroying the point of the test.


================
Comment at: test/CodeGen/ARM/vector-promotion.ll:394
+; ASM-NEXT:  str	[[LOAD]], [r1]
+; ASM-NEXT:  bx
 define void @simpleOneInstructionPromotion4x32(<4 x i32>* %addr1, i32* %dest) {
----------------
This transform is okay, but I'd like to see a new test replacing the load with an intrinsic that produces a vector, to preserve the original intent.


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

https://reviews.llvm.org/D55722





More information about the llvm-commits mailing list