[PATCH] D88570: [SDag] SimplifyDemandedBits: simplify to FP constant if all bits known
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 6 11:43:09 PDT 2020
RKSimon added inline comments.
================
Comment at: llvm/test/CodeGen/X86/uint_to_fp-2.ll:11
+; CHECK-NEXT: orpd {{\.LCPI.*}}, %xmm0
+; CHECK-NEXT: subsd {{\.LCPI.*}}, %xmm0
+; CHECK-NEXT: cvtsd2ss %xmm0, %xmm0
----------------
spatel wrote:
> RKSimon wrote:
> > @craig.topper @spatel This looks like we're loading the same constant as (double x) and <double x, double ???> - do you know if we already have examples of this or is this a new type of regression?
> We might avoid that by checking number of uses of the constant?
>
> Looks like a general shortcoming of combining/hoisting constants:
>
> ```
> $ cat vec_const.ll
> define <4 x i32> @f(<4 x i32> %x) {
> %a1 = add <4 x i32> %x, <i32 1, i32 2, i32 3, i32 4>
> %a2 = xor <4 x i32> %a1, <i32 1, i32 2, i32 3, i32 undef>
> ret <4 x i32> %a2
> }
> $ llc -o - vec_const.ll
> .section __TEXT,__text,regular,pure_instructions
> .build_version macos, 10, 15
> .section __TEXT,__literal16,16byte_literals
> .p2align 4 ## -- Begin function f
> LCPI0_0:
> .long 1 ## 0x1
> .long 2 ## 0x2
> .long 3 ## 0x3
> .long 4 ## 0x4
> LCPI0_1:
> .long 1 ## 0x1
> .long 2 ## 0x2
> .long 3 ## 0x3
> .space 4
> .section __TEXT,__text,regular,pure_instructions
> .globl _f
> .p2align 4, 0x90
> _f: ## @f
> .cfi_startproc
> ## %bb.0:
> paddd LCPI0_0(%rip), %xmm0
> pxor LCPI0_1(%rip), %xmm0
> retq
>
> ```
Thanks, I've raised a bug at https://bugs.llvm.org/show_bug.cgi?id=47744
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D88570/new/
https://reviews.llvm.org/D88570
More information about the llvm-commits
mailing list