46 lines · plain
1// RUN: cir-opt %s --verify-roundtrip | FileCheck %s2 3!s32i = !cir.int<s, 32>4!s8i = !cir.int<s, 8>5#true = #cir.bool<true> : !cir.bool6module {7 cir.func @binary_assign() {8 %0 = cir.alloca !cir.bool, !cir.ptr<!cir.bool>, ["b"] {alignment = 1 : i64}9 %1 = cir.alloca !s8i, !cir.ptr<!s8i>, ["c"] {alignment = 1 : i64}10 %2 = cir.alloca !cir.float, !cir.ptr<!cir.float>, ["f"] {alignment = 4 : i64}11 %3 = cir.alloca !s32i, !cir.ptr<!s32i>, ["i"] {alignment = 4 : i64}12 %4 = cir.const #true13 cir.store %4, %0 : !cir.bool, !cir.ptr<!cir.bool>14 %5 = cir.const #cir.int<65> : !s32i15 %6 = cir.cast integral %5 : !s32i -> !s8i16 cir.store %6, %1 : !s8i, !cir.ptr<!s8i>17 %7 = cir.const #cir.fp<3.140000e+00> : !cir.float18 cir.store %7, %2 : !cir.float, !cir.ptr<!cir.float>19 %8 = cir.const #cir.int<42> : !s32i20 cir.store %8, %3 : !s32i, !cir.ptr<!s32i>21 cir.return22 }23}24 25// CHECK: !s32i = !cir.int<s, 32>26// CHECK: !s8i = !cir.int<s, 8>27// CHECK: #true = #cir.bool<true> : !cir.bool28// CHECK: module {29// CHECK: cir.func{{.*}} @binary_assign() {30// CHECK: %0 = cir.alloca !cir.bool, !cir.ptr<!cir.bool>, ["b"] {alignment = 1 : i64}31// CHECK: %1 = cir.alloca !s8i, !cir.ptr<!s8i>, ["c"] {alignment = 1 : i64}32// CHECK: %2 = cir.alloca !cir.float, !cir.ptr<!cir.float>, ["f"] {alignment = 4 : i64}33// CHECK: %3 = cir.alloca !s32i, !cir.ptr<!s32i>, ["i"] {alignment = 4 : i64}34// CHECK: %4 = cir.const #true35// CHECK: cir.store %4, %0 : !cir.bool, !cir.ptr<!cir.bool>36// CHECK: %5 = cir.const #cir.int<65> : !s32i37// CHECK: %6 = cir.cast integral %5 : !s32i -> !s8i38// CHECK: cir.store %6, %1 : !s8i, !cir.ptr<!s8i>39// CHECK: %7 = cir.const #cir.fp<3.140000e+00> : !cir.float40// CHECK: cir.store %7, %2 : !cir.float, !cir.ptr<!cir.float>41// CHECK: %8 = cir.const #cir.int<42> : !s32i42// CHECK: cir.store %8, %3 : !s32i, !cir.ptr<!s32i>43// CHECK: cir.return44// CHECK: }45// CHECK: }46