// Test the cir.objsize operation can parse and print correctly (roundtrip) // with all possible combinations of optional attributes // RUN: cir-opt %s --verify-roundtrip | FileCheck %s !u64i = !cir.int !void = !cir.void module { cir.func @test_max(%arg0: !cir.ptr) -> !u64i { %0 = cir.objsize max %arg0 : !cir.ptr -> !u64i cir.return %0 : !u64i } cir.func @test_max_nullunknown(%arg0: !cir.ptr) -> !u64i { %0 = cir.objsize max nullunknown %arg0 : !cir.ptr -> !u64i cir.return %0 : !u64i } cir.func @test_max_dynamic(%arg0: !cir.ptr) -> !u64i { %0 = cir.objsize max dynamic %arg0 : !cir.ptr -> !u64i cir.return %0 : !u64i } cir.func @test_max_nullunknown_dynamic(%arg0: !cir.ptr) -> !u64i { %0 = cir.objsize max nullunknown dynamic %arg0 : !cir.ptr -> !u64i cir.return %0 : !u64i } cir.func @test_min(%arg0: !cir.ptr) -> !u64i { %0 = cir.objsize min %arg0 : !cir.ptr -> !u64i cir.return %0 : !u64i } cir.func @test_min_nullunknown(%arg0: !cir.ptr) -> !u64i { %0 = cir.objsize min nullunknown %arg0 : !cir.ptr -> !u64i cir.return %0 : !u64i } cir.func @test_min_dynamic(%arg0: !cir.ptr) -> !u64i { %0 = cir.objsize min dynamic %arg0 : !cir.ptr -> !u64i cir.return %0 : !u64i } cir.func @test_min_nullunknown_dynamic(%arg0: !cir.ptr) -> !u64i { %0 = cir.objsize min nullunknown dynamic %arg0 : !cir.ptr -> !u64i cir.return %0 : !u64i } } // CHECK: cir.func @test_max(%arg0: !cir.ptr) -> !u64i { // CHECK: %0 = cir.objsize max %arg0 : !cir.ptr -> !u64i // CHECK: cir.return %0 : !u64i // CHECK: } // CHECK: cir.func @test_max_nullunknown(%arg0: !cir.ptr) -> !u64i { // CHECK: %0 = cir.objsize max nullunknown %arg0 : !cir.ptr -> !u64i // CHECK: cir.return %0 : !u64i // CHECK: } // CHECK: cir.func @test_max_dynamic(%arg0: !cir.ptr) -> !u64i { // CHECK: %0 = cir.objsize max dynamic %arg0 : !cir.ptr -> !u64i // CHECK: cir.return %0 : !u64i // CHECK: } // CHECK: cir.func @test_max_nullunknown_dynamic(%arg0: !cir.ptr) -> !u64i { // CHECK: %0 = cir.objsize max nullunknown dynamic %arg0 : !cir.ptr -> !u64i // CHECK: cir.return %0 : !u64i // CHECK: } // CHECK: cir.func @test_min(%arg0: !cir.ptr) -> !u64i { // CHECK: %0 = cir.objsize min %arg0 : !cir.ptr -> !u64i // CHECK: cir.return %0 : !u64i // CHECK: } // CHECK: cir.func @test_min_nullunknown(%arg0: !cir.ptr) -> !u64i { // CHECK: %0 = cir.objsize min nullunknown %arg0 : !cir.ptr -> !u64i // CHECK: cir.return %0 : !u64i // CHECK: } // CHECK: cir.func @test_min_dynamic(%arg0: !cir.ptr) -> !u64i { // CHECK: %0 = cir.objsize min dynamic %arg0 : !cir.ptr -> !u64i // CHECK: cir.return %0 : !u64i // CHECK: } // CHECK: cir.func @test_min_nullunknown_dynamic(%arg0: !cir.ptr) -> !u64i { // CHECK: %0 = cir.objsize min nullunknown dynamic %arg0 : !cir.ptr -> !u64i // CHECK: cir.return %0 : !u64i // CHECK: }