The shape of each SM86 instruction.
1015def sm121LowerShapeOf =
1016 (lambda unrestricted body : (family SM86InstructionBody) .
1017 (eliminate
1018 SM86InstructionBody
1019 (lambda unrestricted current : (family SM86InstructionBody) . (family SM121LowerShape))
1020 body
1021 (branch SM86MoveConstant d bank offset control .
1022 (sm121LowerShape (constructor SM121LowerRule SM121LowerRuleConstantMove) (constructor SM121LowerClass SM121LowerVariable) sm121LowerNone
1023 (sm121LowerOne (sm121LowerRegister d))))
1024 (branch SM86SpecialToRegister d special control .
1025 (sm121LowerSame (constructor SM121LowerClass SM121LowerVariable) sm121LowerNone (sm121LowerOne (sm121LowerRegister d))))
1026 (branch SM86MoveImmediate d value control .
1027 (sm121LowerSame (constructor SM121LowerClass SM121LowerDualAlu) sm121LowerNone (sm121LowerOne (sm121LowerRegister d))))
1028 (branch SM86IntegerMultiplyAddConstant d a bank offset c control .
1029 (sm121LowerShape (constructor SM121LowerRule SM121LowerRuleConstantMultiplyAdd) (constructor SM121LowerClass SM121LowerFma)
1030 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister c))
1031 (sm121LowerOne (sm121LowerRegister d))))
1032 (branch SM86IntegerMultiplyAddImmediate d a value c control .
1033 (sm121LowerSame (constructor SM121LowerClass SM121LowerFma)
1034 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister c))
1035 (sm121LowerOne (sm121LowerRegister d))))
1036 (branch SM86IntegerMultiplyAddWideConstant d a b bank offset control .
1037 (sm121LowerShape (constructor SM121LowerRule SM121LowerRuleConstantMultiplyAddWide) (constructor SM121LowerClass SM121LowerWide)
1038 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister b))
1039 (sm121LowerSpan (sm121LowerRegister d) 2)))
1040 (branch SM86IntegerAddThreeImmediate d a value control .
1041 (sm121LowerSame (constructor SM121LowerClass SM121LowerAlu) (sm121LowerOne (sm121LowerRegister a)) (sm121LowerOne (sm121LowerRegister d))))
1042 (branch SM86IntegerAddThreeRegister d a b control .
1043 (sm121LowerSame (constructor SM121LowerClass SM121LowerAlu)
1044 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister b))
1045 (sm121LowerOne (sm121LowerRegister d))))
1046 (branch SM86ShiftRightImmediate d a amount control .
1047 (sm121LowerSame (constructor SM121LowerClass SM121LowerAlu) (sm121LowerOne (sm121LowerRegister a)) (sm121LowerOne (sm121LowerRegister d))))
1048 (branch SM86LogicThreeInputTruthTable d a b table control .
1049 (sm121LowerSame (constructor SM121LowerClass SM121LowerAlu)
1050 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister b))
1051 (sm121LowerOne (sm121LowerRegister d))))
1052 (branch SM86IntegerToFloat d a control .
1053 (sm121LowerSame (constructor SM121LowerClass SM121LowerAlu) (sm121LowerOne (sm121LowerRegister a)) (sm121LowerOne (sm121LowerRegister d))))
1054 (branch SM86FloatAdd d a b control .
1055 (sm121LowerSame (constructor SM121LowerClass SM121LowerFma)
1056 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister b))
1057 (sm121LowerOne (sm121LowerRegister d))))
1058 (branch SM86FloatMultiply d a b control .
1059 (sm121LowerSame (constructor SM121LowerClass SM121LowerFma)
1060 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister b))
1061 (sm121LowerOne (sm121LowerRegister d))))
1062 (branch SM86FloatFusedMultiplyAdd d a b c control .
1063 (sm121LowerSame (constructor SM121LowerClass SM121LowerFma)
1064 (sm121LowerThree (sm121LowerRegister a) (sm121LowerRegister b) (sm121LowerRegister c))
1065 (sm121LowerOne (sm121LowerRegister d))))
1066 (branch SM86MultiFunctionUnitApproximation d a operation control .
1067 (sm121LowerSame (constructor SM121LowerClass SM121LowerVariable) (sm121LowerOne (sm121LowerRegister a)) (sm121LowerOne (sm121LowerRegister d))))
1068 (branch SM86FloatMinimumOrMaximum d a b mode control .
1069 (sm121LowerSame (constructor SM121LowerClass SM121LowerDualAlu)
1070 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister b))
1071 (sm121LowerOne (sm121LowerRegister d))))
1072 (branch SM86FloatNegate d a control .
1073 (sm121LowerSame (constructor SM121LowerClass SM121LowerFma) (sm121LowerOne (sm121LowerRegister a)) (sm121LowerOne (sm121LowerRegister d))))
1074 (branch SM86FloatPairToPackedHalfPair d a b control .
1075 (sm121LowerSame (constructor SM121LowerClass SM121LowerAlu)
1076 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister b))
1077 (sm121LowerOne (sm121LowerRegister d))))
1078 (branch SM86FloatPairToPackedBFloat16Pair d a b control .
1079 (sm121LowerSame (constructor SM121LowerClass SM121LowerAlu)
1080 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister b))
1081 (sm121LowerOne (sm121LowerRegister d))))
1082 (branch SM86HalfToFloat d a selector control .
1083 (sm121LowerSame (constructor SM121LowerClass SM121LowerHalfToFloat) (sm121LowerOne (sm121LowerRegister a)) (sm121LowerOne (sm121LowerRegister d))))
1084 (branch SM86BFloat16ToFloat d a selector control .
1085 (sm121LowerSame (constructor SM121LowerClass SM121LowerAlu) (sm121LowerOne (sm121LowerRegister a)) (sm121LowerOne (sm121LowerRegister d))))
1086 (branch SM86TensorCoreHalfMatrixMultiplyAccumulate16x8x16Float32 d a b c control .
1087 (sm121LowerSame (constructor SM121LowerClass SM121LowerTensor)
1088 (sm121LowerAppend (sm121LowerSpan (sm121LowerRegister a) 4)
1089 (sm121LowerAppend (sm121LowerSpan (sm121LowerRegister b) 2) (sm121LowerSpan (sm121LowerRegister c) 4)))
1090 (sm121LowerSpan (sm121LowerRegister d) 4)))
1091 (branch SM86TensorCoreBFloat16MatrixMultiplyAccumulate16x8x16Float32 d a b c control .
1092 (sm121LowerSame (constructor SM121LowerClass SM121LowerTensor)
1093 (sm121LowerAppend (sm121LowerSpan (sm121LowerRegister a) 4)
1094 (sm121LowerAppend (sm121LowerSpan (sm121LowerRegister b) 2) (sm121LowerSpan (sm121LowerRegister c) 4)))
1095 (sm121LowerSpan (sm121LowerRegister d) 4)))
1096 (branch SM86LoadGlobal d a offset control .
1097 (sm121LowerSame (constructor SM121LowerClass SM121LowerMemory) (sm121LowerSpan (sm121LowerRegister a) 2) (sm121LowerOne (sm121LowerRegister d))))
1098 (branch SM86LoadGlobalWide d a offset control .
1099 (sm121LowerSame (constructor SM121LowerClass SM121LowerMemory) (sm121LowerSpan (sm121LowerRegister a) 2) (sm121LowerSpan (sm121LowerRegister d) 4)))
1100 (branch SM86WarpShuffle d a lane segment mode control .
1101 (sm121LowerSame (constructor SM121LowerClass SM121LowerMemory) (sm121LowerOne (sm121LowerRegister a)) (sm121LowerOne (sm121LowerRegister d))))
1102 (branch SM86LoadShared d a offset control .
1103 (sm121LowerShape (constructor SM121LowerRule SM121LowerRuleShared) (constructor SM121LowerClass SM121LowerMemory)
1104 (sm121LowerOne (sm121LowerRegister a)) (sm121LowerOne (sm121LowerRegister d))))
1105 (branch SM86LoadSharedMatrix d a offset count transpose control .
1106 (sm121LowerShape (constructor SM121LowerRule SM121LowerRuleSharedMatrix) (constructor SM121LowerClass SM121LowerMemory)
1107 (sm121LowerOne (sm121LowerRegister a))
1108 (sm121LowerSpan (sm121LowerRegister d) (sm121LowerMatrixCount count))))
1109 (branch SM86StoreShared a v offset control .
1110 (sm121LowerShape (constructor SM121LowerRule SM121LowerRuleShared) (constructor SM121LowerClass SM121LowerMemory)
1111 (sm121LowerTwo (sm121LowerRegister a) (sm121LowerRegister v)) sm121LowerNone))
1112 (branch SM86LoadGlobalToShared a offset source sourceOffset control .
1113 (sm121LowerShape (constructor SM121LowerRule SM121LowerRuleAsyncCopy) (constructor SM121LowerClass SM121LowerMemory)
1114 (sm121LowerAppend (sm121LowerOne (sm121LowerRegister a)) (sm121LowerSpan (sm121LowerRegister source) 2))
1115 sm121LowerNone))
1116 (branch SM86CommitAsyncGroup control .
1117 (sm121LowerSame (constructor SM121LowerClass SM121LowerNoResult) sm121LowerNone sm121LowerNone))
1118 (branch SM86WaitAsyncGroups count control .
1119 (sm121LowerSame (constructor SM121LowerClass SM121LowerNoResult) sm121LowerNone sm121LowerNone))
1120 (branch SM86BarrierSynchronize control .
1121 (sm121LowerSame (constructor SM121LowerClass SM121LowerNoResult) sm121LowerNone sm121LowerNone))
1122 (branch SM86StoreGlobal a v offset control .
1123 (sm121LowerSame (constructor SM121LowerClass SM121LowerMemory)
1124 (sm121LowerAppend (sm121LowerSpan (sm121LowerRegister a) 2) (sm121LowerOne (sm121LowerRegister v)))
1125 sm121LowerNone))
1126 (branch SM86StoreGlobalWide a v offset control .
1127 (sm121LowerSame (constructor SM121LowerClass SM121LowerMemory)
1128 (sm121LowerAppend (sm121LowerSpan (sm121LowerRegister a) 2) (sm121LowerSpan (sm121LowerRegister v) 4))
1129 sm121LowerNone))
1130 (branch SM86StoreGlobal64 a v offset control .
1131 (sm121LowerSame (constructor SM121LowerClass SM121LowerMemory)
1132 (sm121LowerAppend (sm121LowerSpan (sm121LowerRegister a) 2) (sm121LowerSpan (sm121LowerRegister v) 2))
1133 sm121LowerNone))
1134 (branch SM86ReduceGlobalAddFloat32 a v offset control .
1135 (sm121LowerShape (constructor SM121LowerRule SM121LowerRuleReduction) (constructor SM121LowerClass SM121LowerMemory)
1136 (sm121LowerAppend (sm121LowerSpan (sm121LowerRegister a) 2) (sm121LowerOne (sm121LowerRegister v)))
1137 sm121LowerNone))
1138 (branch SM86PredicateGreaterThanImmediate p a value control .
1139 (constructor SM121LowerShape SM121LowerShapeValue (constructor SM121LowerRule SM121LowerRuleSame) (constructor SM121LowerClass SM121LowerDualAlu)
1140 (sm121LowerOne (sm121LowerRegister a)) sm121LowerNone
1141 (sm121LowerCons (byte-to-nat (sm86PredicateNumber p)) sm121LowerNone)))
1142 (branch SM86Branch offset descriptor control .
1143 (sm121LowerShape (constructor SM121LowerRule SM121LowerRuleBranch) (constructor SM121LowerClass SM121LowerNoResult) sm121LowerNone sm121LowerNone))
1144 (branch SM86Exit control .
1145 (sm121LowerSame (constructor SM121LowerClass SM121LowerNoResult) sm121LowerNone sm121LowerNone))))The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.