brintos

brintos / llvm-project-archived public Read only

0
0
Text · 839 B · 425e83d Raw
31 lines · plain
1; RUN: opt -passes=gvn-hoist -S < %s | FileCheck %s2target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128"3target triple = "x86_64-unknown-linux-gnu"4 5; Check that all "sub" expressions are hoisted.6; CHECK-LABEL: @fun7; CHECK: sub i648; CHECK-NOT: sub i649 10define i64 @fun(ptr %out, ptr %end) {11  %1 = icmp ult ptr %out, %end12  br i1 %1, label %2, label %613 14; <label>:2                                       ; preds = %015  %3 = ptrtoint ptr %end to i6416  %4 = ptrtoint ptr %out to i6417  %5 = sub i64 %3, %418  br label %1019 20; <label>:6                                       ; preds = %021  %7 = ptrtoint ptr %out to i6422  %8 = ptrtoint ptr %end to i6423  %9 = sub i64 %8, %724  br label %1025 26; <label>:10                                      ; preds = %6, %227  %.in = phi i64 [ %5, %2 ], [ %9, %6 ]28  %11 = add i64 %.in, 25729  ret i64 %1130}31