Bug 70227

Summary: OpenCL reaper-prime app crashes due to atomic_or unimplemented
Product: Mesa Reporter: Alexey Shvetsov <alexxy>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: edb+freedesktop
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Alexey Shvetsov 2013-10-07 14:18:20 UTC
Miner app https://github.com/arnuschky/primecoin-reaper.git crashes with 

./reaper 
\|||||||||||||||||||||/
-  Reaper v13 64-bit  -
-    PRIME BETA 2     -
-   coded by mtrlt    -
/|||||||||||||||||||||\


Warning: unknown property "use_gpu" in configuration file.
I'm now mining primecoin!
Share thread started
GeneratePrimeTable() : setting nSievePercentage = 1, nSieveSize = 100000
GeneratePrimeTable() : prime table [1, 100000] generated with 9592 primes
Available CPU mining algorithms: hp7
Using default: hp7
Creating 1 CPU thread.
1...Warning: can't set thread priority
done
List of platforms:
        0       Default
Using platform number 0

Using device 0
OpenCL device 0........
Compiling kernel... this could take up to 2 minutes.
2 warnings generated.
Building kernel CalculateMultipliers
Building kernel Sieve
Building kernel Combine
Building kernel Fermat
done
Compiling kernel... this could take up to 2 minutes.
2 warnings generated.
Building kernel CalculateMultipliers
Building kernel Sieve
Building kernel Combine
Building kernel Fermat
0x7f735cdadd00: i32 = GlobalAddress<i32 (...)* @atomic_or> 0 [ORD=104]
Stack dump:
0.      Running pass 'Function Pass Manager' on module 'radeon'.
1.      Running pass 'AMDGPU DAG->DAG Pattern Instruction Selection' on function '@Sieve'
Segmentation fault
Comment 1 Alexey Shvetsov 2013-10-24 15:49:21 UTC
With recent llvm master branch build 
now it failes with

Building kernel CalculateMultipliers
Building kernel Sieve
Building kernel Combine
Building kernel Fermat
LLVM ERROR: Cannot select: 0x7f638ce2c2d0: i32,ch = AtomicLoadAdd 0x7f638ce86840, 0x7f638ce25e60, 0x7f638ce25f60<Volatile LDST4[%counter]> [ORD=36] [ID=12]
  0x7f638ce25e60: i32,ch = CopyFromReg 0x7f638ce86840, 0x7f638ce2b7c0 [ORD=36] [ID=8]
    0x7f638ce2b7c0: i32 = Register %vreg4 [ID=2]
  0x7f638ce25f60: i32 = Constant<1> [ID=1]
In function: Combine
Comment 2 Alexey Shvetsov 2013-10-24 15:53:24 UTC
And sometimes again with old error

Building kernel Combine
Building kernel Fermat
0x7f19ac3e0a30: i32 = GlobalAddress<i32 (...)* @atomic_or> 0 [ORD=104]
Stack dump:
0.      Running pass 'Function Pass Manager' on module 'radeon'.
1.      Running pass 'AMDGPU DAG->DAG Pattern Instruction Selection' on function '@Sieve'
Comment 3 Serge Martin 2015-07-29 14:58:39 UTC
atomic should be ok with libclc from r217914 (the 17/09/2014)

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.