mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
262321d1ff
This patch lets the llvm tools handle the new HVX target features that are added by frontend (clang). The target-features are of the form "hvx-length64b" for 64 Byte HVX mode, "hvx-length128b" for 128 Byte mode HVX. "hvx-double" is an alias to "hvx-length128b" and is soon will be deprecated. The hvx version target feature is upgated form "+hvx" to "+hvxv{version_number}. Eg: "+hvxv62" For the correct HVX code generation, the user must use the following target features. For 64B mode: "+hvxv62" "+hvx-length64b" For 128B mode: "+hvxv62" "+hvx-length128b" Clang picks a default length if none is specified. If for some reason, no hvx-length is specified to llvm, the compilation will bail out. There is a corresponding clang patch. Differential Revision: https://reviews.llvm.org/D38851 llvm-svn: 316101
40 lines
992 B
ArmAsm
40 lines
992 B
ArmAsm
#RUN: llvm-mc -triple=hexagon -mcpu=hexagonv60 -filetype=obj -mhvx %s | \
|
|
#RUN: llvm-objdump -triple=hexagon -mcpu=hexagonv60 -mhvx -d - | \
|
|
#RUN: FileCheck %s
|
|
|
|
#CHECK: 198fd829 { v9.uw = vlsr(v24.uw,{{ *}}r15) }
|
|
v9.uw=vlsr(v24.uw,r15)
|
|
|
|
#CHECK: 1999d645 { v5.uh = vlsr(v22.uh,{{ *}}r25) }
|
|
v5.uh=vlsr(v22.uh,r25)
|
|
|
|
#CHECK: 198cc303 { v3.h = vasl(v3.h,{{ *}}r12) }
|
|
v3.h=vasl(v3.h,r12)
|
|
|
|
#CHECK: 1965d7ac { v12.w = vasr(v23.w,{{ *}}r5) }
|
|
v12.w=vasr(v23.w,r5)
|
|
|
|
#CHECK: 197dddc3 { v3.h = vasr(v29.h,{{ *}}r29) }
|
|
v3.h=vasr(v29.h,r29)
|
|
|
|
#CHECK: 197adde8 { v8.w = vasl(v29.w,{{ *}}r26) }
|
|
v8.w=vasl(v29.w,r26)
|
|
|
|
#CHECK: 1977cc26 { v6 = vror(v12,{{ *}}r23) }
|
|
v6=vror(v12,r23)
|
|
|
|
#CHECK: 1e02cfad { v13.uw = vcl0(v15.uw) }
|
|
v13.uw=vcl0(v15.uw)
|
|
|
|
#CHECK: 1e02defb { v27.uh = vcl0(v30.uh) }
|
|
v27.uh=vcl0(v30.uh)
|
|
|
|
#CHECK: 1e03de90 { v16.w = vnormamt(v30.w) }
|
|
v16.w=vnormamt(v30.w)
|
|
|
|
#CHECK: 1e03d4a3 { v3.h = vnormamt(v20.h) }
|
|
v3.h=vnormamt(v20.h)
|
|
|
|
#CHECK: 1e02c2d8 { v24.h = vpopcount(v2.h) }
|
|
v24.h=vpopcount(v2.h)
|