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: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected],
                    [email protected], [email protected]

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.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to