; Test insertions of memory into the low byte of an i32.
;
; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s

; Check a plain insertion with (or (and ... -0xff) (zext (load ....))).
; The whole sequence can be performed by IC.
define i32 @f1(i32 %orig, i8 *%ptr) {
; CHECK-LABEL: f1:
; CHECK-NOT: ni
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %val = load i8 , i8 *%ptr
  %ptr2 = zext i8 %val to i32
  %ptr1 = and i32 %orig, -256
  %or = or i32 %ptr1, %ptr2
  ret i32 %or
}

; Like f1, but with the operands reversed.
define i32 @f2(i32 %orig, i8 *%ptr) {
; CHECK-LABEL: f2:
; CHECK-NOT: ni
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %val = load i8 , i8 *%ptr
  %ptr2 = zext i8 %val to i32
  %ptr1 = and i32 %orig, -256
  %or = or i32 %ptr2, %ptr1
  ret i32 %or
}

; Check a case where more bits than lower 8 are masked out of the
; register value.  We can use IC but must keep the original mask.
define i32 @f3(i32 %orig, i8 *%ptr) {
; CHECK-LABEL: f3:
; CHECK: nill %r2, 65024
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %val = load i8 , i8 *%ptr
  %ptr2 = zext i8 %val to i32
  %ptr1 = and i32 %orig, -512
  %or = or i32 %ptr1, %ptr2
  ret i32 %or
}

; Like f3, but with the operands reversed.
define i32 @f4(i32 %orig, i8 *%ptr) {
; CHECK-LABEL: f4:
; CHECK: nill %r2, 65024
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %val = load i8 , i8 *%ptr
  %ptr2 = zext i8 %val to i32
  %ptr1 = and i32 %orig, -512
  %or = or i32 %ptr2, %ptr1
  ret i32 %or
}

; Check a case where the low 8 bits are cleared by a shift left.
define i32 @f5(i32 %orig, i8 *%ptr) {
; CHECK-LABEL: f5:
; CHECK: sll %r2, 8
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %val = load i8 , i8 *%ptr
  %ptr2 = zext i8 %val to i32
  %ptr1 = shl i32 %orig, 8
  %or = or i32 %ptr1, %ptr2
  ret i32 %or
}

; Like f5, but with the operands reversed.
define i32 @f6(i32 %orig, i8 *%ptr) {
; CHECK-LABEL: f6:
; CHECK: sll %r2, 8
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %val = load i8 , i8 *%ptr
  %ptr2 = zext i8 %val to i32
  %ptr1 = shl i32 %orig, 8
  %or = or i32 %ptr2, %ptr1
  ret i32 %or
}

; Check insertions into a constant.
define i32 @f7(i32 %orig, i8 *%ptr) {
; CHECK-LABEL: f7:
; CHECK: lhi %r2, 256
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %val = load i8 , i8 *%ptr
  %ptr2 = zext i8 %val to i32
  %or = or i32 %ptr2, 256
  ret i32 %or
}

; Like f7, but with the operands reversed.
define i32 @f8(i32 %orig, i8 *%ptr) {
; CHECK-LABEL: f8:
; CHECK: lhi %r2, 256
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %val = load i8 , i8 *%ptr
  %ptr2 = zext i8 %val to i32
  %or = or i32 256, %ptr2
  ret i32 %or
}

; Check the high end of the IC range.
define i32 @f9(i32 %orig, i8 *%src) {
; CHECK-LABEL: f9:
; CHECK: ic %r2, 4095(%r3)
; CHECK: br %r14
  %ptr = getelementptr i8, i8 *%src, i64 4095
  %val = load i8 , i8 *%ptr
  %src2 = zext i8 %val to i32
  %src1 = and i32 %orig, -256
  %or = or i32 %src2, %src1
  ret i32 %or
}

; Check the next byte up, which should use ICY instead of IC.
define i32 @f10(i32 %orig, i8 *%src) {
; CHECK-LABEL: f10:
; CHECK: icy %r2, 4096(%r3)
; CHECK: br %r14
  %ptr = getelementptr i8, i8 *%src, i64 4096
  %val = load i8 , i8 *%ptr
  %src2 = zext i8 %val to i32
  %src1 = and i32 %orig, -256
  %or = or i32 %src2, %src1
  ret i32 %or
}

; Check the high end of the ICY range.
define i32 @f11(i32 %orig, i8 *%src) {
; CHECK-LABEL: f11:
; CHECK: icy %r2, 524287(%r3)
; CHECK: br %r14
  %ptr = getelementptr i8, i8 *%src, i64 524287
  %val = load i8 , i8 *%ptr
  %src2 = zext i8 %val to i32
  %src1 = and i32 %orig, -256
  %or = or i32 %src2, %src1
  ret i32 %or
}

; Check the next byte up, which needs separate address logic.
; Other sequences besides this one would be OK.
define i32 @f12(i32 %orig, i8 *%src) {
; CHECK-LABEL: f12:
; CHECK: agfi %r3, 524288
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %ptr = getelementptr i8, i8 *%src, i64 524288
  %val = load i8 , i8 *%ptr
  %src2 = zext i8 %val to i32
  %src1 = and i32 %orig, -256
  %or = or i32 %src2, %src1
  ret i32 %or
}

; Check the high end of the negative ICY range.
define i32 @f13(i32 %orig, i8 *%src) {
; CHECK-LABEL: f13:
; CHECK: icy %r2, -1(%r3)
; CHECK: br %r14
  %ptr = getelementptr i8, i8 *%src, i64 -1
  %val = load i8 , i8 *%ptr
  %src2 = zext i8 %val to i32
  %src1 = and i32 %orig, -256
  %or = or i32 %src2, %src1
  ret i32 %or
}

; Check the low end of the ICY range.
define i32 @f14(i32 %orig, i8 *%src) {
; CHECK-LABEL: f14:
; CHECK: icy %r2, -524288(%r3)
; CHECK: br %r14
  %ptr = getelementptr i8, i8 *%src, i64 -524288
  %val = load i8 , i8 *%ptr
  %src2 = zext i8 %val to i32
  %src1 = and i32 %orig, -256
  %or = or i32 %src2, %src1
  ret i32 %or
}

; Check the next byte down, which needs separate address logic.
; Other sequences besides this one would be OK.
define i32 @f15(i32 %orig, i8 *%src) {
; CHECK-LABEL: f15:
; CHECK: agfi %r3, -524289
; CHECK: ic %r2, 0(%r3)
; CHECK: br %r14
  %ptr = getelementptr i8, i8 *%src, i64 -524289
  %val = load i8 , i8 *%ptr
  %src2 = zext i8 %val to i32
  %src1 = and i32 %orig, -256
  %or = or i32 %src2, %src1
  ret i32 %or
}

; Check that IC allows an index.
define i32 @f16(i32 %orig, i8 *%src, i64 %index) {
; CHECK-LABEL: f16:
; CHECK: ic %r2, 4095({{%r4,%r3|%r3,%r4}})
; CHECK: br %r14
  %ptr1 = getelementptr i8, i8 *%src, i64 %index
  %ptr2 = getelementptr i8, i8 *%ptr1, i64 4095
  %val = load i8 , i8 *%ptr2
  %src2 = zext i8 %val to i32
  %src1 = and i32 %orig, -256
  %or = or i32 %src2, %src1
  ret i32 %or
}

; Check that ICY allows an index.
define i32 @f17(i32 %orig, i8 *%src, i64 %index) {
; CHECK-LABEL: f17:
; CHECK: icy %r2, 4096({{%r4,%r3|%r3,%r4}})
; CHECK: br %r14
  %ptr1 = getelementptr i8, i8 *%src, i64 %index
  %ptr2 = getelementptr i8, i8 *%ptr1, i64 4096
  %val = load i8 , i8 *%ptr2
  %src2 = zext i8 %val to i32
  %src1 = and i32 %orig, -256
  %or = or i32 %src2, %src1
  ret i32 %or
}
