brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · d39c3e7 Raw
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