19a53f5f5SMatt Arsenault; RUN: split-file %s %t 2*10304835SMatt Arsenault; RUN: not --crash llc -global-isel=0 -mtriple=amdgcn-amd-amdpal -mcpu=gfx1030 -filetype=null %t/stacksave-error.ll 2>&1 | FileCheck -check-prefix=ERR-SAVE-SDAG %s 3*10304835SMatt Arsenault; RUN: not --crash llc -global-isel=0 -mtriple=amdgcn-amd-amdpal -mcpu=gfx1030 -filetype=null %t/stackrestore-error.ll 2>&1 | FileCheck -check-prefix=ERR-RESTORE-SDAG %s 4*10304835SMatt Arsenault 5*10304835SMatt Arsenault; RUN: not --crash llc -global-isel=1 -mtriple=amdgcn-amd-amdpal -mcpu=gfx1030 -filetype=null %t/stacksave-error.ll 2>&1 | FileCheck -check-prefix=ERR-SAVE-GISEL %s 6*10304835SMatt Arsenault; RUN: not --crash llc -global-isel=1 -mtriple=amdgcn-amd-amdpal -mcpu=gfx1030 -filetype=null %t/stackrestore-error.ll 2>&1 | FileCheck -check-prefix=ERR-RESTORE-GISEL %s 79a53f5f5SMatt Arsenault 89a53f5f5SMatt Arsenault; Test that an error is produced if stacksave/stackrestore are used 99a53f5f5SMatt Arsenault; with the wrong (default) address space. 109a53f5f5SMatt Arsenault 119a53f5f5SMatt Arsenault;--- stacksave-error.ll 129a53f5f5SMatt Arsenault 139a53f5f5SMatt Arsenaultdeclare ptr @llvm.stacksave.p0() 149a53f5f5SMatt Arsenault 15*10304835SMatt Arsenault; ERR-SAVE-SDAG: LLVM ERROR: Cannot select: {{.+}}: i64,ch = stacksave 16*10304835SMatt Arsenault; ERR-SAVE-GISEL: LLVM ERROR: unable to legalize instruction: %{{[0-9]+}}:_(p0) = G_STACKSAVE (in function: func_store_stacksave) 179a53f5f5SMatt Arsenaultdefine void @func_store_stacksave() { 189a53f5f5SMatt Arsenault %stacksave = call ptr @llvm.stacksave.p0() 199a53f5f5SMatt Arsenault call void asm sideeffect "; use $0", "s"(ptr %stacksave) 209a53f5f5SMatt Arsenault ret void 219a53f5f5SMatt Arsenault} 229a53f5f5SMatt Arsenault 239a53f5f5SMatt Arsenault;--- stackrestore-error.ll 249a53f5f5SMatt Arsenault 259a53f5f5SMatt Arsenaultdeclare void @llvm.stackrestore.p0(ptr) 269a53f5f5SMatt Arsenault 27*10304835SMatt Arsenault; ERR-RESTORE-SDAG: LLVM ERROR: Cannot select: {{.+}}: ch = stackrestore {{.+}}, {{.+}} 28*10304835SMatt Arsenault; ERR-RESTORE-GISEL: LLVM ERROR: unable to legalize instruction: G_STACKRESTORE %{{[0-9]+}}:_(p0) (in function: func_stacksave_sgpr) 299a53f5f5SMatt Arsenaultdefine amdgpu_gfx void @func_stacksave_sgpr(ptr inreg %stack) { 309a53f5f5SMatt Arsenault call void @llvm.stackrestore.p0(ptr %stack) 319a53f5f5SMatt Arsenault ret void 329a53f5f5SMatt Arsenault} 33