From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 65873] New: R600/SI: Cannot select store with truncate to 32-bit
Date: Tue, 18 Jun 2013 00:05:46 +0000
Message-ID:
Priority
medium
Bug ID
65873
Assignee
dri-devel@lists.freedesktop.org
Summary
R600/SI: Cannot select store with truncate to 32-bit
Severity
normal
Classification
Unclassified
OS
Linux (All)
Reporter
awatry@gmail.com
Hardware
Other
Status
NEW
Version
git
Component
Drivers/Gallium/radeonsi
Product
Mesa
Created attachment 80970 [details]
Piglit test that triggers the error on SI
Running the attached piglit CL test, I'm getting the following on R600/SI
(Pitcairn, 7850):
LLVM ERROR: Cannot select: 0x2add8b0: ch = store 0x2add7b0, 0x2adcfb0,
0x2adc640, 0x2adbd40<ST4[%out+4], trunc to i32> [ORD=4] [ID=17]
0x2adcfb0: i64,ch = load 0x20468b8, 0x2add1b0, 0x2adbd40<LD4[%mem+4], zext
from i32> [ORD=1] [ID=14]
0x2add1b0: i64 = add 0x2adc140, 0x2adc540 [ORD=1] [ID=11]
0x2adc140: i64,ch = load 0x20468b8, 0x2adc040, 0x2adbd40<LD8[undef]>
[ID=9]
0x2adc040: i64 = add 0x2adba40, 0x2adbf40 [ID=7]
0x2adba40: i64,ch = CopyFromReg 0x20468b8, 0x2adb940 [ID=6]
0x2adb940: i64 = Register %vreg0 [ID=1]
0x2adbf40: i64 = Constant<44> [ID=4]
0x2adbd40: i64 = undef [ID=3]
0x2adc540: i64 = Constant<4> [ID=5]
0x2adbd40: i64 = undef [ID=3]
0x2adc640: i64 = add 0x2adbe40, 0x2adc540 [ORD=4] [ID=13]
0x2adbe40: i64,ch = load 0x20468b8, 0x2adbc40, 0x2adbd40<LD8[undef]>
[ID=10]
0x2adbc40: i64 = add 0x2adba40, 0x2adbb40 [ID=8]
0x2adba40: i64,ch = CopyFromReg 0x20468b8, 0x2adb940 [ID=6]
0x2adb940: i64 = Register %vreg0 [ID=1]
0x2adbb40: i64 = Constant<36> [ID=2]
0x2adbd40: i64 = undef [ID=3]
0x2adc540: i64 = Constant<4> [ID=5]
0x2adbd40: i64 = undef [ID=3]
I'll attach a dump from llc -debug-only=isel in a minute.