brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 1b05ffb Raw
91 lines · plain
1; RUN: llc %s -o - -O1 -debug-only=consthoist 2>&1 | FileCheck %s2; REQUIRES: asserts3 4target datalayout = "e-m:o-p:32:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"5target triple = "thumbv6m-apple-ios8.0.0"6 7declare void @g(i32)8 9; CHECK: Collect constant i32 -3 from   call void @g(i32 -3) with cost 210define void @f(i1 %cond) {11entry:12  call void @g(i32 -3)13  br i1 %cond, label %true, label %ret14 15true:16  call void @g(i32 -3)17  br label %ret18 19ret:20  ret void21}22 23; CHECK: Function: h24; CHECK-NOT: Collect constant i32 -193 from25define void @h(i1 %cond, i32 %p, i32 %q) {26entry:27  %a = and i32 %p, 429496710328  call void @g(i32 %a)29  br i1 %cond, label %true, label %ret30 31true:32  %b = and i32 %q, 429496710333  call void @g(i32 %b)34  br label %ret35 36ret:37  ret void38}39 40; CHECK: Function: test_icmp_neg41; CHECK-NOT: Collect constant42define void @test_icmp_neg(i1 %cond, i32 %arg, i32 %arg2) {43entry:44  %a = icmp ne i32 %arg, -545  call void @g2(i1 %a)46  br i1 %cond, label %true, label %ret47 48true:49  %b = icmp ne i32 %arg2, -550  call void @g2(i1 %b)51  br label %ret52 53ret:54  ret void55}56declare void @g2(i1)57 58; CHECK: Function: test_icmp_neg259; CHECK: Hoist constant (i32 -500) to BB entry60define void @test_icmp_neg2(i1 %cond, i32 %arg, i32 %arg2) {61entry:62  %a = icmp ne i32 %arg, -50063  call void @g2(i1 %a)64  br i1 %cond, label %true, label %ret65 66true:67  %b = icmp ne i32 %arg2, -50068  call void @g2(i1 %b)69  br label %ret70 71ret:72  ret void73}74 75; CHECK: Function: test_add_neg76; CHECK-NOT: Collect constant i32 -577define void @test_add_neg(i1 %cond, i32 %arg, i32 %arg2) {78entry:79  %a = add i32 %arg, -580  call void @g(i32 %a)81  br i1 %cond, label %true, label %ret82 83true:84  %b = add i32 %arg2, -585  call void @g(i32 %b)86  br label %ret87 88ret:89  ret void90}91