@@ -338,8 +338,7 @@ func.func @select(%arg : index, %arg2 : i32) -> i32 {
338338// CHECK: %[[C0:.*]] = llvm.mlir.constant(1 : i32) : i32
339339// CHECK: %[[C1:.*]] = llvm.mlir.constant(2 : i32) : i32
340340// CHECK: %[[C2:.*]] = llvm.mlir.constant(3 : i32) : i32
341- // CHECK: %[[SELECTOR:.*]] = llvm.trunc %[[SELECTVALUE]] : i{{.*}} to i32
342- // CHECK: llvm.switch %[[SELECTOR]] : i32, ^bb5 [
341+ // CHECK: llvm.switch %[[SELECTVALUE]] : i64, ^bb5 [
343342// CHECK: 1: ^bb1(%[[C0]] : i32),
344343// CHECK: 2: ^bb2(%[[C2]], %[[SELECTVALUE]], %[[ARG1]] : i32, [[IDX]], i32),
345344// CHECK: 3: ^bb3(%[[ARG1]], %[[C2]] : i32, i32),
@@ -384,7 +383,8 @@ func.func @select_rank(%arg : i32, %arg2 : i32) -> i32 {
384383// CHECK: %[[C0:.*]] = llvm.mlir.constant(1 : i32) : i32
385384// CHECK: %[[C1:.*]] = llvm.mlir.constant(2 : i32) : i32
386385// CHECK: %[[C2:.*]] = llvm.mlir.constant(3 : i32) : i32
387- // CHECK: llvm.switch %[[SELECTVALUE]] : i32, ^bb5 [
386+ // CHECK: %[[SELECTOR:.*]] = llvm.sext %[[SELECTVALUE]] : i{{.*}} to i64
387+ // CHECK: llvm.switch %[[SELECTOR]] : i64, ^bb5 [
388388// CHECK: 1: ^bb1(%[[C0]] : i32),
389389// CHECK: 2: ^bb2(%[[C2]], %[[SELECTVALUE]], %[[ARG1]] : i32, i32, i32),
390390// CHECK: 3: ^bb3(%[[ARG1]], %[[C2]] : i32, i32),
@@ -2891,32 +2891,36 @@ func.func @select_with_cast(%arg1 : i8, %arg2 : i16, %arg3: i64, %arg4: index) -
28912891 ^bb3:
28922892 fir.select %arg4 : index [ 1, ^bb4, unit, ^bb4 ]
28932893 ^bb4:
2894+ fir.select %arg3 : i64 [ 4294967296, ^bb5, unit, ^bb5 ]
2895+ ^bb5:
28942896 return
28952897}
28962898// CHECK-LABEL: llvm.func @select_with_cast(
28972899// CHECK-SAME: %[[ARG0:.*]]: i8,
28982900// CHECK-SAME: %[[ARG1:.*]]: i16,
28992901// CHECK-SAME: %[[ARG2:.*]]: i64,
29002902// CHECK-SAME: %[[ARG3:.*]]: i64) {
2901- // CHECK: %[[VAL_0:.*]] = llvm.sext %[[ARG0]] : i8 to i32
2902- // CHECK: llvm.switch %[[VAL_0]] : i32 , ^bb1 [
2903+ // CHECK: %[[VAL_0:.*]] = llvm.sext %[[ARG0]] : i8 to i64
2904+ // CHECK: llvm.switch %[[VAL_0]] : i64 , ^bb1 [
29032905// CHECK: 1: ^bb1
29042906// CHECK: ]
29052907// CHECK: ^bb1:
2906- // CHECK: %[[VAL_1:.*]] = llvm.sext %[[ARG1]] : i16 to i32
2907- // CHECK: llvm.switch %[[VAL_1]] : i32 , ^bb2 [
2908+ // CHECK: %[[VAL_1:.*]] = llvm.sext %[[ARG1]] : i16 to i64
2909+ // CHECK: llvm.switch %[[VAL_1]] : i64 , ^bb2 [
29082910// CHECK: 1: ^bb2
29092911// CHECK: ]
29102912// CHECK: ^bb2:
2911- // CHECK: %[[VAL_2:.*]] = llvm.trunc %[[ARG2]] : i64 to i32
2912- // CHECK: llvm.switch %[[VAL_2]] : i32, ^bb3 [
2913+ // CHECK: llvm.switch %[[ARG2]] : i64, ^bb3 [
29132914// CHECK: 1: ^bb3
29142915// CHECK: ]
29152916// CHECK: ^bb3:
2916- // CHECK: %[[VAL_3:.*]] = llvm.trunc %[[ARG3]] : i64 to i32
2917- // CHECK: llvm.switch %[[VAL_3]] : i32, ^bb4 [
2917+ // CHECK: llvm.switch %[[ARG3]] : i64, ^bb4 [
29182918// CHECK: 1: ^bb4
29192919// CHECK: ]
29202920// CHECK: ^bb4:
2921+ // CHECK: llvm.switch %[[ARG2]] : i64, ^bb5 [
2922+ // CHECK: 4294967296: ^bb5
2923+ // CHECK: ]
2924+ // CHECK: ^bb5:
29212925// CHECK: llvm.return
29222926// CHECK: }
0 commit comments