https://bugs.freedesktop.org/show_bug.cgi?id=89785
--- Comment #4 from Tom Stellard tstellar@gmail.com --- Here is the bug:
s_mov_b64 vcc, s[6:7] ; Store pointer for s_load_dword* in vcc
<snip>
v_cmpx_le_f32_e32 vcc, 0, v6 ; Kill instructions v_cmpx_le_f32_e32 vcc, 0, v6 v_cmpx_le_f32_e32 vcc, 0, v6 v_cmpx_le_f32_e32 vcc, 0, v6
<snip>
s_load_dwordx8 s[8:15], vcc, 0x48 ; vcc no longer contains a pointer.
The lowering of kill instructions needs to save and restore VCC if it is live.
As a work around, you can try this branch: http://cgit.freedesktop.org/~tstellar/llvm/log/?h=sched-perf-Mar-27-2015 or take the top two commits and apply it to llvm master. I think this will avoid the bug.