brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · a762ed8 Raw
47 lines · plain
1; RUN: opt < %s -passes=instcombine -S | FileCheck %s2target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32-S128"3target triple = "i386-apple-macosx10.0.0"4 5; Instcombine should be able to do trivial CSE of loads.6 7define i32 @test1(ptr %p) {8  %t0 = getelementptr i32, ptr %p, i32 19  %y = load i32, ptr %t010  %t1 = getelementptr i32, ptr %p, i32 111  %x = load i32, ptr %t112  %a = sub i32 %y, %x13  ret i32 %a14; CHECK-LABEL: @test1(15; CHECK: ret i32 016}17 18 19; PR742920@.str = private constant [4 x i8] c"XYZ\00"21define float @test2() {22  %tmp = load float, ptr @.str, align 123  ret float %tmp24  25; CHECK-LABEL: @test2(26; CHECK: ret float 0x380696560000000027}28 29@rslts32 = global [36 x i32] zeroinitializer, align 430 31@expect32 = internal constant [36 x i32][ i32 1, i32 2, i32 0, i32 100, i32 3,32i32 4, i32 0, i32 -7, i32 4, i32 4, i32 8, i32 8, i32 1, i32 3, i32 8, i32 3,33i32 4, i32 -2, i32 2, i32 8, i32 83, i32 77, i32 8, i32 17, i32 77, i32 88, i323422, i32 33, i32 44, i32 88, i32 77, i32 4, i32 4, i32 7, i32 -7, i32 -8] ,35align 436 37; PR1498638define void @test3() nounwind {39; This is a weird way of computing zero.40  %l = load i32, ptr getelementptr ([36 x i32], ptr @expect32, i32 29826161, i32 28), align 441  store i32 %l, ptr getelementptr ([36 x i32], ptr @rslts32, i32 29826161, i32 28), align 442  ret void43 44; CHECK-LABEL: @test3(45; CHECK: store i32 1, ptr @rslts3246}47