Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 May 2017 01:34:30 +0000
From:      bugzilla-noreply@freebsd.org
To:        x11@FreeBSD.org
Subject:   maintainer-feedback requested: [Bug 219561] [lang/clover] partially broken
Message-ID:  <bug-219561-7141-y3Mzoo6gUX@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-219561-7141@https.bugs.freebsd.org/bugzilla/>
References:  <bug-219561-7141@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
Johannes M Dieterich <jmd@freebsd.org> has reassigned Bugzilla Automation
<bugzilla@FreeBSD.org>'s request for maintainer-feedback to x11@FreeBSD.org:
Bug 219561: [lang/clover] partially broken
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D219561



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

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

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


		  t769: i64 =3D zero_extend t768

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

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


		  t769: i64 =3D zero_extend t768

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


This comes from a trivial OpenCL kernel:


__kernel void powGrid(__global KEDFOCLV *data, const double exponent){=09=
=20=20=20=20=20=20=20

    const size_t idx =3D get_global_id(0);
    data[idx] =3D 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 D1091=
7)
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=
/Sem
a.cpp,
line 317.
Abort trap (core dumped)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-219561-7141-y3Mzoo6gUX>