1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
3 ; RUN: -mcpu=pwr8 < %s | FileCheck %s
4 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \
5 ; RUN: -mcpu=pwr7 < %s | FileCheck %s
6 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-aix \
7 ; RUN: -mcpu=pwr8 < %s | FileCheck %s
10 declare void @llvm.ppc.tdw(i64 %a, i64 %b, i32 immarg)
11 define dso_local void @test__tdwlgt(i64 %a, i64 %b) {
12 ; CHECK-LABEL: test__tdwlgt:
14 ; CHECK-NEXT: tdlgt 3, 4
16 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 1)
20 define dso_local void @test__tdwllt(i64 %a, i64 %b) {
21 ; CHECK-LABEL: test__tdwllt:
23 ; CHECK-NEXT: tdllt 3, 4
25 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 2)
29 define dso_local void @test__tdw3(i64 %a, i64 %b) {
30 ; CHECK-LABEL: test__tdw3:
32 ; CHECK-NEXT: td 3, 3, 4
34 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 3)
37 define dso_local void @test__tdweq(i64 %a, i64 %b) {
38 ; CHECK-LABEL: test__tdweq:
40 ; CHECK-NEXT: tdeq 3, 4
42 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 4)
46 define dso_local void @test__tdwlge(i64 %a, i64 %b) {
47 ; CHECK-LABEL: test__tdwlge:
49 ; CHECK-NEXT: td 5, 3, 4
51 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 5)
55 define dso_local void @test__tdwlle(i64 %a, i64 %b) {
56 ; CHECK-LABEL: test__tdwlle:
58 ; CHECK-NEXT: td 6, 3, 4
60 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 6)
64 define dso_local void @test__tdwgt(i64 %a, i64 %b) {
65 ; CHECK-LABEL: test__tdwgt:
67 ; CHECK-NEXT: tdgt 3, 4
69 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 8)
73 define dso_local void @test__tdwge(i64 %a, i64 %b) {
74 ; CHECK-LABEL: test__tdwge:
76 ; CHECK-NEXT: td 12, 3, 4
78 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 12)
82 define dso_local void @test__tdwlt(i64 %a, i64 %b) {
83 ; CHECK-LABEL: test__tdwlt:
85 ; CHECK-NEXT: tdlt 3, 4
87 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 16)
91 define dso_local void @test__tdwle(i64 %a, i64 %b) {
92 ; CHECK-LABEL: test__tdwle:
94 ; CHECK-NEXT: td 20, 3, 4
96 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 20)
100 define dso_local void @test__tdwne24(i64 %a, i64 %b) {
101 ; CHECK-LABEL: test__tdwne24:
103 ; CHECK-NEXT: tdne 3, 4
105 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 24)
109 define dso_local void @test__tdw31(i64 %a, i64 %b) {
110 ; CHECK-LABEL: test__tdw31:
112 ; CHECK-NEXT: tdu 3, 4
114 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 31)
118 define dso_local void @test__tdw_no_match(i64 %a, i64 %b) {
119 ; CHECK-LABEL: test__tdw_no_match:
121 ; CHECK-NEXT: td 13, 3, 4
123 call void @llvm.ppc.tdw(i64 %a, i64 %b, i32 13)
128 declare void @llvm.ppc.trapd(i64 %a)
129 define dso_local void @test__trapd(i64 %a) {
130 ; CHECK-LABEL: test__trapd:
132 ; CHECK-NEXT: tdnei 3, 0
134 call void @llvm.ppc.trapd(i64 %a)