brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · d1399f4 Raw
43 lines · cpp
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py2// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm %s -o - | FileCheck %s3 4// CHECK-LABEL: @_Z1fv(5// CHECK-NEXT:  entry:6// CHECK-NEXT:    [[RETVAL:%.*]] = alloca i32, align 47// CHECK-NEXT:    [[I:%.*]] = alloca i32, align 48// CHECK-NEXT:    [[X:%.*]] = alloca i32, align 49// CHECK-NEXT:    store i32 0, ptr [[I]], align 410// CHECK-NEXT:    br label [[FOR_COND:%.*]]11// CHECK:       for.cond:12// CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[I]], align 413// CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 [[TMP0]], 214// CHECK-NEXT:    [[TMP1:%.*]] = zext i1 [[CMP]] to i6415// CHECK-NEXT:    [[COND:%.*]] = select i1 [[CMP]], i32 1, i32 016// CHECK-NEXT:    store i32 [[COND]], ptr [[X]], align 417// CHECK-NEXT:    [[TMP2:%.*]] = load i32, ptr [[X]], align 418// CHECK-NEXT:    [[TOBOOL:%.*]] = icmp ne i32 [[TMP2]], 019// CHECK-NEXT:    br i1 [[TOBOOL]], label [[FOR_BODY:%.*]], label [[FOR_END:%.*]]20// CHECK:       for.body:21// CHECK-NEXT:    [[TMP3:%.*]] = load i32, ptr [[X]], align 422// CHECK-NEXT:    store i32 [[TMP3]], ptr [[RETVAL]], align 423// CHECK-NEXT:    br label [[RETURN:%.*]]24// CHECK:       for.inc:25// CHECK-NEXT:    [[TMP4:%.*]] = load i32, ptr [[I]], align 426// CHECK-NEXT:    [[INC:%.*]] = add nsw i32 [[TMP4]], 127// CHECK-NEXT:    store i32 [[INC]], ptr [[I]], align 428// CHECK-NEXT:    br label [[FOR_COND]], !llvm.loop [[LOOP2:![0-9]+]]29// CHECK:       for.end:30// CHECK-NEXT:    store i32 0, ptr [[RETVAL]], align 431// CHECK-NEXT:    br label [[RETURN]]32// CHECK:       return:33// CHECK-NEXT:    [[TMP5:%.*]] = load i32, ptr [[RETVAL]], align 434// CHECK-NEXT:    ret i32 [[TMP5]]35//36int f() {37  for (int i = 0; int x = i < 2 ? 1 : 0; i++) {38    return x;39  }40  return 0;41}42 43