brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · c2ce0cd Raw
101 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -o - %s | FileCheck %s3 4target triple = "i386-unknown-linux-gnu"5 6@a = external dso_local global i32, align 47@d = external dso_local global ptr, align 48@k = external dso_local global ptr, align 49@j = external dso_local global ptr, align 410@h = external dso_local global i32, align 411@c = external dso_local global i32, align 412@i = external dso_local global i32, align 413@b = external dso_local global i32, align 414@f = external dso_local global i64, align 815@e = external dso_local global i64, align 816@g = external dso_local global i32, align 417 18declare i32 @fn1(i32 returned) optsize readnone19 20declare i32 @main() optsize21 22declare i32 @putchar(i32) nounwind23 24define void @fn2() nounwind optsize {25; CHECK-LABEL: fn2:26; CHECK:       # %bb.0: # %entry27; CHECK-NEXT:    pushl %ebx28; CHECK-NEXT:    subl $8, %esp29; CHECK-NEXT:    movl $48, (%esp)30; CHECK-NEXT:    calll putchar@PLT31; CHECK-NEXT:    movl h, %eax32; CHECK-NEXT:    movl c, %ecx33; CHECK-NEXT:    movl j, %edx34; CHECK-NEXT:    movl (%edx), %edx35; CHECK-NEXT:    movl (%edx), %edx36; CHECK-NEXT:    xorl %ebx, %ebx37; CHECK-NEXT:    cmpl (%edx), %ecx38; CHECK-NEXT:    setg %bl39; CHECK-NEXT:    xorl %ecx, %ecx40; CHECK-NEXT:    cmpl %ebx, i41; CHECK-NEXT:    setg %cl42; CHECK-NEXT:    movl %ecx, b43; CHECK-NEXT:    xorl %edx, %edx44; CHECK-NEXT:    cmpl %ecx, %eax45; CHECK-NEXT:    setg %dl46; CHECK-NEXT:    xorl %edx, a47; CHECK-NEXT:    movl d, %eax48; CHECK-NEXT:    movl (%eax), %eax49; CHECK-NEXT:    andl %eax, e50; CHECK-NEXT:    sarl $31, %eax51; CHECK-NEXT:    andl %eax, e+452; CHECK-NEXT:    decl g53; CHECK-NEXT:    addl $1, f54; CHECK-NEXT:    adcl $0, f+455; CHECK-NEXT:    addl $8, %esp56; CHECK-NEXT:    popl %ebx57; CHECK-NEXT:    retl58entry:59  %putchar = tail call i32 @putchar(i32 48)60  %0 = load volatile i32, ptr @h, align 461  %1 = load i32, ptr @c, align 4, !tbaa !162  %2 = load ptr, ptr @j, align 463  %3 = load ptr, ptr %2, align 464  %4 = load ptr, ptr %3, align 465  %5 = load i32, ptr %4, align 466  %cmp = icmp sgt i32 %1, %567  %conv = zext i1 %cmp to i3268  %6 = load i32, ptr @i, align 469  %cmp1 = icmp sgt i32 %6, %conv70  %conv2 = zext i1 %cmp1 to i3271  store i32 %conv2, ptr @b, align 472  %cmp3 = icmp sgt i32 %0, %conv273  %conv4 = zext i1 %cmp3 to i3274  %7 = load i32, ptr @a, align 475  %or = xor i32 %7, %conv476  store i32 %or, ptr @a, align 477  %8 = load ptr, ptr @d, align 478  %9 = load i32, ptr %8, align 479  %conv6 = sext i32 %9 to i6480  %10 = load i64, ptr @e, align 881  %and = and i64 %10, %conv682  store i64 %and, ptr @e, align 883  %11 = load i32, ptr @g, align 484  %dec = add nsw i32 %11, -185  store i32 %dec, ptr @g, align 486  %12 = load i64, ptr @f, align 887  %inc = add nsw i64 %12, 188  store i64 %inc, ptr @f, align 889  ret void90}91 92!0 = !{i32 1, !"NumRegisterParameters", i32 0}93!1 = !{!2, !2, i64 0}94!2 = !{!"int", !3, i64 0}95!3 = !{!"omnipotent char", !4, i64 0}96!4 = !{!"Simple C/C++ TBAA"}97!5 = !{!6, !6, i64 0}98!6 = !{!"any pointer", !3, i64 0}99!7 = !{!8, !8, i64 0}100!8 = !{!"long long", !3, i64 0}101