brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 392f7fc Raw
37 lines · plain
1; RUN: opt < %s -passes=instcombine -S | FileCheck %s2; CHECK: select3; END.4 5target datalayout = "e-p:32:32"6target triple = "i686-pc-linux-gnu"7        %struct.point = type { i32, i32 }8 9define i32 @visible(i32 %direction, i64 %p1.0, i64 %p2.0, i64 %p3.0) {10entry:11        %p1_addr = alloca %struct.point         ; <ptr> [#uses=2]12        %p2_addr = alloca %struct.point         ; <ptr> [#uses=2]13        %p3_addr = alloca %struct.point         ; <ptr> [#uses=2]14        %tmp.upgrd.1 = getelementptr { i64 }, ptr %p1_addr, i32 0, i32 0                ; <ptr> [#uses=1]15        store i64 %p1.0, ptr %tmp.upgrd.116        %tmp2 = getelementptr { i64 }, ptr %p2_addr, i32 0, i32 0              ; <ptr> [#uses=1]17        store i64 %p2.0, ptr %tmp218        %tmp4 = getelementptr { i64 }, ptr %p3_addr, i32 0, i32 0              ; <ptr> [#uses=1]19        store i64 %p3.0, ptr %tmp420        %tmp.upgrd.2 = icmp eq i32 %direction, 0                ; <i1> [#uses=1]21        %tmp6 = getelementptr { i64 }, ptr %p1_addr, i32 0, i32 0              ; <ptr> [#uses=1]22        %tmp.upgrd.3 = load i64, ptr %tmp6          ; <i64> [#uses=1]23        %tmp8 = getelementptr { i64 }, ptr %p2_addr, i32 0, i32 0              ; <ptr> [#uses=1]24        %tmp9 = load i64, ptr %tmp8         ; <i64> [#uses=1]25        %tmp11 = getelementptr { i64 }, ptr %p3_addr, i32 0, i32 0            ; <ptr> [#uses=1]26        %tmp12 = load i64, ptr %tmp11               ; <i64> [#uses=1]27        %tmp13 = call i32 @determinant( i64 %tmp.upgrd.3, i64 %tmp9, i64 %tmp12 )         ; <i32> [#uses=2]28        %tmp14 = icmp slt i32 %tmp13, 0         ; <i1> [#uses=1]29        %tmp26 = icmp sgt i32 %tmp13, 0         ; <i1> [#uses=1]30        %retval.0.in = select i1 %tmp.upgrd.2, i1 %tmp14, i1 %tmp26             ; <i1> [#uses=1]31        %retval.0 = zext i1 %retval.0.in to i32         ; <i32> [#uses=1]32        ret i32 %retval.033}34 35declare i32 @determinant(i64, i64, i64)36 37