78 lines · plain
1; RUN: llc -relocation-model=pic < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3@dst = internal unnamed_addr global i32 0, align 44@src = internal unnamed_addr global i1 false, align 45@.str = private unnamed_addr constant [3 x i8] c"%d\00", align 16 7define void @func() {8; CHECK-LABEL: func:9; CHECK: # %bb.0:10; CHECK-NEXT: st %s15, 24(, %s11)11; CHECK-NEXT: st %s16, 32(, %s11)12; CHECK-NEXT: lea %s15, _GLOBAL_OFFSET_TABLE_@pc_lo(-24)13; CHECK-NEXT: and %s15, %s15, (32)014; CHECK-NEXT: sic %s1615; CHECK-NEXT: lea.sl %s15, _GLOBAL_OFFSET_TABLE_@pc_hi(%s16, %s15)16; CHECK-NEXT: lea %s0, src@gotoff_lo17; CHECK-NEXT: and %s0, %s0, (32)018; CHECK-NEXT: lea.sl %s0, src@gotoff_hi(, %s0)19; CHECK-NEXT: ld1b.zx %s0, (%s0, %s15)20; CHECK-NEXT: lea %s1, 10021; CHECK-NEXT: cmov.w.eq %s1, (0)1, %s022; CHECK-NEXT: lea %s0, dst@gotoff_lo23; CHECK-NEXT: and %s0, %s0, (32)024; CHECK-NEXT: lea.sl %s0, dst@gotoff_hi(, %s0)25; CHECK-NEXT: stl %s1, (%s0, %s15)26; CHECK-NEXT: ld %s16, 32(, %s11)27; CHECK-NEXT: ld %s15, 24(, %s11)28; CHECK-NEXT: b.l.t (, %s10)29 30 %1 = load i1, ptr @src, align 431 %2 = select i1 %1, i32 100, i32 032 store i32 %2, ptr @dst, align 433 ret void34}35 36; Function Attrs: nounwind37define i32 @main() {38; CHECK-LABEL: main:39; CHECK: .LBB{{[0-9]+}}_2:40; CHECK-NEXT: lea %s15, _GLOBAL_OFFSET_TABLE_@pc_lo(-24)41; CHECK-NEXT: and %s15, %s15, (32)042; CHECK-NEXT: sic %s1643; CHECK-NEXT: lea.sl %s15, _GLOBAL_OFFSET_TABLE_@pc_hi(%s16, %s15)44; CHECK-NEXT: lea %s0, src@gotoff_lo45; CHECK-NEXT: and %s0, %s0, (32)046; CHECK-NEXT: lea.sl %s0, src@gotoff_hi(, %s0)47; CHECK-NEXT: or %s1, 1, (0)148; CHECK-NEXT: st1b %s1, (%s0, %s15)49; CHECK-NEXT: lea %s12, func@plt_lo(-24)50; CHECK-NEXT: and %s12, %s12, (32)051; CHECK-NEXT: sic %s1652; CHECK-NEXT: lea.sl %s12, func@plt_hi(%s16, %s12)53; CHECK-NEXT: bsic %s10, (, %s12)54; CHECK-NEXT: lea %s0, dst@gotoff_lo55; CHECK-NEXT: and %s0, %s0, (32)056; CHECK-NEXT: lea.sl %s0, dst@gotoff_hi(, %s0)57; CHECK-NEXT: ldl.sx %s1, (%s0, %s15)58; CHECK-NEXT: st %s1, 184(, %s11)59; CHECK-NEXT: lea %s0, .L.str@gotoff_lo60; CHECK-NEXT: and %s0, %s0, (32)061; CHECK-NEXT: lea.sl %s0, .L.str@gotoff_hi(%s0, %s15)62; CHECK-NEXT: lea %s12, printf@plt_lo(-24)63; CHECK-NEXT: and %s12, %s12, (32)064; CHECK-NEXT: sic %s1665; CHECK-NEXT: lea.sl %s12, printf@plt_hi(%s16, %s12)66; CHECK-NEXT: st %s0, 176(, %s11)67; CHECK-NEXT: bsic %s10, (, %s12)68; CHECK-NEXT: or %s0, 0, (0)169; CHECK-NEXT: or %s11, 0, %s970 store i1 true, ptr @src, align 471 tail call void @func()72 %1 = load i32, ptr @dst, align 473 %2 = tail call i32 (ptr, ...) @printf(ptr @.str, i32 %1)74 ret i32 075}76 77declare i32 @printf(ptr nocapture readonly, ...)78