1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:16:16:16-i8:8:8-i16:16:16-i32:16:32-n8:16" 4*9880d681SAndroid Build Coastguard Workertarget triple = "msp430---elf" 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 7*9880d681SAndroid Build Coastguard Workerdefine i16 @test(i16 %i) #0 { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test: 10*9880d681SAndroid Build Coastguard Worker %retval = alloca i16, align 2 11*9880d681SAndroid Build Coastguard Worker %i.addr = alloca i16, align 2 12*9880d681SAndroid Build Coastguard Worker store i16 %i, i16* %i.addr, align 2 13*9880d681SAndroid Build Coastguard Worker %0 = load i16, i16* %i.addr, align 2 14*9880d681SAndroid Build Coastguard Worker; CHECK: mov.w #2, r14 15*9880d681SAndroid Build Coastguard Worker; CHECK: call #__mulhi3hw_noint 16*9880d681SAndroid Build Coastguard Worker; CHECK: br .LJTI0_0(r15) 17*9880d681SAndroid Build Coastguard Worker switch i16 %0, label %sw.default [ 18*9880d681SAndroid Build Coastguard Worker i16 0, label %sw.bb 19*9880d681SAndroid Build Coastguard Worker i16 1, label %sw.bb1 20*9880d681SAndroid Build Coastguard Worker i16 2, label %sw.bb2 21*9880d681SAndroid Build Coastguard Worker i16 3, label %sw.bb3 22*9880d681SAndroid Build Coastguard Worker ] 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workersw.bb: ; preds = %entry 25*9880d681SAndroid Build Coastguard Worker store i16 0, i16* %retval 26*9880d681SAndroid Build Coastguard Worker br label %return 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workersw.bb1: ; preds = %entry 29*9880d681SAndroid Build Coastguard Worker store i16 1, i16* %retval 30*9880d681SAndroid Build Coastguard Worker br label %return 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workersw.bb2: ; preds = %entry 33*9880d681SAndroid Build Coastguard Worker store i16 2, i16* %retval 34*9880d681SAndroid Build Coastguard Worker br label %return 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workersw.bb3: ; preds = %entry 37*9880d681SAndroid Build Coastguard Worker store i16 3, i16* %retval 38*9880d681SAndroid Build Coastguard Worker br label %return 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Workersw.default: ; preds = %entry 41*9880d681SAndroid Build Coastguard Worker store i16 2, i16* %retval 42*9880d681SAndroid Build Coastguard Worker br label %return 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workerreturn: ; preds = %sw.default, %sw.bb3, %sw.bb2, %sw.bb1, %sw.bb 45*9880d681SAndroid Build Coastguard Worker %1 = load i16, i16* %retval 46*9880d681SAndroid Build Coastguard Worker ret i16 %1 47*9880d681SAndroid Build Coastguard Worker; CHECK: ret 48*9880d681SAndroid Build Coastguard Worker} 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker; CHECK: .LJTI0_0: 51*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short .LBB0_2 52*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short .LBB0_4 53*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short .LBB0_3 54*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: .short .LBB0_5 55