| // RUN: cir-opt %s | FileCheck %s |
| |
| !s32i = !cir.int<s, 32> |
| !s64i = !cir.int<s, 64> |
| !u32i = !cir.int<u, 32> |
| !u64i = !cir.int<u, 64> |
| |
| module { |
| // void empty() { } |
| cir.func @empty() { |
| cir.return |
| } |
| // CHECK: cir.func @empty() { |
| // CHECK: cir.return |
| // CHECK: } |
| |
| // void voidret() { return; } |
| cir.func @voidret() { |
| cir.return |
| } |
| // CHECK: cir.func @voidret() { |
| // CHECK: cir.return |
| // CHECK: } |
| |
| // int intfunc() { return 42; } |
| cir.func @intfunc() -> !s32i { |
| %0 = cir.const #cir.int<42> : !s32i |
| cir.return %0 : !s32i |
| } |
| // CHECK: cir.func @intfunc() -> !s32i { |
| // CHECK: %[[VAL:.*]] = cir.const #cir.int<42> : !s32i |
| // CHECK: cir.return %[[VAL]] : !s32i |
| // CHECK: } |
| |
| // int scopes() { |
| // { |
| // { |
| // return 99; |
| // } |
| // } |
| //} |
| cir.func @scopes() -> !s32i { |
| cir.scope { |
| cir.scope { |
| %0 = cir.const #cir.int<99> : !s32i |
| cir.return %0 : !s32i |
| } |
| } |
| cir.trap |
| } |
| // CHECK: cir.func @scopes() -> !s32i { |
| // CHECK: cir.scope { |
| // CHECK: cir.scope { |
| // CHECK: %[[VAL:.*]] = cir.const #cir.int<99> : !s32i |
| // CHECK: cir.return %[[VAL]] : !s32i |
| // CHECK: } |
| // CHECK: } |
| // CHECK: cir.trap |
| // CHECK: } |
| |
| // long longfunc() { return 42l; } |
| cir.func @longfunc() -> !s64i { |
| %0 = cir.const #cir.int<42> : !s64i |
| cir.return %0 : !s64i |
| } |
| // CHECK: cir.func @longfunc() -> !s64i |
| // CHECK: %0 = cir.const #cir.int<42> : !s64i |
| // CHECK: cir.return %0 : !s64i |
| // CHECK: } |
| |
| // unsigned unsignedfunc() { return 42u; } |
| cir.func @unsignedfunc() -> !u32i { |
| %0 = cir.const #cir.int<42> : !u32i |
| cir.return %0 : !u32i |
| } |
| // CHECK: cir.func @unsignedfunc() -> !u32i |
| // CHECK: %[[VAL:.*]] = cir.const #cir.int<42> : !u32i |
| // CHECK: cir.return %[[VAL]] : !u32i |
| // CHECK: } |
| |
| // unsigned long long ullfunc() { return 42ull; } |
| cir.func @ullfunc() -> !u64i { |
| %0 = cir.const #cir.int<42> : !u64i |
| cir.return %0 : !u64i |
| } |
| // CHECK: cir.func @ullfunc() -> !u64i |
| // CHECK: %[[VAL:.*]] = cir.const #cir.int<42> : !u64i |
| // CHECK: cir.return %[[VAL:.*]] : !u64i |
| // CHECK: } |
| } |