1 ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu | FileCheck %s
2 ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s
3 ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s
5 ; Test case for PPCTargetLowering::extendSubTreeForBitPermutation.
6 ; We expect mask and rotate are folded into a rlwinm instruction.
8 define zeroext i32 @func(i32* %p, i32 zeroext %i) {
10 ; CHECK: addi [[REG1:[0-9]+]], 4, 1
11 ; CHECK: rlwinm [[REG2:[0-9]+]], [[REG1]], 2, 22, 29
13 ; CHECK: lwzx 3, 3, [[REG2]]
17 %and = and i32 %add, 255
18 %idxprom = zext i32 %and to i64
19 %arrayidx = getelementptr inbounds i32, i32* %p, i64 %idxprom
20 %0 = load i32, i32* %arrayidx, align 4