| ; RUN: llc < %s | |
| ; NVPTX can not select llvm.stacksave (dynamic_stackalloc) and llvm.stackrestore | |
| ; UNSUPPORTED: target=nvptx{{.*}} | |
| declare ptr @llvm.stacksave() | |
| declare void @llvm.stackrestore(ptr) | |
| define ptr @test(i32 %N) { | |
| %tmp = call ptr @llvm.stacksave( ) ; <ptr> [#uses=1] | |
| %P = alloca i32, i32 %N ; <ptr> [#uses=1] | |
| call void @llvm.stackrestore( ptr %tmp ) | |
| %Q = alloca i32, i32 %N ; <ptr> [#uses=0] | |
| ret ptr %P | |
| } | |