brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · c7500cf Raw
237 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt < %s -S -passes=speculative-execution \3; RUN:   -spec-exec-max-speculation-cost 4 -spec-exec-max-not-hoisted 3 \4; RUN:   | FileCheck %s5 6define void @ifThen_bitcast(i32 %arg) {7; CHECK-LABEL: define void @ifThen_bitcast(8; CHECK-SAME: i32 [[ARG:%.*]]) {9; CHECK-NEXT:    [[X:%.*]] = bitcast i32 [[ARG]] to float10; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]11; CHECK:       [[A]]:12; CHECK-NEXT:    br label %[[B]]13; CHECK:       [[B]]:14; CHECK-NEXT:    ret void15;16  br i1 true, label %a, label %b17 18a:19  %x = bitcast i32 %arg to float20  br label %b21 22b:23  ret void24}25 26define void @ifThen_ptrtoint(ptr %arg) {27; CHECK-LABEL: define void @ifThen_ptrtoint(28; CHECK-SAME: ptr [[ARG:%.*]]) {29; CHECK-NEXT:    [[X:%.*]] = ptrtoint ptr [[ARG]] to i6430; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]31; CHECK:       [[A]]:32; CHECK-NEXT:    br label %[[B]]33; CHECK:       [[B]]:34; CHECK-NEXT:    ret void35;36  br i1 true, label %a, label %b37 38a:39  %x = ptrtoint ptr %arg to i6440  br label %b41 42b:43  ret void44}45 46define void @ifThen_ptrtoaddr(ptr %arg) {47; CHECK-LABEL: define void @ifThen_ptrtoaddr(48; CHECK-SAME: ptr [[ARG:%.*]]) {49; CHECK-NEXT:    [[X:%.*]] = ptrtoaddr ptr [[ARG]] to i6450; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]51; CHECK:       [[A]]:52; CHECK-NEXT:    br label %[[B]]53; CHECK:       [[B]]:54; CHECK-NEXT:    ret void55;56  br i1 true, label %a, label %b57 58a:59  %x = ptrtoaddr ptr %arg to i6460  br label %b61 62b:63  ret void64}65 66define void @ifThen_inttoptr(i64 %arg) {67; CHECK-LABEL: define void @ifThen_inttoptr(68; CHECK-SAME: i64 [[ARG:%.*]]) {69; CHECK-NEXT:    [[X:%.*]] = inttoptr i64 [[ARG]] to ptr70; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]71; CHECK:       [[A]]:72; CHECK-NEXT:    br label %[[B]]73; CHECK:       [[B]]:74; CHECK-NEXT:    ret void75;76  br i1 true, label %a, label %b77 78a:79  %x = inttoptr i64 %arg to ptr80  br label %b81 82b:83  ret void84}85 86define void @ifThen_addrspacecast(ptr %arg) {87; CHECK-LABEL: define void @ifThen_addrspacecast(88; CHECK-SAME: ptr [[ARG:%.*]]) {89; CHECK-NEXT:    [[X:%.*]] = addrspacecast ptr [[ARG]] to ptr addrspace(1)90; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]91; CHECK:       [[A]]:92; CHECK-NEXT:    br label %[[B]]93; CHECK:       [[B]]:94; CHECK-NEXT:    ret void95;96  br i1 true, label %a, label %b97a:98  %x = addrspacecast ptr %arg to ptr addrspace(1)99  br label %b100 101b:102  ret void103}104 105define void @ifThen_fptoui(float %arg) {106; CHECK-LABEL: define void @ifThen_fptoui(107; CHECK-SAME: float [[ARG:%.*]]) {108; CHECK-NEXT:    [[X:%.*]] = fptoui float [[ARG]] to i32109; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]110; CHECK:       [[A]]:111; CHECK-NEXT:    br label %[[B]]112; CHECK:       [[B]]:113; CHECK-NEXT:    ret void114;115  br i1 true, label %a, label %b116a:117  %x = fptoui float %arg to i32118  br label %b119 120b:121  ret void122}123 124define void @ifThen_fptosi(float %arg) {125; CHECK-LABEL: define void @ifThen_fptosi(126; CHECK-SAME: float [[ARG:%.*]]) {127; CHECK-NEXT:    [[X:%.*]] = fptosi float [[ARG]] to i32128; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]129; CHECK:       [[A]]:130; CHECK-NEXT:    br label %[[B]]131; CHECK:       [[B]]:132; CHECK-NEXT:    ret void133;134  br i1 true, label %a, label %b135a:136  %x = fptosi float %arg to i32137  br label %b138 139b:140  ret void141}142 143define void @ifThen_uitofp(i32 %arg) {144; CHECK-LABEL: define void @ifThen_uitofp(145; CHECK-SAME: i32 [[ARG:%.*]]) {146; CHECK-NEXT:    [[X:%.*]] = uitofp i32 [[ARG]] to float147; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]148; CHECK:       [[A]]:149; CHECK-NEXT:    br label %[[B]]150; CHECK:       [[B]]:151; CHECK-NEXT:    ret void152;153  br i1 true, label %a, label %b154a:155  %x = uitofp i32 %arg to float156  br label %b157 158b:159  ret void160}161 162define void @ifThen_sitofp(i32 %arg) {163; CHECK-LABEL: define void @ifThen_sitofp(164; CHECK-SAME: i32 [[ARG:%.*]]) {165; CHECK-NEXT:    [[X:%.*]] = sitofp i32 [[ARG]] to float166; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]167; CHECK:       [[A]]:168; CHECK-NEXT:    br label %[[B]]169; CHECK:       [[B]]:170; CHECK-NEXT:    ret void171;172  br i1 true, label %a, label %b173a:174  %x = sitofp i32 %arg to float175  br label %b176 177b:178  ret void179}180 181define void @ifThen_fpext(float %arg) {182; CHECK-LABEL: define void @ifThen_fpext(183; CHECK-SAME: float [[ARG:%.*]]) {184; CHECK-NEXT:    [[X:%.*]] = fpext float [[ARG]] to double185; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]186; CHECK:       [[A]]:187; CHECK-NEXT:    br label %[[B]]188; CHECK:       [[B]]:189; CHECK-NEXT:    ret void190;191  br i1 true, label %a, label %b192a:193  %x = fpext float %arg to double194  br label %b195 196b:197  ret void198}199 200define void @ifThen_fptrunc(double %arg) {201; CHECK-LABEL: define void @ifThen_fptrunc(202; CHECK-SAME: double [[ARG:%.*]]) {203; CHECK-NEXT:    [[X:%.*]] = fptrunc double [[ARG]] to float204; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]205; CHECK:       [[A]]:206; CHECK-NEXT:    br label %[[B]]207; CHECK:       [[B]]:208; CHECK-NEXT:    ret void209;210  br i1 true, label %a, label %b211a:212  %x = fptrunc double %arg to float213  br label %b214 215b:216  ret void217}218 219define void @ifThen_trunc(i32 %arg) {220; CHECK-LABEL: define void @ifThen_trunc(221; CHECK-SAME: i32 [[ARG:%.*]]) {222; CHECK-NEXT:    [[X:%.*]] = trunc i32 [[ARG]] to i16223; CHECK-NEXT:    br i1 true, label %[[A:.*]], label %[[B:.*]]224; CHECK:       [[A]]:225; CHECK-NEXT:    br label %[[B]]226; CHECK:       [[B]]:227; CHECK-NEXT:    ret void228;229  br i1 true, label %a, label %b230a:231  %x = trunc i32 %arg to i16232  br label %b233 234b:235  ret void236}237