90 lines · plain
1// Test the cir.objsize operation can parse and print correctly (roundtrip)2// with all possible combinations of optional attributes3 4// RUN: cir-opt %s --verify-roundtrip | FileCheck %s5 6!u64i = !cir.int<u, 64>7!void = !cir.void8 9module {10 cir.func @test_max(%arg0: !cir.ptr<!void>) -> !u64i {11 %0 = cir.objsize max %arg0 : !cir.ptr<!void> -> !u64i12 cir.return %0 : !u64i13 }14 15 cir.func @test_max_nullunknown(%arg0: !cir.ptr<!void>) -> !u64i {16 %0 = cir.objsize max nullunknown %arg0 : !cir.ptr<!void> -> !u64i17 cir.return %0 : !u64i18 }19 20 cir.func @test_max_dynamic(%arg0: !cir.ptr<!void>) -> !u64i {21 %0 = cir.objsize max dynamic %arg0 : !cir.ptr<!void> -> !u64i22 cir.return %0 : !u64i23 }24 25 cir.func @test_max_nullunknown_dynamic(%arg0: !cir.ptr<!void>) -> !u64i {26 %0 = cir.objsize max nullunknown dynamic %arg0 : !cir.ptr<!void> -> !u64i27 cir.return %0 : !u64i28 }29 30 cir.func @test_min(%arg0: !cir.ptr<!void>) -> !u64i {31 %0 = cir.objsize min %arg0 : !cir.ptr<!void> -> !u64i32 cir.return %0 : !u64i33 }34 35 cir.func @test_min_nullunknown(%arg0: !cir.ptr<!void>) -> !u64i {36 %0 = cir.objsize min nullunknown %arg0 : !cir.ptr<!void> -> !u64i37 cir.return %0 : !u64i38 }39 40 cir.func @test_min_dynamic(%arg0: !cir.ptr<!void>) -> !u64i {41 %0 = cir.objsize min dynamic %arg0 : !cir.ptr<!void> -> !u64i42 cir.return %0 : !u64i43 }44 45 cir.func @test_min_nullunknown_dynamic(%arg0: !cir.ptr<!void>) -> !u64i {46 %0 = cir.objsize min nullunknown dynamic %arg0 : !cir.ptr<!void> -> !u64i47 cir.return %0 : !u64i48 }49}50 51// CHECK: cir.func @test_max(%arg0: !cir.ptr<!void>) -> !u64i {52// CHECK: %0 = cir.objsize max %arg0 : !cir.ptr<!void> -> !u64i53// CHECK: cir.return %0 : !u64i54// CHECK: }55 56// CHECK: cir.func @test_max_nullunknown(%arg0: !cir.ptr<!void>) -> !u64i {57// CHECK: %0 = cir.objsize max nullunknown %arg0 : !cir.ptr<!void> -> !u64i58// CHECK: cir.return %0 : !u64i59// CHECK: }60 61// CHECK: cir.func @test_max_dynamic(%arg0: !cir.ptr<!void>) -> !u64i {62// CHECK: %0 = cir.objsize max dynamic %arg0 : !cir.ptr<!void> -> !u64i63// CHECK: cir.return %0 : !u64i64// CHECK: }65 66// CHECK: cir.func @test_max_nullunknown_dynamic(%arg0: !cir.ptr<!void>) -> !u64i {67// CHECK: %0 = cir.objsize max nullunknown dynamic %arg0 : !cir.ptr<!void> -> !u64i68// CHECK: cir.return %0 : !u64i69// CHECK: }70 71// CHECK: cir.func @test_min(%arg0: !cir.ptr<!void>) -> !u64i {72// CHECK: %0 = cir.objsize min %arg0 : !cir.ptr<!void> -> !u64i73// CHECK: cir.return %0 : !u64i74// CHECK: }75 76// CHECK: cir.func @test_min_nullunknown(%arg0: !cir.ptr<!void>) -> !u64i {77// CHECK: %0 = cir.objsize min nullunknown %arg0 : !cir.ptr<!void> -> !u64i78// CHECK: cir.return %0 : !u64i79// CHECK: }80 81// CHECK: cir.func @test_min_dynamic(%arg0: !cir.ptr<!void>) -> !u64i {82// CHECK: %0 = cir.objsize min dynamic %arg0 : !cir.ptr<!void> -> !u64i83// CHECK: cir.return %0 : !u64i84// CHECK: }85 86// CHECK: cir.func @test_min_nullunknown_dynamic(%arg0: !cir.ptr<!void>) -> !u64i {87// CHECK: %0 = cir.objsize min nullunknown dynamic %arg0 : !cir.ptr<!void> -> !u64i88// CHECK: cir.return %0 : !u64i89// CHECK: }90