60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 | 
						|
; RUN: llc < %s | FileCheck %s
 | 
						|
 | 
						|
target datalayout = "e-m:o-p:32:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"
 | 
						|
target triple = "thumbv7-apple-ios8.0.0"
 | 
						|
 | 
						|
declare void @g(i32)
 | 
						|
define void @f(i32 %val) optsize minsize {
 | 
						|
; CHECK-LABEL: f:
 | 
						|
; CHECK:       @ %bb.0:
 | 
						|
; CHECK-NEXT:    mov r1, r0
 | 
						|
; CHECK-NEXT:    movs r0, #1
 | 
						|
; CHECK-NEXT:    cbz r1, LBB0_6
 | 
						|
; CHECK-NEXT:  @ %bb.1:
 | 
						|
; CHECK-NEXT:    movw r2, #1154
 | 
						|
; CHECK-NEXT:    cmp r1, r2
 | 
						|
; CHECK-NEXT:    beq LBB0_4
 | 
						|
; CHECK-NEXT:  @ %bb.2:
 | 
						|
; CHECK-NEXT:    movw r2, #994
 | 
						|
; CHECK-NEXT:    cmp r1, r2
 | 
						|
; CHECK-NEXT:    beq LBB0_5
 | 
						|
; CHECK-NEXT:  @ %bb.3:
 | 
						|
; CHECK-NEXT:    cmp r1, #9
 | 
						|
; CHECK-NEXT:    it ne
 | 
						|
; CHECK-NEXT:    movne r0, #11
 | 
						|
; CHECK-NEXT:    b LBB0_6
 | 
						|
; CHECK-NEXT:  LBB0_4: @ %four
 | 
						|
; CHECK-NEXT:    movs r0, #87
 | 
						|
; CHECK-NEXT:    b LBB0_6
 | 
						|
; CHECK-NEXT:  LBB0_5: @ %three
 | 
						|
; CHECK-NEXT:    movs r0, #78
 | 
						|
; CHECK-NEXT:  LBB0_6: @ %common.ret
 | 
						|
; CHECK-NEXT:    str lr, [sp, #-4]!
 | 
						|
; CHECK-NEXT:    bl _g
 | 
						|
; CHECK-NEXT:    ldr lr, [sp], #4
 | 
						|
; CHECK-NEXT:    bx lr
 | 
						|
  switch i32 %val, label %def [
 | 
						|
    i32 0, label %one
 | 
						|
    i32 9, label %two
 | 
						|
    i32 994, label %three
 | 
						|
    i32 1154, label %four
 | 
						|
  ]
 | 
						|
 | 
						|
one:
 | 
						|
  call void @g(i32 1)
 | 
						|
  ret void
 | 
						|
two:
 | 
						|
  call void @g(i32 001)
 | 
						|
  ret void
 | 
						|
three:
 | 
						|
  call void @g(i32 78)
 | 
						|
  ret void
 | 
						|
four:
 | 
						|
  call void @g(i32 87)
 | 
						|
  ret void
 | 
						|
def:
 | 
						|
  call void @g(i32 11)
 | 
						|
  ret void
 | 
						|
}
 |