42 lines · plain
1; RUN: llc < %s | FileCheck %s2 3; Test that Lanai select instruction is selected from LLVM select instruction.4 5target datalayout = "E-m:e-p:32:32-i64:64-a:0:32-n32-S64"6target triple = "lanai"7 8; CHECK-LABEL: select_i32_bool:9; CHECK: sub.f %r6, 0x0, %r010; CHECK: sel.ne %r7, %r18, %rv11define i32 @select_i32_bool(i1 zeroext inreg %a, i32 inreg %b, i32 inreg %c) {12 %cond = select i1 %a, i32 %b, i32 %c13 ret i32 %cond14}15 16; CHECK-LABEL: select_i32_eq:17; CHECK: sub.f %r6, 0x0, %r018; CHECK: sel.eq %r7, %r18, %rv19define i32 @select_i32_eq(i32 inreg %a, i32 inreg %b, i32 inreg %c) {20 %cmp = icmp eq i32 %a, 021 %cond = select i1 %cmp, i32 %b, i32 %c22 ret i32 %cond23}24 25; CHECK-LABEL: select_i32_ne:26; CHECK: sub.f %r6, 0x0, %r027; CHECK: sel.ne %r7, %r18, %rv28define i32 @select_i32_ne(i32 inreg %a, i32 inreg %b, i32 inreg %c) {29 %cmp = icmp ne i32 %a, 030 %cond = select i1 %cmp, i32 %b, i32 %c31 ret i32 %cond32}33 34; CHECK-LABEL: select_i32_lt:35; CHECK: sub.f %r6, %r7, %r036; CHECK: sel.lt %r6, %r7, %rv37define i32 @select_i32_lt(i32 inreg %x, i32 inreg %y) #0 {38 %1 = icmp slt i32 %x, %y39 %2 = select i1 %1, i32 %x, i32 %y40 ret i32 %241}42