; RUN: llc -mtriple=bpfel -mcpu=v1 -filetype=obj -o - %s | llvm-objdump --no-print-imm-hex -d - | FileCheck --check-prefix=CHECK-DEC %s
; RUN: llc -mtriple=bpfel -mcpu=v1 -filetype=obj -o - %s | llvm-objdump -d --print-imm-hex - | FileCheck --check-prefix=CHECK-HEX %s

; Source Code:
; int gbl;
; int test(unsigned long long a, unsigned long long b) {
;   int ret = 0;
;   if (a == 0xABCDABCDabcdabcdULL) {
;     gbl = gbl * gbl * 2;
;     ret = 1;
;     goto out;
;   }
;   if (b == 0xABCDabcdabcdULL) {
;     gbl = gbl * 4;
;     ret = 2;
;   }
;  out:
;   return ret;
; }

@gbl = common local_unnamed_addr global i32 0, align 4

; Function Attrs: norecurse nounwind
define i32 @test(i64, i64) local_unnamed_addr #0 {
; CHECK-LABEL: test
  %3 = icmp eq i64 %0, -6067004223159161907
  br i1 %3, label %4, label %8
; CHECK-DEC: 18 03 00 00 cd ab cd ab 00 00 00 00 cd ab cd ab         r3 = -6067004223159161907 ll
; CHECK-DEC: 5d 31 07 00 00 00 00 00         if r1 != r3 goto +7
; CHECK-HEX: 18 03 00 00 cd ab cd ab 00 00 00 00 cd ab cd ab         r3 = -0x5432543254325433 ll
; CHECK-HEX: 5d 31 07 00 00 00 00 00         if r1 != r3 goto +0x7

; <label>:4:                                      ; preds = %2
  %5 = load i32, ptr @gbl, align 4
  %6 = shl i32 %5, 1
; CHECK-DEC: 67 01 00 00 01 00 00 00         r1 <<= 1
; CHECK-HEX: 67 01 00 00 01 00 00 00         r1 <<= 0x1
  %7 = mul i32 %6, %5
  br label %13

; <label>:8:                                      ; preds = %2
  %9 = icmp eq i64 %1, 188899839028173
; CHECK-DEC: 18 01 00 00 cd ab cd ab 00 00 00 00 cd ab 00 00         r1 = 188899839028173 ll
; CHECK-HEX: 18 01 00 00 cd ab cd ab 00 00 00 00 cd ab 00 00         r1 = 0xabcdabcdabcd ll
  br i1 %9, label %10, label %16

; <label>:10:                                     ; preds = %8
  %11 = load i32, ptr @gbl, align 4
  %12 = shl nsw i32 %11, 2
  br label %13

; <label>:13:                                     ; preds = %4, %10
  %14 = phi i32 [ %12, %10 ], [ %7, %4 ]
  %15 = phi i32 [ 2, %10 ], [ 1, %4 ]
  store i32 %14, ptr @gbl, align 4
; CHECK-DEC: 63 12 00 00 00 00 00 00         *(u32 *)(r2 + 0) = w1
; CHECK-HEX: 63 12 00 00 00 00 00 00         *(u32 *)(r2 + 0x0) = w1
  br label %16

; <label>:16:                                     ; preds = %13, %8
  %17 = phi i32 [ 0, %8 ], [ %15, %13 ]
  ret i32 %17
}

attributes #0 = { norecurse nounwind }
