69 lines · plain
1// RUN: cir-opt %s --verify-roundtrip | FileCheck %s2!s32i = !cir.int<s, 32>3 4cir.func @FlatSwitchWithoutDefault(%arg0: !s32i) {5 cir.switch.flat %arg0 : !s32i, ^bb2 [6 1: ^bb17 ]8 ^bb1:9 cir.br ^bb210 ^bb2:11 cir.return12}13 14// CHECK: cir.switch.flat %arg0 : !s32i, ^bb2 [15// CHECK-NEXT: 1: ^bb116// CHECK-NEXT: ]17// CHECK-NEXT: ^bb1:18// CHECK-NEXT: cir.br ^bb219// CHECK-NEXT: ^bb2:20// CHECK-NEXT: cir.return21 22cir.func @FlatSwitchWithDefault(%arg0: !s32i) {23 cir.switch.flat %arg0 : !s32i, ^bb2 [24 1: ^bb125 ]26 ^bb1:27 cir.br ^bb328 ^bb2:29 cir.br ^bb330 ^bb3:31 cir.return32}33 34// CHECK: cir.switch.flat %arg0 : !s32i, ^bb2 [35// CHECK-NEXT: 1: ^bb136// CHECK-NEXT: ]37// CHECK-NEXT: ^bb1:38// CHECK-NEXT: cir.br ^bb339// CHECK-NEXT: ^bb2:40// CHECK-NEXT: cir.br ^bb341// CHECK-NEXT: ^bb3:42// CHECK-NEXT: cir.return43 44cir.func @switchWithOperands(%arg0: !s32i, %arg1: !s32i, %arg2: !s32i) {45 cir.switch.flat %arg0 : !s32i, ^bb3 [46 0: ^bb1(%arg1, %arg2 : !s32i, !s32i),47 1: ^bb2(%arg2, %arg1 : !s32i, !s32i)48 ]49^bb1:50 cir.br ^bb351 52^bb2:53 cir.br ^bb354 55^bb3:56 cir.return57}58 59// CHECK: cir.switch.flat %arg0 : !s32i, ^bb3 [60// CHECK-NEXT: 0: ^bb1(%arg1, %arg2 : !s32i, !s32i),61// CHECK-NEXT: 1: ^bb2(%arg2, %arg1 : !s32i, !s32i)62// CHECK-NEXT: ]63// CHECK-NEXT: ^bb1:64// CHECK-NEXT: cir.br ^bb365// CHECK-NEXT: ^bb2:66// CHECK-NEXT: cir.br ^bb367// CHECK-NEXT: ^bb3:68// CHECK-NEXT: cir.return69