[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / PowerPC / ori_imm32.ll
blob453c361f1f4bbff7642137f205a4dabbd31e1033
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s
3 ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s
4 ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-ibm-aix-xcoff | FileCheck %s
6 define i64 @ori_test_a(i64 %a) {
7 ; CHECK-LABEL: ori_test_a:
8 ; CHECK:       # %bb.0: # %entry
9 ; CHECK-NEXT:    ori 3, 3, 65535
10 ; CHECK-NEXT:    oris 3, 3, 65535
11 ; CHECK-NEXT:    blr
12 entry:
13   %or = or i64 %a, 4294967295
14   ret i64 %or
17 define i64 @ori_test_b(i64 %a) {
18 ; CHECK-LABEL: ori_test_b:
19 ; CHECK:       # %bb.0: # %entry
20 ; CHECK-NEXT:    li 4, -1
21 ; CHECK-NEXT:    rldimi 3, 4, 32, 31
22 ; CHECK-NEXT:    blr
23 entry:
24   %or = or i64 %a, 4294967296
25   ret i64 %or
28 define i64 @ori_test_c(i64 %a) {
29 ; CHECK-LABEL: ori_test_c:
30 ; CHECK:       # %bb.0: # %entry
31 ; CHECK-NEXT:    ori 3, 3, 65535
32 ; CHECK-NEXT:    blr
33 entry:
34   %or = or i64 %a, 65535
35   ret i64 %or
38 define i64 @ori_test_d(i64 %a) {
39 ; CHECK-LABEL: ori_test_d:
40 ; CHECK:       # %bb.0: # %entry
41 ; CHECK-NEXT:    oris 3, 3, 1
42 ; CHECK-NEXT:    blr
43 entry:
44   %or = or i64 %a, 65536
45   ret i64 %or
48 define zeroext i32 @ori_test_e(i32 zeroext %a) {
49 ; CHECK-LABEL: ori_test_e:
50 ; CHECK:       # %bb.0: # %entry
51 ; CHECK-NEXT:    ori 3, 3, 65535
52 ; CHECK-NEXT:    oris 3, 3, 255
53 ; CHECK-NEXT:    blr
54 entry:
55   %or = or i32 %a, 16777215
56   ret i32 %or
59 define i64 @xori_test_a(i64 %a) {
60 ; CHECK-LABEL: xori_test_a:
61 ; CHECK:       # %bb.0: # %entry
62 ; CHECK-NEXT:    xori 3, 3, 65535
63 ; CHECK-NEXT:    xoris 3, 3, 65535
64 ; CHECK-NEXT:    blr
65 entry:
66   %xor = xor i64 %a, 4294967295
67   ret i64 %xor
70 define i64 @xori_test_b(i64 %a) {
71 ; CHECK-LABEL: xori_test_b:
72 ; CHECK:       # %bb.0: # %entry
73 ; CHECK-NEXT:    li 4, 1
74 ; CHECK-NEXT:    rldic 4, 4, 32, 31
75 ; CHECK-NEXT:    xor 3, 3, 4
76 ; CHECK-NEXT:    blr
77 entry:
78   %xor = xor i64 %a, 4294967296
79   ret i64 %xor
82 define i64 @xori_test_c(i64 %a) {
83 ; CHECK-LABEL: xori_test_c:
84 ; CHECK:       # %bb.0: # %entry
85 ; CHECK-NEXT:    xori 3, 3, 65535
86 ; CHECK-NEXT:    blr
87 entry:
88   %xor = xor i64 %a, 65535
89   ret i64 %xor
92 define i64 @xori_test_d(i64 %a) {
93 ; CHECK-LABEL: xori_test_d:
94 ; CHECK:       # %bb.0: # %entry
95 ; CHECK-NEXT:    xoris 3, 3, 1
96 ; CHECK-NEXT:    blr
97 entry:
98   %xor = xor i64 %a, 65536
99   ret i64 %xor
102 define zeroext i32 @xori_test_e(i32 zeroext %a) {
103 ; CHECK-LABEL: xori_test_e:
104 ; CHECK:       # %bb.0: # %entry
105 ; CHECK-NEXT:    xori 3, 3, 65535
106 ; CHECK-NEXT:    xoris 3, 3, 255
107 ; CHECK-NEXT:    blr
108 entry:
109   %xor = xor i32 %a, 16777215
110   ret i32 %xor