1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 2 2# RUN: llc -verify-machineinstrs -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s 3 4# test freeze 5 6... 7--- 8name: test_freezep0 9body: | 10 bb.1: 11 ; CHECK-LABEL: name: test_freezep0 12 ; CHECK: [[DEF:%[0-9]+]]:_(p0) = IMPLICIT_DEF 13 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p0) = G_FREEZE [[DEF]] 14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY [[FREEZE]](p0) 15 ; CHECK-NEXT: RET 0, implicit [[COPY]](p0) 16 %0:_(p0) = IMPLICIT_DEF 17 %1:_(p0) = G_FREEZE %0 18 %2:_(p0) = COPY %1(p0) 19 RET 0, implicit %2 20 21... 22--- 23name: test_freeze64 24body: | 25 bb.1: 26 ; CHECK-LABEL: name: test_freeze64 27 ; CHECK: [[DEF:%[0-9]+]]:_(s64) = IMPLICIT_DEF 28 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[DEF]] 29 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[FREEZE]](s64) 30 ; CHECK-NEXT: RET 0, implicit [[COPY]](s64) 31 %0:_(s64) = IMPLICIT_DEF 32 %1:_(s64) = G_FREEZE %0 33 %2:_(s64) = COPY %1(s64) 34 RET 0, implicit %2 35 36... 37--- 38name: test_freeze48 39body: | 40 bb.1: 41 ; CHECK-LABEL: name: test_freeze48 42 ; CHECK: [[DEF:%[0-9]+]]:_(s48) = IMPLICIT_DEF 43 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[DEF]](s48) 44 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[ANYEXT]] 45 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s48) = G_TRUNC [[FREEZE]](s64) 46 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s48) = COPY [[TRUNC]](s48) 47 ; CHECK-NEXT: RET 0, implicit [[COPY]](s48) 48 %0:_(s48) = IMPLICIT_DEF 49 %1:_(s48) = G_FREEZE %0 50 %2:_(s48) = COPY %1(s48) 51 RET 0, implicit %2 52 53... 54--- 55name: test_freeze32 56body: | 57 bb.1: 58 ; CHECK-LABEL: name: test_freeze32 59 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = IMPLICIT_DEF 60 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s32) = G_FREEZE [[DEF]] 61 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[FREEZE]](s32) 62 ; CHECK-NEXT: RET 0, implicit [[COPY]](s32) 63 %0:_(s32) = IMPLICIT_DEF 64 %1:_(s32) = G_FREEZE %0 65 %2:_(s32) = COPY %1(s32) 66 RET 0, implicit %2 67 68... 69--- 70name: test_freeze16 71body: | 72 bb.1: 73 ; CHECK-LABEL: name: test_freeze16 74 ; CHECK: [[DEF:%[0-9]+]]:_(s16) = IMPLICIT_DEF 75 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s16) = G_FREEZE [[DEF]] 76 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY [[FREEZE]](s16) 77 ; CHECK-NEXT: RET 0, implicit [[COPY]](s16) 78 %0:_(s16) = IMPLICIT_DEF 79 %1:_(s16) = G_FREEZE %0 80 %2:_(s16) = COPY %1(s16) 81 RET 0, implicit %2 82 83... 84--- 85name: test_freeze8 86body: | 87 bb.1: 88 ; CHECK-LABEL: name: test_freeze8 89 ; CHECK: [[DEF:%[0-9]+]]:_(s8) = IMPLICIT_DEF 90 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s8) = G_FREEZE [[DEF]] 91 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY [[FREEZE]](s8) 92 ; CHECK-NEXT: RET 0, implicit [[COPY]](s8) 93 %0:_(s8) = IMPLICIT_DEF 94 %1:_(s8) = G_FREEZE %0 95 %2:_(s8) = COPY %1(s8) 96 RET 0, implicit %2 97 98... 99