| // RUN: cir-opt %s -cir-to-llvm -o - | FileCheck %s -check-prefix=MLIR |
| // RUN: cir-opt %s -cir-to-llvm -o - | mlir-translate -mlir-to-llvmir | FileCheck %s -check-prefix=LLVM |
| |
| !u8i = !cir.int<u, 8> |
| |
| module { |
| cir.func @stack_save() { |
| %0 = cir.stacksave : !cir.ptr<!u8i> |
| cir.stackrestore %0 : !cir.ptr<!u8i> |
| cir.return |
| } |
| } |
| |
| // MLIR: module { |
| // MLIR-NEXT: llvm.func @stack_save |
| // MLIR-NEXT: %0 = llvm.intr.stacksave : !llvm.ptr |
| // MLIR-NEXT: llvm.intr.stackrestore %0 : !llvm.ptr |
| // MLIR-NEXT: llvm.return |
| // MLIR-NEXT: } |
| // MLIR-NEXT: } |
| |
| // LLVM: define void @stack_save() { |
| // LLVM: %1 = call ptr @llvm.stacksave.p0() |
| // LLVM: call void @llvm.stackrestore.p0(ptr %1) |
| // LLVM: ret void |
| // LLVM: } |