[llvm-bugs] [Bug 43729] New: Regression in "[X86][SSE] LowerUINT_TO_FP_i64 - only use HADDPD for size/fast-hops"

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Oct 20 02:43:19 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=43729

            Bug ID: 43729
           Summary: Regression in "[X86][SSE] LowerUINT_TO_FP_i64 - only
                    use HADDPD for size/fast-hops"
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: X86
          Assignee: unassignedbugs at nondot.org
          Reporter: martin at martin.st
                CC: craig.topper at gmail.com, llvm-bugs at lists.llvm.org,
                    llvm-dev at redking.me.uk, spatel+llvm at rotateright.com

Created attachment 22691
  --> https://bugs.llvm.org/attachment.cgi?id=22691&action=edit
Reprouction C sample

Since SVN r375341, "[X86][SSE] LowerUINT_TO_FP_i64 - only use HADDPD for
size/fast-hops", building ffmpeg/libav for mingw, both i686 and x86_64, errors
out like this:

fatal error: error in backend: Cannot select: t22: v2f64 = X86ISD::FHADD t21,
t2
1
  t21: v2f64 = fsub t20, t44
    t20: v2f64 = bitcast t39
      t39: v4i32 = X86ISD::UNPCKL t17, t16
        t17: v4i32 = bitcast t14
          t14: v2i64 = scalar_to_vector t7
            t7: i64,ch = CopyFromReg t0, Register:i64 %150
              t6: i64 = Register %150 
        t16: v4i32,ch = load<(load 16 from constant-pool)> t0, t43, undef:i64
          t43: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<<4 x i32> <i32
11
27219200, i32 1160773632, i32 0, i32 0>> 0
            t42: i64 = TargetConstantPool<<4 x i32> <i32 1127219200, i32
1160773
632, i32 0, i32 0>> 0
          t15: i64 = undef
    t44: v2f64,ch = load<(load 16 from constant-pool)> t0, t41, undef:i64 
      t41: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<<2 x double> <double 
0x4330000000000000, double 0x4530000000000000>> 0
        t40: i64 = TargetConstantPool<<2 x double> <double 0x4330000000000000,
d
ouble 0x4530000000000000>> 0
      t15: i64 = undef
  t21: v2f64 = fsub t20, t44
    t20: v2f64 = bitcast t39 
      t39: v4i32 = X86ISD::UNPCKL t17, t16
        t17: v4i32 = bitcast t14
          t14: v2i64 = scalar_to_vector t7 
            t7: i64,ch = CopyFromReg t0, Register:i64 %150
              t6: i64 = Register %150         
        t16: v4i32,ch = load<(load 16 from constant-pool)> t0, t43, undef:i64
          t43: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<<4 x i32> <i32
1127219200, i32 1160773632, i32 0, i32 0>> 0
            t42: i64 = TargetConstantPool<<4 x i32> <i32 1127219200, i32
1160773632, i32 0, i32 0>> 0
          t15: i64 = undef
    t44: v2f64,ch = load<(load 16 from constant-pool)> t0, t41, undef:i64
      t41: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<<2 x double> <double
0x4330000000000000, double 0x4530000000000000>> 0
        t40: i64 = TargetConstantPool<<2 x double> <double 0x4330000000000000,
double 0x4530000000000000>> 0
      t15: i64 = undef
In function: ffv1_encode_init

This is reproducible with the attached source file, with "clang -target
x86_64-w64-mingw32 -c -O2 ffv1enc.c".

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20191020/b44a00a7/attachment.html>


More information about the llvm-bugs mailing list