aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/PowerPC/anyext_srl.ll
blob: f92e622601b04e952ccb36a7a1d6eb40eba53bd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
; RUN:     -mcpu=pwr8 < %s | FileCheck %s

%class.PB2 = type { [1 x i32], ptr }
%class.PB1 = type { [1 x i32], i64, i64, i32 }

; Function Attrs: norecurse nounwind readonly
define zeroext i1 @foo(ptr %s_a, ptr %s_b) local_unnamed_addr {
; CHECK-LABEL: foo:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lbz 3, 0(3)
; CHECK-NEXT:    lbz 4, 0(4)
; CHECK-NEXT:    xor 3, 3, 4
; CHECK-NEXT:    rldicl 3, 3, 61, 63
; CHECK-NEXT:    blr
entry:
  %0 = load i32, ptr %s_a, align 8, !tbaa !1
  %and.i = and i32 %0, 8
  %cmp.i = icmp ne i32 %and.i, 0
  %1 = load i32, ptr %s_b, align 8, !tbaa !1
  %and.i4 = and i32 %1, 8
  %cmp.i5 = icmp ne i32 %and.i4, 0
  %cmp = xor i1 %cmp.i, %cmp.i5
  ret i1 %cmp
}

!1 = !{!2, !2, i64 0}
!2 = !{!"int", !3, i64 0}
!3 = !{!"omnipotent char", !4, i64 0}
!4 = !{!"Simple C++ TBAA"}