51 lines · plain
1// RUN: cir-opt %s --verify-roundtrip | FileCheck %s2 3!s32i = !cir.int<s, 32>4!s64i = !cir.int<s, 64>5!u32i = !cir.int<u, 32>6!u64i = !cir.int<u, 64>7 8module {9 cir.func @test_unary_unsigned() {10 %0 = cir.alloca !u32i, !cir.ptr<!u32i>, ["a"] {alignment = 4 : i64}11 %1 = cir.load %0 : !cir.ptr<!u32i>, !u32i12 %2 = cir.unary(plus, %1) : !u32i, !u32i13 %3 = cir.unary(minus, %1) : !u32i, !u32i14 %4 = cir.unary(not, %1) : !u32i, !u32i15 %5 = cir.unary(inc, %1) : !u32i, !u32i16 %6 = cir.unary(dec, %1) : !u32i, !u32i17 cir.return18 }19// CHECK: cir.func{{.*}} @test_unary_unsigned() {20// CHECK: %0 = cir.alloca !u32i, !cir.ptr<!u32i>, ["a"] {alignment = 4 : i64}21// CHECK: %1 = cir.load %0 : !cir.ptr<!u32i>, !u32i22// CHECK: %2 = cir.unary(plus, %1) : !u32i, !u32i23// CHECK: %3 = cir.unary(minus, %1) : !u32i, !u32i24// CHECK: %4 = cir.unary(not, %1) : !u32i, !u32i25// CHECK: %5 = cir.unary(inc, %1) : !u32i, !u32i26// CHECK: %6 = cir.unary(dec, %1) : !u32i, !u32i27// CHECK: cir.return28// CHECK: }29 30 cir.func @test_unary_signed() {31 %0 = cir.alloca !s32i, !cir.ptr<!s32i>, ["a"] {alignment = 4 : i64}32 %1 = cir.load %0 : !cir.ptr<!s32i>, !s32i33 %2 = cir.unary(plus, %1) : !s32i, !s32i34 %3 = cir.unary(minus, %1) nsw : !s32i, !s32i35 %4 = cir.unary(not, %1) : !s32i, !s32i36 %5 = cir.unary(inc, %1) nsw : !s32i, !s32i37 %6 = cir.unary(dec, %1) nsw : !s32i, !s32i38 cir.return39 }40// CHECK: cir.func{{.*}} @test_unary_signed() {41// CHECK: %0 = cir.alloca !s32i, !cir.ptr<!s32i>, ["a"] {alignment = 4 : i64}42// CHECK: %1 = cir.load %0 : !cir.ptr<!s32i>, !s32i43// CHECK: %2 = cir.unary(plus, %1) : !s32i, !s32i44// CHECK: %3 = cir.unary(minus, %1) nsw : !s32i, !s32i45// CHECK: %4 = cir.unary(not, %1) : !s32i, !s32i46// CHECK: %5 = cir.unary(inc, %1) nsw : !s32i, !s32i47// CHECK: %6 = cir.unary(dec, %1) nsw : !s32i, !s32i48// CHECK: cir.return49// CHECK: }50}51