117 lines · plain
1; RUN: llc < %s -mtriple=sparcv9 | FileCheck %s2 3target datalayout = "E-i64:64-n32:64-S128"4target triple = "sparc64-sun-sparc"5 6; CHECK-LABEL: test_and_spill7; CHECK: and %i0, %i1, [[R:%[gilo][0-7]]]8; CHECK: stx [[R]], [%fp+{{.+}}]9; CHECK: ldx [%fp+{{.+}}, %i010define i64 @test_and_spill(i64 %a, i64 %b) {11entry:12 %r0 = and i64 %a, %b13 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)14 ret i64 %r015}16 17; CHECK-LABEL: test_or_spill18; CHECK: or %i0, %i1, [[R:%[gilo][0-7]]]19; CHECK: stx [[R]], [%fp+{{.+}}]20; CHECK: ldx [%fp+{{.+}}, %i021define i64 @test_or_spill(i64 %a, i64 %b) {22entry:23 %r0 = or i64 %a, %b24 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)25 ret i64 %r026}27 28; CHECK-LABEL: test_xor_spill29; CHECK: xor %i0, %i1, [[R:%[gilo][0-7]]]30; CHECK: stx [[R]], [%fp+{{.+}}]31; CHECK: ldx [%fp+{{.+}}, %i032define i64 @test_xor_spill(i64 %a, i64 %b) {33entry:34 %r0 = xor i64 %a, %b35 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)36 ret i64 %r037}38 39 40; CHECK-LABEL: test_add_spill41; CHECK: add %i0, %i1, [[R:%[gilo][0-7]]]42; CHECK: stx [[R]], [%fp+{{.+}}]43; CHECK: ldx [%fp+{{.+}}, %i044define i64 @test_add_spill(i64 %a, i64 %b) {45entry:46 %r0 = add i64 %a, %b47 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)48 ret i64 %r049}50 51; CHECK-LABEL: test_sub_spill52; CHECK: sub %i0, %i1, [[R:%[gilo][0-7]]]53; CHECK: stx [[R]], [%fp+{{.+}}]54; CHECK: ldx [%fp+{{.+}}, %i055define i64 @test_sub_spill(i64 %a, i64 %b) {56entry:57 %r0 = sub i64 %a, %b58 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)59 ret i64 %r060}61 62; CHECK-LABEL: test_andi_spill63; CHECK: and %i0, 1729, [[R:%[gilo][0-7]]]64; CHECK: stx [[R]], [%fp+{{.+}}]65; CHECK: ldx [%fp+{{.+}}, %i066define i64 @test_andi_spill(i64 %a) {67entry:68 %r0 = and i64 %a, 172969 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)70 ret i64 %r071}72 73; CHECK-LABEL: test_ori_spill74; CHECK: or %i0, 1729, [[R:%[gilo][0-7]]]75; CHECK: stx [[R]], [%fp+{{.+}}]76; CHECK: ldx [%fp+{{.+}}, %i077define i64 @test_ori_spill(i64 %a) {78entry:79 %r0 = or i64 %a, 172980 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)81 ret i64 %r082}83 84; CHECK-LABEL: test_xori_spill85; CHECK: xor %i0, 1729, [[R:%[gilo][0-7]]]86; CHECK: stx [[R]], [%fp+{{.+}}]87; CHECK: ldx [%fp+{{.+}}, %i088define i64 @test_xori_spill(i64 %a) {89entry:90 %r0 = xor i64 %a, 172991 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)92 ret i64 %r093}94 95; CHECK-LABEL: test_addi_spill96; CHECK: add %i0, 1729, [[R:%[gilo][0-7]]]97; CHECK: stx [[R]], [%fp+{{.+}}]98; CHECK: ldx [%fp+{{.+}}, %i099define i64 @test_addi_spill(i64 %a) {100entry:101 %r0 = add i64 %a, 1729102 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)103 ret i64 %r0104}105 106; CHECK-LABEL: test_subi_spill107; CHECK: add %i0, -1729, [[R:%[gilo][0-7]]]108; CHECK: stx [[R]], [%fp+{{.+}}]109; CHECK: ldx [%fp+{{.+}}, %i0110define i64 @test_subi_spill(i64 %a) {111entry:112 %r0 = sub i64 %a, 1729113 %0 = tail call i64 asm sideeffect "#$0 $1", "=r,r,~{i0},~{i1},~{i2},~{i3},~{i4},~{i5},~{i6},~{i7},~{g1},~{g2},~{g3},~{g4},~{g5},~{g6},~{g7},~{l0},~{l1},~{l2},~{l3},~{l4},~{l5},~{l6},~{l7},~{o0},~{o1},~{o2},~{o3},~{o4},~{o5},~{o6}"(i64 %r0)114 ret i64 %r0115}116 117