]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/X86/2006-11-17-IllegalMove.ll
Vendor import of llvm trunk r351319 (just before the release_80 branch
[FreeBSD/FreeBSD.git] / test / CodeGen / X86 / 2006-11-17-IllegalMove.ll
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s
3
4 define void @handle_vector_size_attribute() nounwind {
5 ; CHECK-LABEL: handle_vector_size_attribute:
6 ; CHECK:       # %bb.0: # %entry
7 ; CHECK-NEXT:    movl 0, %eax
8 ; CHECK-NEXT:    decl %eax
9 ; CHECK-NEXT:    cmpl $1, %eax
10 ; CHECK-NEXT:    ja .LBB0_2
11 ; CHECK-NEXT:  # %bb.1: # %bb77
12 ; CHECK-NEXT:    movb 0, %al
13 ; CHECK-NEXT:    movzbl %al, %eax
14 ; CHECK-NEXT:    # kill: def $eax killed $eax def $ax
15 ; CHECK-NEXT:    divb 0
16 ; CHECK-NEXT:    movzbl %al, %eax
17 ; CHECK-NEXT:    cmpq %rax, %rax
18 ; CHECK-NEXT:  .LBB0_2: # %bb84
19 ; CHECK-NEXT:    retq
20 entry:
21         %tmp69 = load i32, i32* null            ; <i32> [#uses=1]
22         switch i32 %tmp69, label %bb84 [
23                  i32 2, label %bb77
24                  i32 1, label %bb77
25         ]
26
27 bb77:           ; preds = %entry, %entry
28         %tmp99 = udiv i64 0, 0          ; <i64> [#uses=1]
29         %tmp = load volatile i8, i8* null               ; <i8> [#uses=1]
30         %tmp114 = icmp eq i64 0, 0              ; <i1> [#uses=1]
31         br label %cond_true115
32
33 bb84:           ; preds = %entry
34         ret void
35
36 cond_true115:           ; preds = %bb77
37         %tmp118 = load volatile i8, i8* null            ; <i8> [#uses=1]
38         br label %cond_true120
39
40 cond_true120:           ; preds = %cond_true115
41         %tmp127 = udiv i8 %tmp, %tmp118         ; <i8> [#uses=1]
42         %tmp127.upgrd.1 = zext i8 %tmp127 to i64                ; <i64> [#uses=1]
43         br label %cond_next129
44
45 cond_next129:           ; preds = %cond_true120, %cond_true115
46         %iftmp.30.0 = phi i64 [ %tmp127.upgrd.1, %cond_true120 ]                ; <i64> [#uses=1]
47         %tmp132 = icmp eq i64 %iftmp.30.0, %tmp99               ; <i1> [#uses=1]
48         br i1 %tmp132, label %cond_false148, label %cond_next136
49
50 cond_next136:           ; preds = %cond_next129, %bb77
51         ret void
52
53 cond_false148:          ; preds = %cond_next129
54         ret void
55 }