[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