[Bug 219561] [lang/clover] partially broken

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri May 26 01:34:31 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219561

            Bug ID: 219561
           Summary: [lang/clover] partially broken
           Product: Ports & Packages
           Version: Latest
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: x11 at FreeBSD.org
          Reporter: jmd at freebsd.org
             Flags: maintainer-feedback?(x11 at FreeBSD.org)
          Assignee: x11 at FreeBSD.org

On FreeBSDDesktop version of HEAD, lang/clover does not do double precision for
at least Carrizo properly:

LLVM ERROR: Cannot select: t708: f64 = fpow t680, t771
  t680: f64 = bitcast t119
    t119: i64 = build_pair t880, t881
      t880: i32 = extract_vector_elt t842, Constant:i32<0>
        t842: v4i32,ch = load<LD16[%arrayidx(addrspace=1)+64](align=64)> t112,
undef:i64
          t62: i64 = add t38, Constant:i64<64>
            t38: i64 = add t773, t37
              t773: i64 = bitcast t772
                t772: v2i32,ch =
load<LD8[undef(addrspace=2)](nontemporal)(derenceable)(invariant)> t0, t2,
undef:i64
                  t2: i64,ch = CopyFromReg t0, Register:i64 %vreg2

                  t4: i64 = undef
              t37: i64 = shl t35, Constant:i32<7>
                t35: i64 = add t29, t769
                  t29: i64 = add t929, t28


                  t769: i64 = zero_extend t768

                t101: i32 = Constant<7>
            t61: i64 = Constant<64>
          t4: i64 = undef
        t87: i32 = Constant<0>
      t881: i32 = extract_vector_elt t842, Constant:i32<1>
        t842: v4i32,ch = load<LD16[%arrayidx(addrspace=1)+64](align=64)> t112,
undef:i64
          t62: i64 = add t38, Constant:i64<64>
            t38: i64 = add t773, t37
              t773: i64 = bitcast t772
                t772: v2i32,ch =
load<LD8[undef(addrspace=2)](nontemporal)(derenceable)(invariant)> t0, t2,
undef:i64
                  t2: i64,ch = CopyFromReg t0, Register:i64 %vreg2

                  t4: i64 = undef
              t37: i64 = shl t35, Constant:i32<7>
                t35: i64 = add t29, t769
                  t29: i64 = add t929, t28


                  t769: i64 = zero_extend t768

                t101: i32 = Constant<7>
            t61: i64 = Constant<64>
          t4: i64 = undef
        t89: i32 = Constant<1>
  t771: f64 = bitcast t770
    t770: v2i32,ch =
load<LD8[undef(addrspace=2)](nontemporal)(dereferenceabinvariant)> t0, t8,
undef:i64
      t8: i64 = add t2, Constant:i64<8>
        t2: i64,ch = CopyFromReg t0, Register:i64 %vreg2
          t1: i64 = Register %vreg2
        t7: i64 = Constant<8>
      t4: i64 = undef


This comes from a trivial OpenCL kernel:


__kernel void powGrid(__global KEDFOCLV *data, const double exponent){          
    const size_t idx = get_global_id(0);
    data[idx] = pow(data[idx], exponent);
}

where KEDFOCLV is defined as double16.

Current benchmarks/clpeak hangs (reproduced by others on Polaris cards
additionally to my Carrizo). The latest github version of clpeak (see D10917)
crashes with an assertion in LLVM 4.0 on, at least, Carrizo and Polaris.

$ clpeak

Platform: Clover
  Device: AMD CARRIZO (DRM 3.8.0 / 12.0-CURRENT, LLVM 4.0.1)
    Driver version  : 17.1.0 (FreeBSD)
    Compute units   : 8
    Clock frequency : 800 MHz
Assertion failed: (DelayedTypos.empty() && "Uncorrected typos!"), function
~Sema, file
/wrkdirs/usr/ports/devel/llvm40/work/llvm-4.0.1rc1.src/tools/clang/lib/Sema/Sema.cpp,
line 317.
Abort trap (core dumped)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-x11 mailing list