File tree Expand file tree Collapse file tree 4 files changed +79
-0
lines changed Expand file tree Collapse file tree 4 files changed +79
-0
lines changed Original file line number Diff line number Diff line change 1+ ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s 
2+ ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} 
3+ 
4+ ; CHECK: %[[#BoolTy:]] = OpTypeBool 
5+ ; CHECK: %[[#VecTy:]] = OpTypeVector %[[#BoolTy]] 4 
6+ ; CHECK: %[[#False:]] = OpConstantFalse %[[#BoolTy]] 
7+ ; CHECK: %[[#Composite:]] = OpConstantComposite %[[#VecTy]] %[[#False]] %[[#False]] %[[#False]] %[[#False]] 
8+ ; CHECK: OpReturnValue %[[#Composite]] 
9+ 
10+ define  spir_func <4  x i1 > @test (<4  x float > %a ) {
11+  %compare  = fcmp  false  <4  x float > %a , %a 
12+  ret  <4  x i1 > %compare 
13+ }
Original file line number Diff line number Diff line change 1+ ;; This test checks if we generate a single builtin variable for the following 
2+ ;; LLVM IR. 
3+ ;; @__spirv_BuiltInLocalInvocationId - A global variable 
4+ ;; %3 = tail call i64 @_Z12get_local_idj(i32 0) - A function call 
5+ 
6+ ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s 
7+ ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} 
8+ 
9+ ; CHECK: OpName %[[#]] "__spirv_BuiltInLocalInvocationId" 
10+ ; CHECK-NOT: OpName %[[#]] "__spirv_BuiltInLocalInvocationId.1" 
11+ 
12+ @__spirv_BuiltInLocalInvocationId  = external  dso_local local_unnamed_addr  addrspace (1 ) constant  <3  x i64 >, align  32 
13+ 
14+ declare  spir_func i64  @_Z12get_local_idj (i32 ) local_unnamed_addr 
15+ 
16+ define  spir_kernel void  @test (i32  %a ) {
17+ entry:
18+   %builtin_call  = tail  call  i64  @_Z12get_local_idj (i32  0 )
19+   ret  void 
20+ }
Original file line number Diff line number Diff line change 1+ ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s 
2+ ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} 
3+ 
4+ @.str.1  = private  unnamed_addr  addrspace (1 ) constant  [1  x i8 ] zeroinitializer , align  1 
5+ 
6+ define  linkonce_odr  hidden  spir_func void  @test () {
7+ entry:
8+ ; CHECK: %[[#MinusOne:]] = OpConstant %[[#]] 18446744073709551615 
9+ ; CHECK: %[[#Ptr:]] = OpConvertUToPtr %[[#]]  %[[#MinusOne]] 
10+ ; CHECK: %[[#PtrCast:]] = OpPtrCastToGeneric %[[#]] %[[#]] 
11+ ; CHECK: %[[#]] = OpFunctionCall %[[#]] %[[#]] %[[#PtrCast]] %[[#Ptr]] 
12+ 
13+   %cast  = bitcast  ptr  addrspace (4 ) inttoptr  (i64  -1  to  ptr  addrspace (4 )) to  ptr  addrspace (4 )
14+   call  spir_func void  @bar (ptr  addrspace (4 ) addrspacecast (ptr  addrspace (1 ) @.str.1  to  ptr  addrspace (4 )), ptr  addrspace (4 ) %cast )
15+   ret  void 
16+ }
17+ 
18+ define  linkonce_odr  hidden  spir_func void  @bar (ptr  addrspace (4 ) %begin , ptr  addrspace (4 ) %end ) {
19+ entry:
20+   ret  void 
21+ }
Original file line number Diff line number Diff line change 1+ ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s 
2+ ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} 
3+ 
4+ ; This test checks that basic blocks are reordered in SPIR-V so that dominators 
5+ ; are emitted ahead of their dominated blocks as required by the SPIR-V 
6+ ; specification. 
7+ 
8+ ; CHECK-DAG: OpName %[[#ENTRY:]] "entry" 
9+ ; CHECK-DAG: OpName %[[#FOR_BODY137_LR_PH:]] "for.body137.lr.ph" 
10+ ; CHECK-DAG: OpName %[[#FOR_BODY:]] "for.body" 
11+ 
12+ ; CHECK: %[[#ENTRY]] = OpLabel 
13+ ; CHECK: %[[#FOR_BODY]] = OpLabel 
14+ ; CHECK: %[[#FOR_BODY137_LR_PH]] = OpLabel 
15+ 
16+ define  spir_kernel void  @test (ptr  addrspace (1 ) %arg , i1  %cond ) {
17+ entry:
18+   br  label  %for.body 
19+ 
20+ for.body137.lr.ph:                                ; preds = %for.body 
21+   ret  void 
22+ 
23+ for.body:                                         ; preds = %for.body, %entry 
24+   br  i1  %cond , label  %for.body , label  %for.body137.lr.ph 
25+ }
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments