103 lines · plain
1; RUN: not llvm-as %s --disable-output 2>&1 | FileCheck %s2 3target triple = "amdgcn-amd-amdhsa"4 5; CHECK: alloca on amdgpu must be in addrspace(5)6; CHECK-NEXT: %alloca.0 = alloca i32, align 47; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)8; CHECK-NEXT: %alloca.1 = alloca i32, align 4, addrspace(1)9; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)10; CHECK-NEXT: %alloca.2 = alloca i32, align 4, addrspace(2)11; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)12; CHECK-NEXT: %alloca.3 = alloca i32, align 4, addrspace(3)13; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)14; CHECK-NEXT: %alloca.4 = alloca i32, align 4, addrspace(4)15; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)16; CHECK-NEXT: %alloca.6 = alloca i32, align 4, addrspace(6)17; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)18; CHECK-NEXT: %alloca.7 = alloca i32, align 4, addrspace(7)19; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)20; CHECK-NEXT: %alloca.8 = alloca i32, align 4, addrspace(8)21; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)22; CHECK-NEXT: %alloca.9 = alloca i32, align 4, addrspace(9)23define void @static_alloca() {24entry:25 %alloca.0 = alloca i32, align 426 %alloca.1 = alloca i32, align 4, addrspace(1)27 %alloca.2 = alloca i32, align 4, addrspace(2)28 %alloca.3 = alloca i32, align 4, addrspace(3)29 %alloca.4 = alloca i32, align 4, addrspace(4)30 %alloca.5 = alloca i32, align 4, addrspace(5)31 %alloca.6 = alloca i32, align 4, addrspace(6)32 %alloca.7 = alloca i32, align 4, addrspace(7)33 %alloca.8 = alloca i32, align 4, addrspace(8)34 %alloca.9 = alloca i32, align 4, addrspace(9)35 ret void36}37 38; CHECK: alloca on amdgpu must be in addrspace(5)39; CHECK-NEXT: %alloca.0 = alloca i32, i32 %n, align 440; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)41; CHECK-NEXT: %alloca.1 = alloca i32, i32 %n, align 4, addrspace(1)42; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)43; CHECK-NEXT: %alloca.2 = alloca i32, i32 %n, align 4, addrspace(2)44; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)45; CHECK-NEXT: %alloca.3 = alloca i32, i32 %n, align 4, addrspace(3)46; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)47; CHECK-NEXT: %alloca.4 = alloca i32, i32 %n, align 4, addrspace(4)48; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)49; CHECK-NEXT: %alloca.6 = alloca i32, i32 %n, align 4, addrspace(6)50; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)51; CHECK-NEXT: %alloca.7 = alloca i32, i32 %n, align 4, addrspace(7)52; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)53; CHECK-NEXT: %alloca.8 = alloca i32, i32 %n, align 4, addrspace(8)54; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)55; CHECK-NEXT: %alloca.9 = alloca i32, i32 %n, align 4, addrspace(9)56define void @dynamic_alloca_i32(i32 %n) {57entry:58 %alloca.0 = alloca i32, i32 %n, align 459 %alloca.1 = alloca i32, i32 %n, align 4, addrspace(1)60 %alloca.2 = alloca i32, i32 %n, align 4, addrspace(2)61 %alloca.3 = alloca i32, i32 %n, align 4, addrspace(3)62 %alloca.4 = alloca i32, i32 %n, align 4, addrspace(4)63 %alloca.5 = alloca i32, i32 %n, align 4, addrspace(5)64 %alloca.6 = alloca i32, i32 %n, align 4, addrspace(6)65 %alloca.7 = alloca i32, i32 %n, align 4, addrspace(7)66 %alloca.8 = alloca i32, i32 %n, align 4, addrspace(8)67 %alloca.9 = alloca i32, i32 %n, align 4, addrspace(9)68 ret void69}70 71; CHECK: alloca on amdgpu must be in addrspace(5)72; CHECK-NEXT: %alloca.0 = alloca i32, i64 %n, align 473; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)74; CHECK-NEXT: %alloca.1 = alloca i32, i64 %n, align 4, addrspace(1)75; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)76; CHECK-NEXT: %alloca.2 = alloca i32, i64 %n, align 4, addrspace(2)77; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)78; CHECK-NEXT: %alloca.3 = alloca i32, i64 %n, align 4, addrspace(3)79; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)80; CHECK-NEXT: %alloca.4 = alloca i32, i64 %n, align 4, addrspace(4)81; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)82; CHECK-NEXT: %alloca.6 = alloca i32, i64 %n, align 4, addrspace(6)83; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)84; CHECK-NEXT: %alloca.7 = alloca i32, i64 %n, align 4, addrspace(7)85; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)86; CHECK-NEXT: %alloca.8 = alloca i32, i64 %n, align 4, addrspace(8)87; CHECK-NEXT: alloca on amdgpu must be in addrspace(5)88; CHECK-NEXT: %alloca.9 = alloca i32, i64 %n, align 4, addrspace(9)89define void @dynamic_alloca_i64(i64 %n) {90entry:91 %alloca.0 = alloca i32, i64 %n, align 492 %alloca.1 = alloca i32, i64 %n, align 4, addrspace(1)93 %alloca.2 = alloca i32, i64 %n, align 4, addrspace(2)94 %alloca.3 = alloca i32, i64 %n, align 4, addrspace(3)95 %alloca.4 = alloca i32, i64 %n, align 4, addrspace(4)96 %alloca.5 = alloca i32, i64 %n, align 4, addrspace(5)97 %alloca.6 = alloca i32, i64 %n, align 4, addrspace(6)98 %alloca.7 = alloca i32, i64 %n, align 4, addrspace(7)99 %alloca.8 = alloca i32, i64 %n, align 4, addrspace(8)100 %alloca.9 = alloca i32, i64 %n, align 4, addrspace(9)101 ret void102}103