# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL

--- |

  define zeroext i1 @test_i1(i32 %a, i1 zeroext %f, i1 zeroext %t) {
  entry:
    %cmp = icmp sgt i32 %a, 0
    br i1 %cmp, label %cond.true, label %cond.false

  cond.true:                                        ; preds = %entry
    br label %cond.end

  cond.false:                                       ; preds = %entry
    br label %cond.end

  cond.end:                                         ; preds = %cond.false, %cond.true
    %cond = phi i1 [ %f, %cond.true ], [ %t, %cond.false ]
    ret i1 %cond
  }

  define i8 @test_i8(i32 %a, i8 %f, i8 %t) {
  entry:
    %cmp = icmp sgt i32 %a, 0
    br i1 %cmp, label %cond.true, label %cond.false

  cond.true:                                        ; preds = %entry
    br label %cond.end

  cond.false:                                       ; preds = %entry
    br label %cond.end

  cond.end:                                         ; preds = %cond.false, %cond.true
    %cond = phi i8 [ %f, %cond.true ], [ %t, %cond.false ]
    ret i8 %cond
  }

  define i16 @test_i16(i32 %a, i16 %f, i16 %t) {
  entry:
    %cmp = icmp sgt i32 %a, 0
    br i1 %cmp, label %cond.true, label %cond.false

  cond.true:                                        ; preds = %entry
    br label %cond.end

  cond.false:                                       ; preds = %entry
    br label %cond.end

  cond.end:                                         ; preds = %cond.false, %cond.true
    %cond = phi i16 [ %f, %cond.true ], [ %t, %cond.false ]
    ret i16 %cond
  }

  define i32 @test_i32(i32 %a, i32 %f, i32 %t) {
  entry:
    %cmp = icmp sgt i32 %a, 0
    br i1 %cmp, label %cond.true, label %cond.false

  cond.true:                                        ; preds = %entry
    br label %cond.end

  cond.false:                                       ; preds = %entry
    br label %cond.end

  cond.end:                                         ; preds = %cond.false, %cond.true
    %cond = phi i32 [ %f, %cond.true ], [ %t, %cond.false ]
    ret i32 %cond
  }

  define i64 @test_i64(i32 %a, i64 %f, i64 %t) {
  entry:
    %cmp = icmp sgt i32 %a, 0
    br i1 %cmp, label %cond.true, label %cond.false

  cond.true:                                        ; preds = %entry
    br label %cond.end

  cond.false:                                       ; preds = %entry
    br label %cond.end

  cond.end:                                         ; preds = %cond.false, %cond.true
    %cond = phi i64 [ %f, %cond.true ], [ %t, %cond.false ]
    ret i64 %cond
  }

  define float @test_float(i32 %a, float %f, float %t) {
  entry:
    %cmp = icmp sgt i32 %a, 0
    br i1 %cmp, label %cond.true, label %cond.false

  cond.true:                                        ; preds = %entry
    br label %cond.end

  cond.false:                                       ; preds = %entry
    br label %cond.end

  cond.end:                                         ; preds = %cond.false, %cond.true
    %cond = phi float [ %f, %cond.true ], [ %t, %cond.false ]
    ret float %cond
  }

  define double @test_double(i32 %a, double %f, double %t) {
  entry:
    %cmp = icmp sgt i32 %a, 0
    br i1 %cmp, label %cond.true, label %cond.false

  cond.true:                                        ; preds = %entry
    br label %cond.end

  cond.false:                                       ; preds = %entry
    br label %cond.end

  cond.end:                                         ; preds = %cond.false, %cond.true
    %cond = phi double [ %f, %cond.true ], [ %t, %cond.false ]
    ret double %cond
  }

...
---
name:            test_i1
alignment:       16
legalized:       false
regBankSelected: false
tracksRegLiveness: true
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
  - { id: 6, class: _, preferred-register: '' }
  - { id: 7, class: _, preferred-register: '' }
  - { id: 8, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:




body:             |
  ; ALL-LABEL: name: test_i1
  ; ALL: bb.0.entry:
  ; ALL:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; ALL:   liveins: $edi, $edx, $esi
  ; ALL:   [[COPY:%[0-9]+]]:_(s32) = COPY $edi
  ; ALL:   [[COPY1:%[0-9]+]]:_(s32) = COPY $esi
  ; ALL:   [[COPY2:%[0-9]+]]:_(s32) = COPY $edx
  ; ALL:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
  ; ALL:   [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
  ; ALL:   [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)
  ; ALL:   [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32)
  ; ALL:   G_BRCOND [[TRUNC]](s1), %bb.2
  ; ALL: bb.1.cond.false:
  ; ALL:   successors: %bb.2(0x80000000)
  ; ALL:   [[TRUNC2:%[0-9]+]]:_(s8) = G_TRUNC [[COPY2]](s32)
  ; ALL: bb.2.cond.end:
  ; ALL:   [[PHI:%[0-9]+]]:_(s8) = G_PHI [[TRUNC2]](s8), %bb.1, [[TRUNC1]](s8), %bb.0
  ; ALL:   [[COPY3:%[0-9]+]]:_(s8) = COPY [[PHI]](s8)
  ; ALL:   $al = COPY [[COPY3]](s8)
  ; ALL:   RET 0, implicit $al
  bb.1.entry:
    successors: %bb.3(0x40000000), %bb.2(0x40000000)
    liveins: $edi, $edx, $esi

    %0:_(s32) = COPY $edi
    %3:_(s32) = COPY $esi
    %1:_(s1) = G_TRUNC %3(s32)
    %4:_(s32) = COPY $edx
    %2:_(s1) = G_TRUNC %4(s32)
    %5:_(s32) = G_CONSTANT i32 0
    %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5
    G_BRCOND %6(s1), %bb.3

  bb.2.cond.false:
    successors: %bb.3(0x80000000)


  bb.3.cond.end:
    %7:_(s1) = G_PHI %2(s1), %bb.2, %1(s1), %bb.1
    %8:_(s8) = G_ANYEXT %7(s1)
    $al = COPY %8(s8)
    RET 0, implicit $al

...
---
name:            test_i8
alignment:       16
legalized:       false
regBankSelected: false
tracksRegLiveness: true
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
  - { id: 6, class: _, preferred-register: '' }
  - { id: 7, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:



body:             |
  ; ALL-LABEL: name: test_i8
  ; ALL: bb.0.entry:
  ; ALL:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; ALL:   liveins: $edi, $edx, $esi
  ; ALL:   [[COPY:%[0-9]+]]:_(s32) = COPY $edi
  ; ALL:   [[COPY1:%[0-9]+]]:_(s32) = COPY $esi
  ; ALL:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32)
  ; ALL:   [[COPY2:%[0-9]+]]:_(s32) = COPY $edx
  ; ALL:   [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY2]](s32)
  ; ALL:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
  ; ALL:   [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
  ; ALL:   [[TRUNC2:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)
  ; ALL:   G_BRCOND [[TRUNC2]](s1), %bb.2
  ; ALL: bb.1.cond.false:
  ; ALL:   successors: %bb.2(0x80000000)
  ; ALL: bb.2.cond.end:
  ; ALL:   [[PHI:%[0-9]+]]:_(s8) = G_PHI [[TRUNC1]](s8), %bb.1, [[TRUNC]](s8), %bb.0
  ; ALL:   $al = COPY [[PHI]](s8)
  ; ALL:   RET 0, implicit $al
  bb.1.entry:
    successors: %bb.3(0x40000000), %bb.2(0x40000000)
    liveins: $edi, $edx, $esi

    %0:_(s32) = COPY $edi
    %3:_(s32) = COPY $esi
    %1:_(s8) = G_TRUNC %3(s32)
    %4:_(s32) = COPY $edx
    %2:_(s8) = G_TRUNC %4(s32)
    %5:_(s32) = G_CONSTANT i32 0
    %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5
    G_BRCOND %6(s1), %bb.3

  bb.2.cond.false:
    successors: %bb.3(0x80000000)


  bb.3.cond.end:
    %7:_(s8) = G_PHI %2(s8), %bb.2, %1(s8), %bb.1
    $al = COPY %7(s8)
    RET 0, implicit $al

...
---
name:            test_i16
alignment:       16
legalized:       false
regBankSelected: false
tracksRegLiveness: true
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
  - { id: 6, class: _, preferred-register: '' }
  - { id: 7, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:



body:             |
  ; ALL-LABEL: name: test_i16
  ; ALL: bb.0.entry:
  ; ALL:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; ALL:   liveins: $edi, $edx, $esi
  ; ALL:   [[COPY:%[0-9]+]]:_(s32) = COPY $edi
  ; ALL:   [[COPY1:%[0-9]+]]:_(s32) = COPY $esi
  ; ALL:   [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)
  ; ALL:   [[COPY2:%[0-9]+]]:_(s32) = COPY $edx
  ; ALL:   [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)
  ; ALL:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
  ; ALL:   [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
  ; ALL:   [[TRUNC2:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)
  ; ALL:   G_BRCOND [[TRUNC2]](s1), %bb.2
  ; ALL: bb.1.cond.false:
  ; ALL:   successors: %bb.2(0x80000000)
  ; ALL: bb.2.cond.end:
  ; ALL:   [[PHI:%[0-9]+]]:_(s16) = G_PHI [[TRUNC1]](s16), %bb.1, [[TRUNC]](s16), %bb.0
  ; ALL:   $ax = COPY [[PHI]](s16)
  ; ALL:   RET 0, implicit $ax
  bb.1.entry:
    successors: %bb.3(0x40000000), %bb.2(0x40000000)
    liveins: $edi, $edx, $esi

    %0:_(s32) = COPY $edi
    %3:_(s32) = COPY $esi
    %1:_(s16) = G_TRUNC %3(s32)
    %4:_(s32) = COPY $edx
    %2:_(s16) = G_TRUNC %4(s32)
    %5:_(s32) = G_CONSTANT i32 0
    %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5
    G_BRCOND %6(s1), %bb.3

  bb.2.cond.false:
    successors: %bb.3(0x80000000)


  bb.3.cond.end:
    %7:_(s16) = G_PHI %2(s16), %bb.2, %1(s16), %bb.1
    $ax = COPY %7(s16)
    RET 0, implicit $ax

...
---
name:            test_i32
alignment:       16
legalized:       false
regBankSelected: false
tracksRegLiveness: true
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:



body:             |
  ; ALL-LABEL: name: test_i32
  ; ALL: bb.0.entry:
  ; ALL:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
  ; ALL:   liveins: $edi, $edx, $esi
  ; ALL:   [[COPY:%[0-9]+]]:_(s32) = COPY $edi
  ; ALL:   [[COPY1:%[0-9]+]]:_(s32) = COPY $esi
  ; ALL:   [[COPY2:%[0-9]+]]:_(s32) = COPY $edx
  ; ALL:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
  ; ALL:   [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
  ; ALL:   [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)
  ; ALL:   G_BRCOND [[TRUNC]](s1), %bb.1
  ; ALL:   G_BR %bb.2
  ; ALL: bb.1.cond.true:
  ; ALL:   successors: %bb.3(0x80000000)
  ; ALL:   G_BR %bb.3
  ; ALL: bb.2.cond.false:
  ; ALL:   successors: %bb.3(0x80000000)
  ; ALL: bb.3.cond.end:
  ; ALL:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[COPY1]](s32), %bb.1, [[COPY2]](s32), %bb.2
  ; ALL:   $eax = COPY [[PHI]](s32)
  ; ALL:   RET 0, implicit $eax
  bb.1.entry:
    successors: %bb.2(0x40000000), %bb.3(0x40000000)
    liveins: $edi, $edx, $esi

    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s32) = COPY $edx
    %3(s32) = G_CONSTANT i32 0
    %4(s1) = G_ICMP intpred(sgt), %0(s32), %3
    G_BRCOND %4(s1), %bb.2
    G_BR %bb.3

  bb.2.cond.true:
    successors: %bb.4(0x80000000)

    G_BR %bb.4

  bb.3.cond.false:
    successors: %bb.4(0x80000000)


  bb.4.cond.end:
    %5(s32) = G_PHI %1(s32), %bb.2, %2(s32), %bb.3
    $eax = COPY %5(s32)
    RET 0, implicit $eax

...
---
name:            test_i64
alignment:       16
legalized:       false
regBankSelected: false
tracksRegLiveness: true
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:



body:             |
  ; ALL-LABEL: name: test_i64
  ; ALL: bb.0.entry:
  ; ALL:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
  ; ALL:   liveins: $edi, $rdx, $rsi
  ; ALL:   [[COPY:%[0-9]+]]:_(s32) = COPY $edi
  ; ALL:   [[COPY1:%[0-9]+]]:_(s64) = COPY $rsi
  ; ALL:   [[COPY2:%[0-9]+]]:_(s64) = COPY $rdx
  ; ALL:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
  ; ALL:   [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
  ; ALL:   [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)
  ; ALL:   G_BRCOND [[TRUNC]](s1), %bb.1
  ; ALL:   G_BR %bb.2
  ; ALL: bb.1.cond.true:
  ; ALL:   successors: %bb.3(0x80000000)
  ; ALL:   G_BR %bb.3
  ; ALL: bb.2.cond.false:
  ; ALL:   successors: %bb.3(0x80000000)
  ; ALL: bb.3.cond.end:
  ; ALL:   [[PHI:%[0-9]+]]:_(s64) = G_PHI [[COPY1]](s64), %bb.1, [[COPY2]](s64), %bb.2
  ; ALL:   $rax = COPY [[PHI]](s64)
  ; ALL:   RET 0, implicit $rax
  bb.1.entry:
    successors: %bb.2(0x40000000), %bb.3(0x40000000)
    liveins: $edi, $rdx, $rsi

    %0(s32) = COPY $edi
    %1(s64) = COPY $rsi
    %2(s64) = COPY $rdx
    %3(s32) = G_CONSTANT i32 0
    %4(s1) = G_ICMP intpred(sgt), %0(s32), %3
    G_BRCOND %4(s1), %bb.2
    G_BR %bb.3

  bb.2.cond.true:
    successors: %bb.4(0x80000000)

    G_BR %bb.4

  bb.3.cond.false:
    successors: %bb.4(0x80000000)


  bb.4.cond.end:
    %5(s64) = G_PHI %1(s64), %bb.2, %2(s64), %bb.3
    $rax = COPY %5(s64)
    RET 0, implicit $rax

...
---
name:            test_float
alignment:       16
legalized:       false
regBankSelected: false
tracksRegLiveness: true
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
  - { id: 6, class: _, preferred-register: '' }
  - { id: 7, class: _, preferred-register: '' }
  - { id: 8, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:



body:             |
  ; ALL-LABEL: name: test_float
  ; ALL: bb.0.entry:
  ; ALL:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; ALL:   liveins: $edi, $xmm0, $xmm1
  ; ALL:   [[COPY:%[0-9]+]]:_(s32) = COPY $edi
  ; ALL:   [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm0
  ; ALL:   [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)
  ; ALL:   [[COPY2:%[0-9]+]]:_(s128) = COPY $xmm1
  ; ALL:   [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY2]](s128)
  ; ALL:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
  ; ALL:   [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
  ; ALL:   [[TRUNC2:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)
  ; ALL:   G_BRCOND [[TRUNC2]](s1), %bb.2
  ; ALL: bb.1.cond.false:
  ; ALL:   successors: %bb.2(0x80000000)
  ; ALL: bb.2.cond.end:
  ; ALL:   [[PHI:%[0-9]+]]:_(s32) = G_PHI [[TRUNC1]](s32), %bb.1, [[TRUNC]](s32), %bb.0
  ; ALL:   [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[PHI]](s32)
  ; ALL:   $xmm0 = COPY [[ANYEXT]](s128)
  ; ALL:   RET 0, implicit $xmm0
  bb.1.entry:
    successors: %bb.3(0x40000000), %bb.2(0x40000000)
    liveins: $edi, $xmm0, $xmm1

    %0:_(s32) = COPY $edi
    %3:_(s128) = COPY $xmm0
    %1:_(s32) = G_TRUNC %3(s128)
    %4:_(s128) = COPY $xmm1
    %2:_(s32) = G_TRUNC %4(s128)
    %5:_(s32) = G_CONSTANT i32 0
    %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5
    G_BRCOND %6(s1), %bb.3

  bb.2.cond.false:
    successors: %bb.3(0x80000000)


  bb.3.cond.end:
    %7:_(s32) = G_PHI %2(s32), %bb.2, %1(s32), %bb.1
    %8:_(s128) = G_ANYEXT %7(s32)
    $xmm0 = COPY %8(s128)
    RET 0, implicit $xmm0

...
---
name:            test_double
alignment:       16
legalized:       false
regBankSelected: false
tracksRegLiveness: true
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
  - { id: 6, class: _, preferred-register: '' }
  - { id: 7, class: _, preferred-register: '' }
  - { id: 8, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:



body:             |
  ; ALL-LABEL: name: test_double
  ; ALL: bb.0.entry:
  ; ALL:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; ALL:   liveins: $edi, $xmm0, $xmm1
  ; ALL:   [[COPY:%[0-9]+]]:_(s32) = COPY $edi
  ; ALL:   [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm0
  ; ALL:   [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)
  ; ALL:   [[COPY2:%[0-9]+]]:_(s128) = COPY $xmm1
  ; ALL:   [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY2]](s128)
  ; ALL:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
  ; ALL:   [[ICMP:%[0-9]+]]:_(s8) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
  ; ALL:   [[TRUNC2:%[0-9]+]]:_(s1) = G_TRUNC [[ICMP]](s8)
  ; ALL:   G_BRCOND [[TRUNC2]](s1), %bb.2
  ; ALL: bb.1.cond.false:
  ; ALL:   successors: %bb.2(0x80000000)
  ; ALL: bb.2.cond.end:
  ; ALL:   [[PHI:%[0-9]+]]:_(s64) = G_PHI [[TRUNC1]](s64), %bb.1, [[TRUNC]](s64), %bb.0
  ; ALL:   [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[PHI]](s64)
  ; ALL:   $xmm0 = COPY [[ANYEXT]](s128)
  ; ALL:   RET 0, implicit $xmm0
  bb.1.entry:
    successors: %bb.3(0x40000000), %bb.2(0x40000000)
    liveins: $edi, $xmm0, $xmm1

    %0:_(s32) = COPY $edi
    %3:_(s128) = COPY $xmm0
    %1:_(s64) = G_TRUNC %3(s128)
    %4:_(s128) = COPY $xmm1
    %2:_(s64) = G_TRUNC %4(s128)
    %5:_(s32) = G_CONSTANT i32 0
    %6:_(s1) = G_ICMP intpred(sgt), %0(s32), %5
    G_BRCOND %6(s1), %bb.3

  bb.2.cond.false:
    successors: %bb.3(0x80000000)


  bb.3.cond.end:
    %7:_(s64) = G_PHI %2(s64), %bb.2, %1(s64), %bb.1
    %8:_(s128) = G_ANYEXT %7(s64)
    $xmm0 = COPY %8(s128)
    RET 0, implicit $xmm0

...
